Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Кстати, индекс 0x6399, который позволяет отличить ключи криптосистемы X25519Kyber768Draft00 в TLS-сообщениях, внесён в соответствующий реестр номеров IANA, в раздел под именем TLS Supported Groups. Название раздела – ещё один пример исторически сложившихся особенностей спецификаций: понятно, что X25519Kyber768 – никакая ни группа, а сразу две криптосистемы, построенные на различном математическом аппарате (но, естественно, группы нетрудно найти и в X25519, и в Kyber768). Изначально, упомянутый раздел параметров TLS содержал индексы именованных эллиптических кривых, то есть, сочетаний из параметров, определяющих конкретную кривую в прикладном смысле. Но так как для криптосистем существенны были именно операции в группе, а кроме эллиптических кривых ещё использовались (и используются) мультипликативные группы колец вычетов, то раздел, довольно давно, переименовали в “Поддерживаемые группы”, теперь туда записывают наборы криптосистем.
Комментировать »
Развивающаяся “битва за банхаммер” приводит к тому, что в “этих интернетах” появляются новые плоскости для осуществления сегментации, поскольку блокирование сейчас модно делать на достаточно высоком уровне – на уровне приложений. Недавний пример – стена (временная) регистрации в Twitter. Есть масса других примеров, где администраторы вроде бы “глобального” массового сервиса ограничивают к нему доступ для некоторых IP-адресов, но не на уровне транспорта, а средствами HTTP или внутри приложения на смартфоне. Вообще, может показаться, что, с точки зрения “маршрутов” и BGP – ничего не меняется: пакеты если ходят, то так и ходят, как ходили. Для инженера NOC, допустим, прежде всего важно, что отправленный по заданному адресу пакет до этого адреса добрался, а что там происходит на уровнях, которые строятся из пакетов, HTTP это или QUIC какой-нибудь, – дело десятое.
Однако, хоть популярное нынче блокирование и выполняется на один или два уровня выше, чем IP, это самое блокирование может спуститься ниже, но уже в виде технологического спагетти. Это происходит в тот момент, когда просят как-то повзаимодействовать с этим блокированием (неважно, в какую сторону) на сетевом уровне. Всем знакомый пример: VPN-доступ, позволяющий прийти на сервис с другим (географически) сетевым адресом. IP заворачивается внутрь UDP, а туннели неожиданным образом проходят между логическими уровнями. А IP в туннеле используется для создания TLS-соединения со скрытым сервисом. Туннелирование туннелей. Сегментация на уровне приложений спускается в маршрутизацию, где порождает неожиданные эффекты доставки пакетов, особенно, если пересекается с anycast-узлами. Попробуйте зарисовать логику на листочке бумаги – получится путаница из спагетти, напоминающая нехорошую практику в области кабельных соединений.
Дело в том, что хоть блокировать многие предпочитают на разных уровнях, но привычный идентификатор, по которому ставят задачи блокирования, это всё равно IP-адрес (не всегда, но очень часто). Конечно, никто не отменял локального блокирования на уровне физических портов, на уровне приёма BGP-анонсов, однако для массовых и популярных сервисов, которые работают поверх Интернета, – это всё ещё применяется редко. Напротив, сейчас видно, как довольно быстро выстраивается новый перемешивающий уровень (хороший пример – технология ECH, создающая каналы “TLS внутри TLS”). Это нивелирует возможности прицельного блокирования на уровне базового транспорта или, условно, “физических портов”, но позволяет построить банхаммер уровня приложений. Если, конечно, сохранится связность Сети, пусть и через спагетти-коммутацию транспортного уровня.
Комментировать »
Исходные тексты программ – ценный источник информации о возможной работе этих программ. Относится и к другим текстам. Ниже – два варианта записи одного и того же фрагмента из “Физики” Аристотеля на “языке оригинала”, то есть, это древнегреческий, но, конечно, переписанный много позднее Аристотеля и по другим источникам. В данном фрагменте Аристотель объясняет, что поскольку при падении через “пустоту” нет причин для того, чтобы разные тела набирали разную максимальную скорость падения, потому что отсутствует сопротивление среды, то и все тела будут “одинаково быстро” падать, а это, как считает Аристотель, невозможно – поскольку он так объясняет, что не может быть пустоты. Но это другая история, а здесь текст служит примером того, как могут различаться записи. Красными точками я отметил начало и конец фрагмента. Первый скриншот – из манускрипта, датируемого 12 веком:

