Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Воскресное чтение манускриптов. Манускрипт Vat.gr.1605 из Ватиканской Апостольской библиотеки уже несколько раз упоминался на dxdt.ru. Например, в связи с “кубосом”, иллюстрирующим способ вычисления объёмов. На соседней с “кубосом” странице этого манускрипта, а также на странице предыдушей, описаны и нарисованы круги, тоже с вычислениями. Их и рассмотрим.
Специалиста, подготовившего исходные тексты манускрипта, называют иногда Героном Византийским (не Александрийским, на которого он ссылается), иногда Героном Младшим, а также – византийским Анонимом. Манускрипт Vat.gr.1605 датируют одинадцатым веком, первая часть труда посвящена осадным машинам, методам взятия крепостей и прочим хитростям военного дела, а вторая часть называется “Геодезия” и посвящена сугубо практическим методам измерений “на местности”, которые необходимы, кроме прочего, “для правильного определения высоты крепостных стен, без приближения к ним”. Методы дистанционного измерения здесь, конечно, оптические и основаны на применении диоптры (διόπτρα) – угломерного прибора, предшественника теодолита. (Способы применения диоптры подробно разобраны у более известного Герона – Александрийского.) Именно при помощи диоптры предлагается измерять первый круг. Соответствующая схема круга – на скриншоте из манускрипта.

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

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

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

Этот круг поменьше. Радиус: λε == 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 популярной, если бы использовалась вместо неё стойкая к алгоритму Шора криптосистема, то не сложилось бы и “хайпа” вокруг “квантовых компьютеров”. Получается, тут есть и некоторая “обратная причинность”: постквантовые криптосистемы не внедрили потому, что спустя три десятка лет возник “квантовый хайп”.
Странная история.
Комментировать »
Популярная тема – оценивать “успехи ИИ” в процентах “программного кода”, который эти ИИ-системы сгенерировали. Вот утверждают, что 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. Тем не менее, люди смогли сформулировать понятие об алгоритмической неразрешимости, и найти алгоритмически неразрешимые проблемы, объяснив, со строгими доказательствами, почему эти проблемы алгоритмически неразрешимы. При этом исходные объяснения с доказательствами получены, так сказать, без “искусственных интеллектов”. К этой области напрямую и относится вопрос о том, как можно было бы реально взвешивать ИИ по “доле программного кода”, им сгенерированного. И максимально упрощенный ответ очень простой: никак.
Комментировать »
В Германии нашли (англ.) римский навесной замочек с золотым корпусом. Размер замка всего лишь 11 на 12 миллиметров. Датируют четвёртым-пятым веком (“около 400 года”). На коллаже ниже – реконструкция (большая) и фотография найденного замка (внизу слева).

(Credit: LWL /S. Brentführer.)
Пишут, что замок мог служить для запирания какой-нибудь шкатулки. Схема работы весьма простая, что, очевидно, продиктовано миниатюрными размерами: в запертом состоянии ригель находится внутри паза, запирая там звено цепочки; при повороте ключа – бородка отжимает “пружину-собачку”, освобождает тем самым ригель и перемещает его, зацепив за выступ. См. скриншоты из видео ниже (исходное видео есть по ссылке в оригинальной публикации (нем.), однако она может быть недоступна с российских IP).

(Credit: LWL/S. Brentführer.)
Это, очевидно, увеличенная модель запорного механизма. Цепочка должна скользить по желобу, который на картинке виден слева (ориентирован вертикально). Когда замок заперт, скольжению мешает ригель (засов), зацепляющий звено цепочки. Ригель подпёрт “собачкой”, которая закреплена на задней стенке (плоский светлый элемент).

