Воскресное чтение манускриптов. Манускрипт Vat.gr.1605 из Ватиканской Апостольской библиотеки уже несколько раз упоминался на dxdt.ru. Например, в связи с “кубосом”, иллюстрирующим способ вычисления объёмов. На соседней с “кубосом” странице этого манускрипта, а также на странице предыдушей, описаны и нарисованы круги, тоже с вычислениями. Их и рассмотрим.

Специалиста, подготовившего исходные тексты манускрипта, называют иногда Героном Византийским (не Александрийским, на которого он ссылается), иногда Героном Младшим, а также – византийским Анонимом. Манускрипт Vat.gr.1605 датируют одинадцатым веком, первая часть труда посвящена осадным машинам, методам взятия крепостей и прочим хитростям военного дела, а вторая часть называется “Геодезия” и посвящена сугубо практическим методам измерений “на местности”, которые необходимы, кроме прочего, “для правильного определения высоты крепостных стен, без приближения к ним”. Методы дистанционного измерения здесь, конечно, оптические и основаны на применении диоптры (διόπτρα) – угломерного прибора, предшественника теодолита. (Способы применения диоптры подробно разобраны у более известного Герона – Александрийского.) Именно при помощи диоптры предлагается измерять первый круг. Соответствующая схема круга – на скриншоте из манускрипта.

Manuscript Screenshot

Буквой α обозначен центр круга, по периметру которого сидят кустики и лежат камни (и они тут не просто так нарисованы – см. ниже). Радиус круга – ρε под чертой (черта обозначает запись числа); это число 105, в греческих буквенных обозначениях: ρ == 100; ε == 5; Единица измерения длины: оргия (ὄργυια); то есть, буквально, сажень, однако это не важно для геометрической интерпретации. Слева, в вертикальной записи, обозначена длина окружности: χξ, что соответствует 600 + 60 == 660. Ближе к центру, снизу от α, – площадь круга: λδ καὶ χν, что означает 34 (λδ) [тысячи] и (лигатура ϗ) 600 + 50 == 650, всё вместе: 34650 (квадратных саженей). Тысячи на иллюстрации обозначены диагональной чертой перед λ, а в тексте – прямо записаны словом как “тысячи” (χιλιάδων), что хорошо видно на скриншоте (нижняя строка, я отметил зелёными линями и буквами).

Manuscript Screenshot

Зачем кустики и камни? Герон Византийский в тексте подробно описывает, как нужно строить окружность на местности. Это ведь практическое руководство. Описание такое: установить диоптру в будущий центр, в точку α, после чего взять прямую линию визирования по некоторой другой точке, обозначив её β, – тогда αβ будет радиусом, – и дальше, поворачивая визир диоптры, отмечать в плоскости круга на земле опорные точки по визуальным ориентирам – кустам, камням или другим хорошо заметным предметам; на иллюстрации соответствующие интервалы обозначены буквами по алфавиту. Потому что диоптра – это такой инструмент с транспортиром (диском), винтами и визиром, установленный на моноподе. Так что, пусть манускрипт и подготовлен почти тысячу лет назад, но логика текста отражена на иллюстрации почти во всех необходимых для практического руководства деталях: не хватает только изображения, собственно, диоптры.

В тексте манускрипта приводится и подробный расчёт параметров размеченного на земле круга, исходя из радиуса, который определяется при помощи измерения диоптрой. А именно: радиус нужно удвоить, получив диаметр: 105 * 2 == 210; так как длина окружности составляет “3⅐ диаметра”, то она равна 660, “поскольку это число содержит три раза по 210 и одну седьмую от 210”. Здесь отношение длины окружности к диаметру принято 3⅐, – приблизительно 3.14 в десятичной записи, – неплохое рациональное приближение современного π. Площадь круга находится из тех соображений, что произведение диаметра на длину окружности – это четыре площади круга, соответственно, нужно взять одну четверть от 210*660, что и даст 34650.

Manuscript Screenshot