Второй – из манускрипта, который “посвежее” и датируется, как я понимаю, чуть позже, то есть, 13 веком:

Хорошо, что сейчас много манускриптов качественно оцифровано крупнейшими библиотеками и опубликовано. Конкретно эти два – из Ватиканской апостольской библиотеки (снова). Не то чтобы первый вариант был легко доступен для чтения, но второй – прочитать гораздо сложнее: там и хитрых “скорописных” сокращений очень много, и шрифт замысловатый (между строками – там ещё и комментарии, кроме специальных знаков). Удивительно, что переписанные тексты в таких непростых конфигурациях вообще совпадают в деталях. Можно даже предположить, что библиотечное дело в 13 веке усложнилось, а в скрипториях поменялся технической распорядок. Но понятно, что это просто манускрипты разного происхождения, типа, класса и предназначения, а ошибки, связанные с неверной расшифровкой сокращений – вполне себе встречались (это отдельная тема).
Комментировать »
Иногда приходится слышать, что “нейросети и машинное обучение работают с действительными (вещественными) числами”. Звучит занимательно, потому что практически никакое действительное число в отдельный компьютер или даже в дата-центр, набитый специализированными “тензорными процессорами”, по записи не уместится. Более того, если бы действительные числа были доступны на этом технологическом направлении, то почему бы тогда не взять десятичную запись π и, вместо “обучения”, не найти там уже готовый набор коэффициентов под нужную задачу?
А процессоры для “машинного обучения”, в лучшем случае, работают с небольшим подмножеством целых чисел, даже когда используется надстройка в виде арифметики с плавающей точкой – что-нибудь из разряда bfloat16, FF32 и т.п. Эта арифметика максимально далека от действительных чисел, в которых, кстати, арифметику вообще очень сложно, если вообще возможно, построить даже теоретически. Свойства привычных “вычислений с погрешностью” уже для целых значений приводят ко всяким дополнительным хитростям, это кроме известных эффектов расщепления одного и того же числа на несколько представлений.
Можно было бы предположить, что использование в вычислениях некоторых математических констант выражается в том, что соответствующие этим константам бесконечные процессы как раз и позволяют системам машинного обучения достигать всё большей и большей точности, но и это не так: в современных многослойных “нейросетях” разрядность имеет совсем другое значение, а лучшая “сходимость” (что бы это ни значило) может достигаться при убывающей точности записи коэффициентов.
Комментировать »
Известно, что греческая буква “о-мега” это, в каком-то смысле, дважды буква “о-микрон”. Если точнее, то “о-микрон” – краткое О (“микро-о”), а “о-мега” – большое или долгое О. Занятно, что в некоторых старинных рукописных начертаниях омега как раз и записывается как два омикрона. Подтверждающий скриншот из манускрипта Urb.gr.15 (“Слова” Григория Богослова, десятый век):