(Credit: LWL/S. Brentführer.)
Ключ вставлен и повернут. Бородка прижала “собачку” к стенке, ригель сдвинут – цепочку можно вынуть.
Реконструкцию внутреннего механизма сделали по результатам томографии исходного замка.
Понятно, что смысл подобного устройства, да ещё и в золотом корпусе, скорее декоративный. Максимум, чем такой замок мог бы быть полезен, так это фиксированием факта силового взлома.
Комментировать »
CAA-запись в DNS позволяет управлять тем, какие УЦ могут выпускать сертификаты для имён в соответствующей доменной зоне. Проще говоря, в DNS публикуется имя УЦ, которому разрешено выпускать сертификаты. Чьё имя не указано – тем выпускать нельзя. (Есть тонкости с Wildcard-именами и уведомлениями о попытках заказа сертификата.) Интересно, что отсутствие CAA-записи в зоне разрешает выпуск всем. А если в CAA для имён УЦ указать пустой список (“;”), то выпускать нельзя никому.
То есть, тут мы неожиданно, на практике, сталкиваемся с весьма важной особенностью из области теоретической математики вообще и математической логики в частности. Речь про логики и формальные системы разного уровня. Пустой ящик – имеет совсем другой смысл, чем отсутствие ящика. Отсутствие ящика – это отсутствие CAA-записи, которое отсутствие вовсе и не эквивалентно пустому значению CAA-записи. Ящик есть, но он пуст – это наличие CAA-записи, значение которой – пустое множество. В первом случае, пустое множество – это “количество” CAA-записей в зоне. Во втором случае – количество УЦ, имена которых указаны в CAA-записи. Пустое множество при этом одно и то же, но оно укладывается в разные, рекурсивные ящики. Так можно построить натуральные числа.
Конечно, в спецификации этот подход использован не с целью построения натуральных чисел, а всего лишь с целью сделать использование CAA мягким. Иначе без доступа к DNS вообще не получилось бы сертификаты заказывать у УЦ, которые следуют CAA-записям.
Комментарии (2) »
В продолжение недавней записки про числа в ML-KEM. Один из ключевых параметров ML-KEM, одинаковый для всех наборов, это число (модуль) 3329. Почему выбрано именно 3329? Был ли выбор “случайным” (а иногда используют проверяемые методы для выбора параметров) или это число подобрано специально?
Число 3329, обозначаемое q, в ML-KEM выбрано строго специально. И вот из каких соображений. Весь практический вычислительный смысл ML-KEM (Kyber) в преобразовании (NTT), позволяющем быстро производить арифметические операции с полиномами. Чтобы быстрые операции NTT стали возможны в ML-KEM, число q должно быть простым, а (q-1) должно делиться на 256. (Более “общо” – делиться должно на степень двойки.) 256 – это другой параметр ML-KEM, его значение продиктовано разрядностью операций (256 бит).
То есть, 3329 – простое, (3329 – 1)/256 == 13. Если эти требования не выполняются, быстрый NTT работать должным образом не будет, поскольку это не настолько универсальный алгоритм, умножать полиномы “в лоб” – очень медленно, и другие быстрые алгоритмы – тоже оказываются медленными по сравнению с NTT. Неподалёку от 3329 не так много чисел, обладающих описанными свойствами: 257, 769, 3329, 7681, 7937. При этом, нужно выбрать число поменьше (важна экономия каждого бита), но чтобы не слишком выросла вероятность получения неверного результата при работе криптосистемы. Для 257 и 769 вероятность ошибки заметно больше. Поэтому авторы алгоритма выбрали 3329.
Комментировать »
Оценка корректности употребления слов английского языка less и fewer нередко вызывает споры даже среди грамотных носителей языка. Эти слова различаются тем, что одно, в сравнении, модифицирует объекты как “неисчисляемые” (“неперечислимые”, если хотите), а второе – как “исчисляемые” (“перечислимые”). Если задуматься о том, что происходит, то можно обнаружить особенность, достаточно тонкую, которая модифицирует воспринимаемый смысл, переставляя фокус его построения между словами, следующими за less/fewer. Эффект напоминает “морфологический переворот”, который я как-то упоминал. Уловить изменение непросто, нужны хорошие иллюстрации. Такая иллюстрация попалась мне в стилистическом руководстве издания The Guardian, где эффект less/fewer рельефно проиллюстрирован четырьмя предложениями – все эти предложения говорят о разном, попутно закрывая все четыре возможных относительных варианта:
For less bad things to happen, fewer bad people need to be involved.
For fewer bad things to happen, less bad people need to be involved.
For fewer bad things to happen, fewer bad people need to be involved.
For less bad things to happen, less bad people need to be involved.
Перевод, понятно, эффект уничтожает. Но можно дать объяснение, используя несколько испорченные обороты на русском. Посмотрим на первое предложение: “Чтобы случались менее плохие вещи, меньше плохих людей должно быть вовлечено”. Less – “уменьшает” (сравнительно) то, что “нельзя посчитать”, отсюда привязка к bad. Bad, – здесь, – нельзя сравнивать “в натуральных числах”, то есть, нельзя сказать, что что-то хуже на “две единицы измерения ухудшения”. Поэтому “менее плохие” (дословный перевод здесь использован как иллюстрация). Fewer – обозначает тоже “меньше в количестве”, но именно в том количестве, которое можно считать. Поэтому “меньше плохих людей”, а не “менее плохие” “люди”. Всем известны примеры “неисчисляемых” существительных – “вода”, “песок” и т.д., – а равно и примеры “исчисляемых”: “кирпичи”, “мячи” и т.д.
Второе предложение: “Чтобы меньше плохих вещей случалось, менее плохие люди должны быть вовлечены”. Тут сравнительная характеристика “less bad” применяется уже к “людям”. Думаю, два оставшихся предложения несложно самостоятельно “раскодировать” аналогичным способом, наблюдая, как переключается фокус интерпретации.
Комментировать »
Воскресное чтение манускриптов. Классический способ оформления цитируемых фрагментов в переписке по электронной почте основан на знаке “больше” – “>”, – который ставится в начале строки, с нужным количеством повторов, когда цитата оказывается внутри цитаты. Нередко этот же знак используется для обособления цитат и вне электронной почты, например, при переписке в чате.
Схожие знаки встречаются и в средневековых манускриптах (и не только там). Пусть метод очевидный, но всё равно занятный. Вот, например, встретился такой фрагмент манускрипта Urb.gr.15 (“Слова” Григория Богослова, десятый век, Ватиканская Апостольская библиотека):