Заметьте, между прочим, что хоть это и 11 век, но одна четверть, как ни странно, тут уже сокращённо записывается с горизонтальной чертой, и очень похоже на 1/4 (см. в центр скриншота, отмечено зелёными цифрами и стрелкой).

Со вторым кругом всё несколько проще. Так пишет и сам Герон Византийский: здесь окружность рисуется при помощи натянутой от центра верёвки, человеком, у которого не оказалось экзотического прибора – диоптры.

Manuscript Screenshot

Этот круг поменьше. Радиус: λε == 30 + 5 == 35 саженей; периметр: ςκ == 200 + 20 == 220 саженей; площадь круга: γων == 3 (тыс) + 800 + 50 == 3850 саженей – ровно в девять раз меньше предыдущего круга, что очередной раз подчёркивает полезные свойства рациональных чисел.



Комментировать »

ML-KEM/Kyber – быстрая криптосистема. На типовой современной аппаратуре она быстрее и чем X25519, и чем ECDH, и чем RSA. К тому же – с заявленной постквантовой стойкостью. Почему подобную криптосистему не внедрили для Интернета раньше, и в качестве основной? Можно же предположить, что вместо RSA и классического протокола Диффи-Хеллмана разработали бы что-то сразу с постквантовой стойкостью?

Публикация алгоритма Шора тут, очевидно, играет важную роль. Но криптосистемы с постквантовой стойкостью предлагались и раньше, до публикации Шора. Да, современного понятия о “постквантовой стойкости” тогда не было, но неверно и считать, что алгоритм Шора взламывает всё, что было предложено раньше этого алгоритма. Например, криптосистема McEliece, в исходном варианте, предложена в 1978 году, за 16 лет до алгоритма Шора. Но алгоритм Шора не позволяет взломать McEliece, а постквантовая стойкость может идти в качестве автоматического бонуса. Однако современные варианты McEliece стали внедрять на практике недавно, уже после того, как “постквантовый шум” набрал обороты, и как раз по причине стойкости к алгоритму Шора. Так что, пусть постквантовая стойкость и возможна без алгоритма Шора, но само по себе это ничего не гарантирует в плане внедрения криптосистем.

Кстати, что касается алгоритмов ML-KEM/Kyber, то соответствующая сложная задача (LWE) была сформулирована в 2005 году, но исходные вычислительные проблемы на решётках (SVP и др.) – тоже изучались заметно раньше, с начала 80-х годов прошлого века.

Базовые причины массового внедрения именно криптосистем, не стойких к взлому алгоритмом Шора, те же, по которым не было никаких инструментов криптографической защиты в такой важной технологии, как DNS, где криптографии не могло появиться изначально из-за стремления к строгой оптимизации ресурсов и по причине общего “экзотического статуса” алгоритмов.

Во-первых, в конце 70-х и начале 80-х годов прошлого века криптография, как ни крути, являлась даже более эзотерической областью, чем она есть сейчас. Тут, несомненно, важен вопрос регулирования и “криптовойн”. То есть, вот мы разбираем достаточно узкий вопрос: почему придумали, разработали и внедрили именно RSA с FFDH (классический вариант Диффи-Хеллмана, в конечном поле), а не что-то вроде McEliece/Kyber – но предположим, на минуточку, что регулирование в отношении “понижения стойкости” тут сыграло важную роль: в каких-то криптосистемах стойкость снижать проще, чем в других. Естественно, этот процесс напрямую связан с алгоритмическими особенностями криптосистем. В той же ML-KEM контролируемо снизить стойкость, оставаясь на уровне компьютерных систем начала 80-х годов прошлого века, несколько сложнее, чем реализовать то же самое для RSA, которая тут более “гладкая”. Речь, конечно, не идёт о планах грубо сломать криптосистему, выбрав нестойкие параметры – это не сложно сделать и для ML-KEM/Kyber. Под “контролируемым снижением” тут надо понимать такое снижение стойкости, которое выполняется из предположения, что реализация не обваливается совсем, становясь игрушечной. Конечно, это больше похоже на попытку выдать желаемое за действительное. Для процесса запрета стойкой криптографии сохранение стойкости просто не могло рассматриваться в качестве первостепенного критерия. Более того, та же исходная версия McEliece предоставляла лишь что-то около 64-битов стойкости. С другой стороны, как теперь понятно, странное и строгое регулирование внедрению конкретно RSA не помешало, но даже поспособствовало, выделив эту криптосистему при помощи административных и социальных рычагов. В момент резкого роста масштабов практического применения RSA, другие криптосистемы, ещё и не реализованные на практике, тут же оказались заведомо надолго заперты на периферии технологии, в области теоретической криптографии.