Например, в конце второй (на скриншоте) строки, слово προθύμως – отчётливо видно, что буква ω построена в точности как пара склеенных ο. Такое же начертание омеги нетрудно обнаружить и в первой строке, в слове ἡμῶν (локализация границ самого слова, впрочем, может оказаться затруднительной, если оно не знакомо читателю). А вот пара “омикронов-окружностей”, придавленных сверху чертой – это тоже π.
При изучении скриншота может показаться, что там присутствуют некие “велосипедные” двойные омикроны в начале и в конце первой строки, но нет – это сигма и омикрон в слове ὅσοι.
Кстати, в палеографии этот вариант рукописного древнегреческого называется “минускулом типа bouletée”, а такая запись омеги – один из характерных признаков. (Наверное, скоро можно уже не отмечать записки про древнегреческий и палеографию как офтопики.)
Комментировать »
Кстати, очередной пример, почему ssh forwarding не такой безопасный вариант использования ключей на удалённых системах, как может показаться: при желании, через ssh-agent обратно может приехать исполнение кода на локальной системе, впрочем, с некоторыми дополнительными “плясками” – CVE-2023-38408. Авторы, естественно, не забывают упомянуть ASLR, PIE и NX:
“Surprisingly, by chaining four common side effects of shared libraries from official distribution packages, we were able to transform this very limited primitive (the dlopen() and dlclose() of shared libraries from /usr/lib*) into a reliable, one-shot remote code execution in ssh-agent (despite ASLR, PIE, and NX)”.
Комментировать »
Во вселенной Fallout (серия видеоигр, прежде всего) подземные бункеры (vaults), которые преподносятся публике как убежища на случай ядерной войны, на самом деле предназначены для проведения различных экспериментов над обитателями. Это и “социальные эксперименты”, запланированные для проверки тех или иных гипотез о выживании изолированных групп людей в разных условиях (социальная организация, недостаток ресурсов и т.д.), и биомедицинские эксперименты разной степени прямолинейности (например, поиск эффективных лекарственных средств методом “проб и ошибок”). Все эти эксперименты не ограничиваются какими-то “этическими рамками”, за исключением случаев, когда именно “этические рамки” различных версий и являются сутью эксперимента.
То есть, публичная версия о том, что бункеры – это защищённые автономные убежища, где люди могут долгие годы пережидать последствия массированных ядерных ударов, – являлась лишь прикрытием, а причина создания программы строительства бункеров была в другом: в обеспечении экспериментальной базы. При этом для успешного выполнения многих экспериментов бункеры действительно должны были быть автономными и действительно защищать своих многочисленных обитателей от “внешних воздействий”, а небольшая часть бункеров создавались как полноценные бункеры управления, без “экспериментальной части”. За всей этой программой в Fallout стоит секретная (и над-правительственная) организация Enclave (“Анклав”). И после того, как во вселенной Fallout наступило Событие (обмен ядерными ударами), эксперименты в бункерах действительно начались. Как, скорее всего, и планировалось.
Интересно, что в качестве “официальной” скрытой причины всей этой экспериментальной программы выступала идея об отправке колонистов с Земли на другие планеты в космическом корабле: дескать, эксперименты позволят нащупать оптимальный способ организации жизни и деятельности колонистов на борту корабля во время длительного полёта, а также выбрать представителей, наиболее подходящих на роль колонистов. Очень банальное обоснование. В том числе, с точки зрения художественной правды. Однако, насколько можно судить, тема с космическим кораблём и другими планетами, на самом-то деле, не была хорошо разработана, а тоже являлась прикрытием. Предполагался второй слой с объяснениями затеи: дело вовсе не в космическом перелёте, который может и не получиться, а в том, что нужно, при помощи научного подхода и экспериментальным способом, определить новые пути развития человеческого общества на Земле, и для этого нужны эксперименты в бункерах. При этом, вообще говоря, из сеттинга игр серии не очень-то понятно, получилось ли со “второй задачей” – понятно только, что колонисты к далёким планетам точно не полетели. Запутанная история.
Комментировать »
Почему-то нередко приходится сталкиваться с ошибочной интерпретацией отрицательных результатов в измерениях, применительно к разным интернет-протоколам. Типичный пример (условный, тем не менее): пусть к нашему тестовому серверу подключается (в терминах IP, например) узел, который, как предполагается, должен аутентифицироваться при помощи некоторого секретного ключа (открытый ключ – знает сервер), а в этой аутентификации – смысл измеряемого протокола. Если подключающийся узел успешно аутентифицирован, – положительный результат измерения, – то считаем, что этот узел корректно поддерживает данный протокол. Это более или менее понятно и более или менее надёжно. Но можно ли сделать вывод, что некоторый узел не поддерживает протокол, если этот узел не удалось аутентифицировать (отрицательный результат измерения)? Нет, нельзя сделать такой вывод. Если результат отрицательный, то можно предположить, что какой-то другой узел пытался подключиться вместо того узла, который предполагалось исследовать. Соответственно, в этом случае, нельзя сказать, есть на настоящем узле поддержка протокола или её нет. Конечно, если узлов много, можно сделать некоторые предположения, используя сопутствующую информацию. Например, на основе оценок того, был ли спуфинг IP и т.д. Однако судить об отсутствии поддержки протокола – нельзя. (Никакой “закон исключённого третьего”, понятно, тут не работает: мы не знаем, что там на подключающихся узлах и что это вообще за узлы, которые подключаются.)
Дополнение: речь в примере, естественно, идёт об исследовании узлов не по адресам, а относительно некоторого набора признаков, определяющих поддержку протокола, например, относительно набора ключей, известных серверу.
Комментировать »
Кстати, так как в проект “Рувики” автоматом и полностью скопированы статьи из “Википедии”, туда, в статью “Великая теорема Ферма“, успешно перешло и забавное “эллиптическое уравнение”, про (показательное) возникновение которого в “Википедии” я писал ранее. Исправления вносить тоже нельзя (да я и не планирую, если что). Естественно, и все прочие странности в статьях перешли вместе с ними. Поэтому сохранился, скажем, характерный пример про физику Аристотеля, который очень удобно приводить в качестве иллюстрации (так как там есть даже ссылка на источник, на перевод “Физики” Аристотеля, но при этом в источнике-то сказано совсем другое; однако, мало кто читает даже источники по ссылкам, тем более, что утверждение “Аристотель считал, что тяжёлые тела падают быстрее лёгких” – является слишком хорошо распространённым штампом).
Комментировать »
В продолжение недавней записки про “слух человека и преобразование Фурье“. Интересно, что в рамках исследований того, как конкретный “сигнал” влияет на слуховое восприятие, происходит запись выдачи некоторого внешнего прибора (который как-то там, предположим, измеряет звуковое давление), далее выполняется визуализация этой записи при помощи алгоритмической и (так или иначе) дискретной обработки сигнала, а потом – описательное сравнение пересказанных человеком (испытуемым и исследователем) впечатлений от прослушивания такого же сигнала. При этом аппаратура и методы анализа используют много моделей явлений окружающей действительности: распространения звуковых волн, их детектирования, электромагнитного усиления в приборе, – опять же, то самое “преобразование Фурье”, – и так далее. Представление о предмете измерения преломляется при переходе между моделями. Но исследуемое прослушивание, как восприятие звука, естественно, проводится без только что описанной аппаратуры. Исследователи об этом часто знают и даже нередко учитывают эффекты. А вот в популярных статьях данный онтологический фон почему-то теряется – получаем очередные иллюстрации в стиле “как видит мир кошка”.
Комментировать »
Почему лабораторная установка для квантовых экспериментов показывает именно эту статистику? Физика не должна бы отвечать на столь общий вопрос “почему?”. Тем не менее, предположим, статистика такая потому, что через несколько минут две группы исследователей, работающих в одном общем эксперименте, но в разных лабораториях, удалённых одна от другой, сравнят результаты измерений и подставят их в формулу, связанную с неравенством Белла – показатели должны совпасть с уже согласованными ожиданиями.
Впрочем, возможна и несколько другая трактовка: в тот момент, когда исследователи обменялись результатами измерений, обсудили их и пришли к общему мнению, исходные показатели, полученные ранее лабораторными установками, участвовавшими в эксперименте, определились – но, из-за особенностей восприятия принципов причинности, всем исследователям кажется, что это в прошедший момент эксперимента показатели были именно такими. Вокруг неравенства Белла много подобных лазеек, а самые интересные из них вовсе и не касаются строго экспериментальных классических предположений (вроде задержек по времени, “паразитных” наводок в пространстве и тому подобных “эксперментально-физических” особенностей, которые, впрочем, не так давно были все закрыты современными экспериментами).
Эксперимент, связанный с неравенством Белла, строится так: квантовый объект, который можно разделить на пару достаточно хорошо локализуемых феноменов (например, запутанные, сцепленные общим состоянием частицы), распределяется по двум разнесённым в пространстве лабораториям, после чего две группы исследователей (или просто два исследователя, не важно), находящихся в этих лабораториях, измеряют каждый свою часть выбранным способом, а способ выбирают случайно (насколько вообще возможно случайно что-то выбрать: со случайностью тут связан отдельный набор “лазеек” – см. ниже). Дальше строится статистика по многим последовательным измерениям, где для каждого измерения, в каждой лаборатории, исследователи фиксируют, какие именно проводились измерения и какой получился результат. Потом эти результаты сравнивают между собой, обязательно учитывая последовательность типов измерений. Получается статистика, которую описывает модель квантовой механики. Определяющим моментом оказывается то, что измеряется одна квантово-механическая система.
Однако если попытаться свести наблюдаемый результат к некоторым заранее принятым допущениям, то легко возникает ощущение некоторой “контринтуитивности” – проступает корреляция, которой, как бы, быть не должно, поскольку, предположим, расставленные в разных и достаточно удалённых точках пространства системы не должны влиять одна на другую мгновенно. Это всего лишь допущения, которые иногда считают некими законами, как в “законах физики”. Видимо, отсюда растёт сравнение с “классической физикой”, приводящее к трактовкам в стиле “если измерить спин одного электрона из пары, то спин второго тут же изменится”. Однако “классическая физика”, что бы это ни значило, тут не должна никак мешать и вообще в процесс включаться.
Неравенство Белла показывает, что статистику, согласующуюся с некоторой интерпретацией экспериментов в области квантовой механики, нельзя получить при помощи параметров, находящихся за пределами модели, если, например, запрещено согласование этих параметров через пространство со сверхсветовой скоростью (а точнее – мгновенно). Но если мгновенное согласование возможно, то и статистику можно получить какую нужно. Нужна ли тут некоторая “не-локальность”? Не особенно: можно, например, продолжать считать, что всё “локально”, потому что ещё нужно принести и сравнить данные, чтобы построить статистику; а можно считать “локальной” саму квантовую систему. Подобная “не-локальность”, построенная на попытке вложить квантовый эксперимент над потоком вероятности в ту самую “классическую физику”, это лишь один из способов интерпретации, и вовсе не обязательно, что в него верят все физики.
“Локальность” против “не-локальности” основывается на введении расстояния и пространства. Как вообще можно понимать пространство? Предположим, что разнесённые по этому самому пространству частицы, участвующие в эксперименте, вовсе не удаляются одна от другой: эти частицы максимально похожи, они даже находятся в “общем” квантовом состоянии, что, – с точки зрения потока вероятности, описываемого, предположим, волновой функцией, – просто не позволяет их разделить в пространстве для измерения. Это всё один поток, который, предположим, экспериментально расщепляется на две статистики не ранее момента обсуждения результатов измерения экспериментаторами. В момент обсуждения одна последовательность результатов измерений привязывается к другой, а математический аппарат квантовой механики просто позволяет работать с потоком вероятностей так, что при преобразованиях несколько возможных исходов не теряются. Более того, известная интерпретация предполагает, что это группы исследователей, осуществляющие экспериментальные измерения квантовых феноменов, попадают в состояние “квантовой суперпозиции”, зацепившись за волновую функцию, а тот результат, который потом описывают популярные статьи, это как раз “коллапс волновой функции исследователей”, произошедший при сравнении показателей статистики.
С другой стороны, само пространство, выраженное в метриках расстояний, может представлять собой несколько более сложный феномен. Например, более “похожие” объекты находятся ближе. Тогда разнесение (условных) антенн экспериментального оборудования вовсе не означает, что и измеряемые частицы разнесены: дело в том, что для более или менее строгого экспериментального определения расстояния “в пространстве” требуется время, а для времени – требуется опорная частота, но её найти можно не всегда.
Ещё одна занятная лазейка касается “степени случайности” параметров измерений: исследователи, согласно условиям эксперимента, должны выбирать параметры измерений непредсказуемым, для окружающей эксперимент действительности, образом. Предположим, что при создании эксперимента строго определяется не только весь возможный набор результатов измерений, но и действия самих измеряющих. Тогда, опять же, можно получить любую статистику, подходящую под любые неравенства. Устранить этот аспект (обычно, называемый “супердетерминизмом”) не получится – он находится среди допущений, задающих интерпретацию эксперимента. Это позволяет, как минимум, уверенно сохранить “локальность”. Отменяет ли наличие подобного “супердетерминизма” свободу воли исследователей? Нет, не отменяет: исследователи всё так же вольны интерпретировать результаты, а перед этим – планировать серии измерений и технические детали экспериментов, составляя собственное представление о них. Здесь, кстати, кроется один из отличительных аспектов осознания, который никак не вписывается в новомодные системы ИИ с “машинным обучением”.
И это далеко не все онтологические лазейки, связанные с интерпретацией неравенства Белла.
(См. также “Алгоритм Шора и Вселенная кубиками“, “Алгоритм Шора в фантастической машине превращения вероятностей“.)
Комментировать »
Новый