И здесь знаками, напоминающими “>”, отмечена цитата из книги пророка Михея (Мих.2:10), использованная в тексте Григория Богослова (Слово 9), который ссылается на соответствующий стих так (самое начало текста на скриншоте): […]”Μιχαίας λέγειν, χαμόθεν ἡμᾶς ἀνέλκων ἐπι τὰ ἡμέτερα ὕψη” (“[…]Михей говорит, от земли нас поднимая на нашу (собственную) высоту”).
А более близкий к “>” по начертанию знак называется “дипле” (διπλῆ), и в дополнение к нему нередко, – но не всегда, – шли точки, расположенные сверху и снизу. Знак, конечно, не обязательно обозначал библейскую цитату, как и цитату вообще. Пример из Venetus A:

Этот фрагмент “про птицеведов”, кстати, недавно встречался в заметке про квантовые вычисления у Гомера.
Комментировать »
Пример из серии про неявные преобразования и компьютерную алгебру. Табличный процессор Google Spreadsheets в браузере, скриншот:

То есть, написана формула “-3^2”, но в ячейке получаем значение 9, что не обязательно-то верно, как ни странно. Почему? Вообще говоря, в этой формуле неявно подразумевается следующее выражение: -1*3^2. Так как операция возведения в степень имеет более высокий приоритет, чем умножение, должно получиться -9. Если в том же приложении Google так и написать, с минусом и единицей, то получим верный ответ: -9. С другой стороны, может оказаться, что подразумевается использование операции взятия обратного по сложению, обозначаемой знаком “минус”, и она имеет приоритет выше возведения в степень. Ну или это просто “минус три” написано, то есть, (-3)^2. Поэтому, скажем, Gnumeric – тоже выводит 9, но при этом автоматом дописывает в формулу скобки вокруг -3.
(Пример попался в Telegram-канале Бориса Трушина.)
Комментировать »
Даниэль Бернштейн (Daniel J. Bernstein) опубликовал большую статью (англ.) с критикой некоторых возражений, относящихся к возможности создания универсальных квантовых компьютеров. Вообще, основной посыл статьи такой: нужно немедленно повсеместно внедрять постквантовую криптографию, потому что, исходя из анализа ситуации, не удаётся найти веских причин для уверенности в том, что АНБ уже не строит активно (или построило) квантовый компьютер, пригодный для практического криптоанализа.
В статье есть странный частный момент: в качестве примера, поясняющего, почему проблема огромного количества состояний, с которым должен работать квантовый компьютер, – это совсем не проблема, приводится работа обычного, классического компьютера с тысячей битов. То есть, обычный компьютер без труда может сгенерировать тысячу случайных битов, а потом провести с ними преобразование, которое изменит распределение вероятностей. Поэтому и тысяча кубитов, якобы, не создаёт теоретических проблем теоретическим квантовым компьютерам.
Бернштейн тут же прямо отмечает, что квантовые вычисления на кубитах это не то же самое, что и вычисления с обычными битами, но, тем не менее, подчёркивает, что практическая возможность обрабатывать отдельные состояния в тысячу битов любым классическим ноутбуком каким-то образом отменяет и проблему с огромной размерностью пространства состояний гипотетического квантового компьютера на тысячу кубитов. Цитата:
I’m not saying that computation on qubits is the same as computation on random bits. When you look at the details, you see that quantum computation allows a useful extra trick, setting up interference patterns between positive and negative variables. But an argument saying “quantum computing is impossible because there are so many variables” can’t be right: it also says that your laptop is impossible.
(“Я не утверждаю, что вычисление на кубитах это то же самое, что и вычисление на случайных битах. Если посмотреть детально, то можно увидеть, что квантовое вычисление позволяет провести дополнительный полезный трюк, задав схемы интерференции между положительными и отрицательными переменными. Однако аргумент, говорящий, что “квантовые вычисления невозможны, так как там настолько много переменных”, не может быть верным, поскольку этот же аргумент говорит, что ваш ноутбук невозможен.”)
Вообще, именно возможность “интерференции между переменными”, это не просто трюк, а она таки составляет смысл квантовых вычислений, которые, собственно, вычислениями, в привычном смысле, и не являются. Чтобы интерференция состояний стала возможной, логично допустить, что эти состояния где-то “должны размещаться”. То есть, это не обязательно так, не является необходимым условием. Потому что можно, скажем, посчитать, что соответствующие потоки вероятностей и составляют некоторую над-реальность, а наблюдается только её “срез”, вызванный представлением экспериментатора (возможны ли при этом квантовые вычисления – другой вопрос). Однако, сама идея, что для 2^1000 состояний используемые модели “квантовой механики” не работают, не только не выглядит нелогичной, но уж точно не разрушается возможностью обработать тысячу битов классическим ноутбуком: в классическом ноутбуке другие состояния битовой строки возникают как программное представление после выполнения преобразования, а не являются фундаментом физической реализации алгоритма в некотором аналоговом вычислителе.
Комментировать »
Рентгенофлуоресцентный анализ микроскопических фрагментов нарисованных точек позволяет находить следы меди в чернилах, что, в свою очередь, облегчает датировки.
Воскресное чтение манускриптов. Ватиканский кодекс (Vat.gr.1209) – один из важнейших источников библейских текстов на древнегреческом. Основную часть манускрипта датируют четвёртым веком (н.э.), но в нём есть добавления, сделанные в 15 веке – новые листы с переписанным текстом подшиты взамен утраченных. На полях и между колонками текста данного манускрипта встречаются необычные “умляуты” или “двойные точки” (distigmai) – см. скриншот ниже.