Во-вторых, использование “криптографических преобразований” для передачи данных в вычислительной сети 80-х годов не просто выглядело излишним, но и вызвало обоснованные опасения относительно неоптимального расхода драгоценной пропускной способности: тут каждый байт на счету, а предлагается нарастить данные ключами на много килобит. И когда RSA оказалась вне конкуренции, те же эллиптические криптосистемы довольно долго пробирались на уровень практики, опираясь именно на короткие, если сравнивать с RSA, ключи. Короткие ключи очень удобны. В криптосистемах типа ML-KEM – и, тем более, McElice, – ключи очень длинные. Даже если предположить, что вместо ECDSA/ECDH развивалось бы что-то подобное Kyber, то килобитные ключи однозначно бы закрыли путь к внедрению: потому что – какой смысл жертвовать так много байтов? Сейчас этот смысл полностью сводится к желаемой постквантовой стойкости.

Но если бы в качестве массовых криптосистем с 70-х годов прошлого века использовались криптосистемы, стойкие к алгоритму Шора, то этот алгоритм вряд ли стал бы настолько популярным и известным. А ведь сейчас универсальная слава алгоритма Шора является единственным локомотивом, тянущим за собой в массы популярность “квантовых компьютеров”. Сама концепция квантовых вычислений – всё равно развивалась бы, поскольку она не привязана к криптографии. Не отменяет это и интереса к задаче быстрой факторизации, которая тоже важна и без криптографии. Но если не стала бы RSA популярной, если бы использовалась вместо неё стойкая к алгоритму Шора криптосистема, то не сложилось бы и “хайпа” вокруг “квантовых компьютеров”. Получается, тут есть и некоторая “обратная причинность”: постквантовые криптосистемы не внедрили потому, что спустя три десятка лет возник “квантовый хайп”.

Странная история.



Комментировать »

На картинке (см. ниже), которую распространяют вместе с анонсом истребителя F-47, нарисован некий “гладкий аппарат”: обратите, например, внимание на передний стабилизатор. Понятно, что эта картинка может оказаться далёкой от реальности. В конце концов, современные истербители на предварительных картинках и эскизах традиционно выглядят “ровными и гладкими” – панели и элементы обшивки начинают “расползаться” по мере движения к реальным образцам. Но идея про гладкие адаптивные схемы – интересная. Я писал об этом ещё в 2007 году (там, кстати, есть даже видео).

Aircraft picture
(U.S. Air Force)

Впрочем, в той записке на dxdt.ru про адаптивные аэродинамические элементы упоминается гиперзвуковой полёт, а кроме того, сказано, что “придётся подождать лет тридцать”. Записка вышла в 2007 году – прошло только 18 лет.



Комментировать »

Истребитель F-47, про который объявил в Штатах президент, это, похоже, развитие программы NGAD (Next Generation Air Dominance). Номер 47, кстати, совпадает с номером действующего президента Трампа. А сам истребитель назван аппаратом шестого поколения.