Считается, что такими точками обозначены места в тексте, которые отличаются в других источниках. Так, на фрагменте листа со скриншота точками обозначено начало 17 стиха второй главы Евангелия от Марка. То есть, это редакторские знаки. И вот, эти точки на данном манускрипте академические палеографы обнаружили и признали значимыми только в начале 90-х годов двадцатого века. Тридцать лет назад. Что несколько неожиданно. Ну, понятно, конечно, что если знаки эти всё же полагать редакторскими, то они просто должны были быть известны в такой роли и сильно раньше, но тогда в какой-то момент инструкция была утрачена, а “данные – удалены”.
Если знаки были поставлены в четвёртом, предположим, веке, то это могло бы означать, что уже тогда существовало много разных вариантов текста и сотрудник скриптория о них знал. Но если знаки добавлены позже, то о факте доступности разночтений сотруднику скриптория из четвёртого века – судить по таким отметкам уже нельзя. В манускрипт не только добавляли отметки на полях, но и вставляли листы со свежими записями, кроме того – обновлялись и оригинальные записи: выцветающий текст “прописывался” поверх свежими чернилами. Поэтому одни исследователи считали, что знаки поставлены в четвёртом веке, возможно, в ходе создания манускрипта, а другие – считали, что позже, в рамках деятельности по обновлению, систематизации и кодификации записей.
Естественно, момент датировки отметок о разночтениях в Ватиканском кодексе – это весьма важный, в исторической перспективе, момент. Недавно его прояснили при помощи сравнительного рентгенофлуоресцентного анализа чернил, которые встречаются на листах данного манускрипта. В свежей работе (“Did the Original Scribes Write the Distigmai in Codex Vaticanus B of the Bible?”, Gordon et al., The Vatican Library Review 3, 2, 125-156) чернила, которыми сделаны упомянутые отметки в виде двух точек, датируют началом 16 века. То есть, даже позже момента написания листов на замену утраченным. Датировка основана на наблюдении над примесями металлов в составе чернил.