Вообще, ещё лет пятнадцать назад считалось, что “шестое поколение”, возможно, будет беспилотным, поскольку “беспилотность” и является фактором, отличающим шестое поколение от пятого. Но ситуация изменилась, нумерацию обновили, сказку сильно сократили, так что F-47, похоже, будет не просто обитаемым, но сразу двухместным. Это, конечно, предположение, ещё не ясно, что там вообще выйдет у “Боинга”. Тем не менее, выделенный оператор может гораздо эффективнее управлять дронами-беспилотниками и прочими системами, пока второй оператор пилотирует аппарат. С этим сложно поспорить. Двухместный истребитель, при прочих равных, тут заведомо выигрывает у одноместного. Я упоминал про преимущества двухместных истребителей не раз и, например, довольно давно, в 2009 году (сейчас уже про самолёты на dxdt.ru редко что-то выходит, но анонс F-47 штатовским президентом пропустить сложно).



Комментировать »

Национальный центр кибербезопасности Великобритании (NCSC) выпустил рекомендации по переходу организаций на постквантовые криптосистемы к 2035 году, то есть, через десять лет. В качестве примеров криптосистем с постквантовой стойкостью приводятся, конечно, стандартизованные NIST ML-KEM, ML-DSA, SLH-DSA и LMS/XMSS (криптосистемы подписи). Занятно, что и в этих рекомендациях ничего нет про симметричные шифры. Считается, понятно, что последние теряют только половину битовой стойкости, но ведь никто не запрещает появление квантовых алгоритмов взлома для конкретных шифров (AES, предположим, как наиболее вероятный кандидат). Впрочем, для RSA/ECDSA алгоритм уже есть, пусть и не реализован, а это существенное отличие.

Ссылка найдена в статье The Register, и в той статье британским правительственным организациям язвительно желают настоящей удачи, которая им понадобится при обновлении систем.



Комментировать »

Шум от ИИ снова очень велик, даже для “хайпа”. Это выражается и в потоке исследований, и в потоках сгенерированного контента, но и в растущей куче однообразных публикаций в СМИ, где, уже достаточно дежурным образом, рассказывают, что “очень и очень скоро будет AGI” (то есть, некий “универсальный/сильный”, “действительно разумный” искусственный интеллект). Судя по всему, этот самый AGI “появится” уже прямо вот в этом году. Ну, как появится: скорее всего, в какой-то момент крупнейшие ИИ-корпорации договорятся, кто первый выпустит новый продукт, и СМИ тут же определят этот момент как появление AGI. Определения и область в целом – достаточно размыты, чтобы фиксировать текущий статус ИИ в стиле “фактчекинга”, то есть, через базовые публикации СМИ.

С другой стороны, нельзя исключать, что AGI и как бы уже вот-вот, на подходе, но это “вот-вот” будет тянуться и тянуться, пока есть места для дата-центров и производство чипов не остановилось. Это тоже вариант, но он находится в некотором противоречии с появлением “суперинтеллекта”: так-то после объявления про AGI можно ждать “суперинтеллекта”, а вот ждать “суперинтеллекта” без AGI – это ведь аж на одну важную веху дольше, то есть, “суперинтеллект” отдаляется достаточно, чтобы он стал выглядеть меньше и не очень-то “супер”.

Необходимо отметить, что шум – шумом, но как-то подутихла тема “опасностей ИИ” и защиты от этих опасностей. Вероятно, причина в том, что это единственная тема, которая не очень способствует дальнейшему развитию общего “хайпа”: во-первых, тут действительно есть опасность – имеющиеся ИИ-системы грозят применить там, где применять такое нельзя; во-вторых, рассуждения о рисках в данной области иногда (именно “иногда”, то есть, далеко не всегда) приводят к снижению градуса восторженности, к появлению каких-то содержательных предположений. И это автоматически глушит данное “направление безопасности”. При помощи перенаправления общего шума, в том числе.

Понятно, что растёт и количество публикаций о шуме ИИ. Вот как эта записка. Тут интересно посмотреть, в какой момент появится слой рассуждений о причинах появления таких публикаций, об их содержании. Заметьте, что тут ИИ добавляет глубины – далеко не во всех областях можно построить аж четыре слоя, как здесь: исходный предмет (1); трансформация предмета силами ИИ (2); рассуждения о результатах трансформации силами ИИ и эффектах, этими трансформациями вызываемых (3); объяснения рассуждений предыдущего слоя (4). Хм.

Вот и начался четвёртый слой.



Комментировать »

Опубликовал на “Хабре” небольшой обзор DNS-over-TLS: как эта технология работает для авторитативных серверов DNS, с примерами “из консоли” на базе утилиты dig.



Комментировать »

В “умных колонках” Amazon Echo, с голосовым интерфейсом Alexa на борту, заявлена возможность отключить отправку локальных записей того, что слышит колонка, на амазоновские серверы. Ну, пока ещё есть, но ненадолго: как пишут в ArsTechnica – данную возможность официально отменяют и с конца марта колонка будет всё отправлять на центральные серверы, “для обучения ИИ”, либо перестанут работать важные функции. Однако тут, скорее, нужно ожидать, что колонка перестанет работать вовсе – зачем она нужна, если не присылает никаких материалов “для обучения ИИ”?



Комментировать »

Популярная тема – оценивать “успехи ИИ” в процентах “программного кода”, который эти ИИ-системы сгенерировали. Вот утверждают, что Anthropic ожидает “100% кода”, но через год. А в “Ведомостях” более “реалистичные” оценки: 25% кода (да и только в отдельно взятой финансовой структуре “Т-технологии”).

“Проценты сгенерированного программного кода” – очень занимательный показатель. И не так важно, в чём его взвешивать – в строках или килобайтах командных слов. Например, можно генерировать “тавтологические строки”, которые компилятор будет просто выкидывать: if(a == b){a = b}…; или for i in [0,100]: b = 10; и т.д. Какая доля таких строк может быть в тексте программы? Сколь угодно близкая к 100% – чтобы программа хоть что-то делала, конечно, придётся написать пару вызовов, условно, каких-нибудь print “Hello!”. Заметьте, что даже корректную реализацию всякого алгоритма на ЯВУ нетрудно растянуть по “строкам кода”, что уж говорить про некорректные реализации.

Получается, что программный код должен быть “оптимальным”, в каком-то смысле – только тогда его можно учитывать в качестве показателя. А оптимизация, как процесс, строго связана с алгоритмом. А алгоритм не понятен даже компилятору, что уж там ожидать от перебора внутри LLM. Возникают, как говорится, “некоторые трудности”.

Скажем, если пытаться считать в строках, то нужно учитывать, что разным бывает не только программный код (выбранный язык, способ записи), но и сами строки, на которые этот код разбивается. Возможно, предполагается, что итоговый алгоритм, соответствующий записи в коде, будет исполнять вычислительная машина – то есть, аппаратура. Понятно, что записи машинных команд в памяти этой аппаратуры нельзя считать строками (там нет нужной семантической структуры, а если выражаться простыми ESC-последовательностями, то отсутствуют “\r\n” в нужной интерпретации). Конечно, можно посчитать строки в коде на ассемблере. Здесь генераторы кода могут создавать NOP-последовательности (то есть, вызовы “пустых” команд). Ну и пустые по результату наборы эффективных команд тоже нельзя сбрасывать со счёта – проблем с их генерированием тут меньше, чем в случае, когда на страже путей преобразования стоит компилятор.

Я не так давно писал про нашумевшую публикацию Situational Awareness, где количество строк программного кода тоже используется в качестве некой меры уровня “суперинтеллекта” (AGI и далее). Там ожидается, что “суперинтеллект” будет писать “триллионы строк кода”. А самое главное – человек не сможет этот код понять, “даже если ИИ потратит годы на объяснения”. И эти вот годы, впустую потраченные суперинтеллектом, имеют тут интересное применение: могут ведь заявить, – как сейчас нередко и происходит, – что эти пустые строки – они “вовсе не пустые, а это вы просто не понимаете, что там написано суперинтеллектом”.