(Source: “Did the Original Scribes Write the Distigmai in Codex Vaticanus B of the Bible?”, Gordon et al., The Vatican Library Review 3, 2, 125-156.)
Основа чернил содержит примеси, которые можно обнаружить при помощи спектрометрии. Конкретно – в качестве маркера используется медь. Основной текст манускрипта записан чернилами, которые содержат существенную долю медной примеси. Но есть и другие чернила, в которых медный след практически не заметен. Считается, что такие чернила без меди появились в Европе не раньше 16 века.
Все обсуждающиеся здесь редакторские знаки из двух точек оказались записаны на манускрипте чернилами без меди, а буквы окружающего текста, к которому отметки относятся, другие значки – чернилами с медным следом. Логичный вывод: вряд ли отметки сделаны раньше 16 века. Ну или придётся допустить, что в старых скрипториях использовались чернила двух типов: для основного текста – “с медным спектором”, а для особых точек на полях – не менее особые чернила, купоросная основа которых прошла дополнительную химическую очистку, а сами эти чернила поступили в гражданский оборот лишь двенадцать веков спустя.
Интересно, что если медный след на спектре является неплохим признаком для хронологической сортировки знаков, то цвет чернил – таким признаком здесь не является, так как почему-то загадочные двойные точки присутствуют в двух цветах: в “шоколадном” и “абрикосовом”. В работе предполагают, что это может быть результатом различной толщины слоя чернил.
Кстати, занятный момент, который исследователи выявили в результате “фингерпринтинга” чернил по спектру, связан с процессом обновления текста манускрипта. Как уже упоминалось выше, буквы основного текста манускрипта обводились позже (возможно, не раз). И вот, на некоторых страницах, чернила, которыми записан оригинальный (исходный) текст, отличались по полученному спектру от чернил, использованных для обновления на этой же странице, но совпадали с чернилами, использованными для обновления на другой странице.
Комментировать »
Новый