Насколько человек, – специально обученный, – может в принципе не понимать программный код? Этими человеками созданы сами используемые языки. Хорошо. Есть методы обфускации, которые понимание записи затрудняют: я тут обычно привожу в пример известный в узких кругах конкурс IOCCC, предмет которого и состоит в изяществе обфускации (кстати, конкурс недавно возобновили). Заметьте, что тут даже не важно, что программы на конкурс подают люди, важно, что авторы программ могут объяснить, что именно программа делает, на случай, если вдруг конкурсная комиссия не смогла разобраться своими силами.

Конечно, скорее всего, именно трудности с выявлением алгоритма по записи этого алгоритма прямо приводят к постановке проблемы P≟NP. Тем не менее, люди смогли сформулировать понятие об алгоритмической неразрешимости, и найти алгоритмически неразрешимые проблемы, объяснив, со строгими доказательствами, почему эти проблемы алгоритмически неразрешимы. При этом исходные объяснения с доказательствами получены, так сказать, без “искусственных интеллектов”. К этой области напрямую и относится вопрос о том, как можно было бы реально взвешивать ИИ по “доле программного кода”, им сгенерированного. И максимально упрощенный ответ очень простой: никак.



Комментировать »

Кстати, что касается “удаления домена .SU”: попытки “удаления” этого домена начались ещё в 90-х годах прошлого века, и с тех пор продолжаются, с регулярностью (часто – весной; почему-то – “загадка природы”, видимо).

При этом домен всё ещё жив.

Вообще, пока в домене верхнего уровня, несмотря на все прошедшие годы, есть десятки тысяч используемых и работающих ресурсов, на которые ведут, как минимум, ссылки с сотен тысяч веб-страниц (и не только веб-страниц, заметьте), удалять его как-то странно. Нынче, конечно, можно ожидать всякого. Но всё же вряд ли в ICANN уже настолько плохо всё, что эта осторожная организация пойдёт на подобный шаг. Пусть даже в современной глобальной ситуации “сегментации интернетов”.

Прецеденты с удалением страновых доменов в схожих локальных обстоятельствах, конечно, были: CS – домен Чехословакии, DD – ГДР. Однако SU используется уже 34 года после официального падения Союза ССР. Так что тут и история той страны, и история домена – совсем другие.

Заметьте, что ещё веселее было бы удалить домен IO (формальные причины – те же).

Собственно, вот РосНИИРОС пишет:
“Регистратура (РосНИИРОС ) не планирует ликвидацию домена .SU и никаких формальных действий со стороны ICANN предпринято не было.”



Комментировать »

Уже писал об этом, но напомню снова: антивирус, осуществляющий подмену TLS-сертификатов на локальном компьютере для браузера (и не только), он не “просто подменяет сертификат”, но он же и полностью ломает TLS-соединение, чтобы инспектировать трафик. Это означает, что с внешним сервером будет соединяться по TLS не браузер, а TLS-прокси из состава антивируса. Как работает данный прокси, какие библиотеки он использует для реализации TLS в целом и криптографических операций в частности, что за уязвимости в этих библиотеках – это всё вопросы отдельные.

Заметьте, впрочем, что TLS-прокси нетрудно устроить таким образом, чтобы сведения о симметричных секретах TLS-сессии утекали наружу вместе с трафиком. Есть разные способы, позволяющие реализовать такую утечку. На совсем верхнем уровне логика соответствует штатному экспорту симметричных секретов TLS. Естественно, разумно сделать канал утечки защищённым, чтобы для доступа нужно было знать специальные секретные “ключи инспектирования”. Эти ключи вовсе и не обязательно встраивать в антивирус.

Антивирусы могут использоваться в корпоративной среде, да и не только. Вот поэтому-то нужно правильно оценивать риски и учитывать, что антивирус, инспектирующий трафик грубым отключением TLS, во-первых, раскрывает в неизвестном направлении все данные, а не только “зашиту сертификатом”; во-вторых, при этом ещё и переключает доверие TLS: с браузера (или другого клиента) – на свою собственную реализацию.



Комментировать »