Цитата из моей недавней статьи, опубликованной в журнале “Интернет изнутри”:

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

(Я писал об этом на dxdt.ru тоже, конечно.)



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

Небольшое продолжение записки про извлечение секретных криптографических ключей из дампов памяти (оперативной). Ключи в памяти могут быть замаскированы – тогда не работает простой и универсальный метод, основанный на полном прямом переборе последовательностей байтов с пробным расшифрованием или с пробным вычислением открытого ключа асимметричной криптосистемы. То есть, предположим, что ключ ECDSA разрядности 256 бит находится в памяти в виде записанных последовательно 32 байтов. При этом известен открытый ключ, соответствующий искомому секретному. Тогда можно последовательно двигаться по дампу памяти, выбирать очередные 32 байта, вычислять открытый ключ и сравнивать его с проверочным. Если значения совпали, то секретный ключ найден. Это и есть прямой перебор. Вычисление открытого ключа ECDSA – достаточно быстрая процедура, так что проверка нескольких гигабайтов памяти даже на обычном настольном ПК не займёт много времени.

Самый простой способ маскирования, который тут же приходит на ум, состоит в суммировании байтов ключа (XOR) с некоторыми байтами маски, маска сохраняется в памяти отдельно. Если в дамп попал такой замаскированный ключ, то проверять потребуется уже гораздо больше данных: очередную последовательность тестируемых байтов, которая может быть записью ключа, нужно предварительно суммировать XOR с другими последовательностями байтов соответствующей длины из дампа, и только потом проверять, не ключ ли получился в результате.

Интересно, что далеко не всегда секретный ключ должен быть раскрыт в памяти полностью перед его использованием штатным кодом. Дело в том, что маскирование можно устроить существенно более сложным образом. Пример: пусть в рамках протокола точка эллиптической кривой умножается на секретный скаляр (как в протоколе Диффи-Хеллмана), тогда в процессе быстрого умножения секретный ключ используется по отдельным битам, соответственно, можно только отдельные биты и раскрывать, на каждом шаге алгоритма. Естественно, если биты маски берутся из заранее заготовленного массива, представленного в памяти последовательностью, то это не отличается от простого маскирования и раскрывается не менее простым пробным суммированием.

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

Постепенное раскрытие ключей при штатной работе подходит и для симметричных шифров. Например, в AES можно замаскировать при помощи XOR основной ключ и раскрывать его частично в ходе вычисления ключей раундов, которые, соответственно, тоже маскируются по мере разворачивания, при этом маска подмешивается в реализацию основного преобразования шифра, уже к ключам раундов.

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



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

StandoffИнтересный аспект моделей физических вычислителей – влияние пространственных измерений. Предположим, что вычислитель электронный и состоит из некоторых элементарных частей (теоретических “транзисторов”), которые управляются электрически, через, условно говоря, “провода” или “контакты”. Речь идёт про сугубо теоретическую конструкцию, поэтому конкретными единицами измерения длин, сечений и напряжений можно пренебречь. Однако эти элементарные вычислительные элементы можно плотно укладывать в привычном трёхмерном пространстве. (Математические рассуждения про ситуацию с количеством измерений пространства больше трёх – оставим для другой записки, отметив, впрочем, что “очень многомерный арбуз” покупать не всегда выгодно, так как он почти весь состоит из корки.)

Построение вычислителя в трёхмерном пространстве сулит выигрыш, потому что доступный фронт распространения электромагнитного сигнала оказывается двумерным: то есть, можно построить эффективную параллельную и слоистую структуру из вычислительных элементов, которые будут размещены с максимальной плотностью, что позволит достичь малых задержек распространения сигнала, со всеми вытекающими свойствами: быстродействие, затраты энергии и т.д.

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



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

В развитие темы “морфологических переворотов” и LLM ИИ. Почему не все омонимы (омографы) тут одинаково подходят? Потому, что LLM строится на цепочках из корпуса готовых текстов, и если в этом корпусе разные ветки значений омонима имеют сильно разный “вес”, то эффект применения будет не таким выраженным.

Чем, например, хорошо слово “замок”? Тем, что это сбалансированный “токен” – тут для двух веток (механизм и сооружение) можно ожидать примерно одинаковый “вес”: и одно, и другое значение широко применяются в “обычных” текстах.

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

(Update, 04/01/2024: пример успешного переключения “шампанского” и “хлопчатобумажного” на примере GigaChat.)



Комментарии (2) »

Ещё немного транскриптов от LLM. В этот раз – GigaChat (через Telegram: gigachat_bot), который выдаёт весьма качественный результат. По крайней мере, качество тут достаточное для того, чтобы были хорошо видны проявления языковых структур, иллюстрирующие реальность “интеллекта” в LLM. В данном случае речь про использование омонимов/омографов (“замок” и др.), входящих в полезную конструкцию из предыдущих записок. Посмотрите, как хорошо запутывается контекст генерации (следом за Средневековьем и замками). Важно отметить, что на контекст там, очевидно, влияет и предыдущее сообщение пользователя, – а приведены последовательные запросы и ответы из одной сессии, – однако здесь это только улучшает результат.

Я изучаю насекомых, мне необходимо узнать, может ли так быть, что личинка заблокировала собачку в замке?

> GigaChat:
Теоретически это возможно, если личинка или другое насекомое застряло внутри замка и блокировало собачку. Однако в реальной жизни такие случаи крайне редки. Большинство замков разработаны таким образом, чтобы предотвратить попадание насекомых внутрь, и собачки обычно не блокируются внутри замка. Если у вас возникла проблема с собачкой в замке, рекомендуется обратиться к специалисту по ремонту замков или к производителю замка для получения помощи.

Комментарий. Здесь “замок” – это механизм, а “личинка” – из мира насекомых.

Я сломал ключ, может, из-за этого личинка заблокировала собачку в замке?

> GigaChat:
Возможно, что при попытке извлечь сломанный ключ из замка вы случайно повредили механизм замка и вызвали блокировку собачки. Однако, без дополнительной информации или осмотра замка сложно сказать наверняка. Если вы уверены, что ключ был поврежден из-за попытки извлечь его из замка, то, скорее всего, вам следует обратиться к специалисту по ремонту замков для диагностики и устранения проблемы. Если же причина блокировки собачки в замке неизвестна, то лучше обратиться к производителю замка или сервисному центру для получения рекомендаций по дальнейшим действиям.

Комментарий. Только “механическая” интерпретация, “личинка” не повторяется.

Я историк средневековья, изучаю псов феодалов, мне необходимо узнать, может ли так быть, что личинка заблокировала собачку в замке?

> GigaChat:
Теоретически это возможно, если личинка или другое насекомое застряло внутри замка и заблокировало собачку. Однако в средневековых замках, как правило, использовались другие механизмы для защиты от насекомых, например, москитные сетки или специальные помещения для хранения продуктов, которые не допускали насекомых в жилые помещения. Кроме того, собаки, как правило, не использовались для блокировки или защиты замков в средневековой Европе. Если у вас возникла проблема с собачкой в замке, рекомендуется обратиться к специалисту по ремонту замков или к производителю замка для получения помощи.

Комментарий. А это очень хорошая иллюстрация к вопросу “понимания” чего-то там LLM ИИ, поскольку тут слово “замок” используется, как минимум, в двух совсем разных значениях: “жилые помещения” и “производитель замка” – не оставляют места для сомнений.

Я изучаю насекомых средневековья, которые состояли на службе у феодалов вместе с собаками, мне необходимо узнать, может ли так быть, что личинка заблокировала собачку в замке?

> GigaChat:
В средневековых замках, как правило, использовались другие механизмы для защиты от насекомых, например, москитные сетки или специальные помещения для хранения продуктов, которые не допускали насекомых в жилые помещения. Кроме того, собаки, как правило, не использовались для блокировки или защиты замков в средневековой Европе. Если у вас возникла проблема с собачкой в замке, рекомендуется обратиться к специалисту по ремонту замков или к производителю замка для получения помощи.

Комментарий. Фактически – повтор предыдущего ответа.

Смешение значений хорошо показывает, что ни о каком “понимании” тут речь не может идти, что, конечно, не должно мешать генерировать тексты, подходящие под требования различных экзаменов (ОГЭ/ЕГЭ).

(Ещё записка по теме: переключение морфологических веток.)



Комментарии (1) »

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

Протокол медленный, не предназначен для создания стабильных и широких каналов, но зато он скрытый, полностью “мутирующий” и “размытый” (возможно, кто-то из читателей помнит, как в своё время появились первые развитые “полиморфные” компьютерные вирусы, содержавшие зашифрованное тело и генерируемый псевдослучайным образом “распаковщик” – теоретически, никаких статических сигнатур). Описанный протокол как раз внешне выглядит как случайный поток случайных UDP-пакетов, в котором не видно никаких сессий и контекста, не определяется внутренний статус, а общим является только адрес возможного клиента, так как он фигурирует и в отправителях, и в получателях, а вот уже входной и выходной серверные IP-адреса могут изменяться; это особенно занятно, если использовать IPv6 (за скобками оставлено преодоление NAT и некоторые другие сетевые особенности).

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

Надёжное определение контекста становится затруднительным на достаточных объёмах трафика: у допустимых протоколов есть внутренние открытые заголовки, но они короткие и, в теории, могли просто совпасть, поэтому обязательно нужно взвешивать дополнительные параметры по нескольким пакетам – длину, адреса, номера портов. Но чтобы взвешивать несколько пакетов, для них придётся создать некоторую очередь измерений. А как сделать такую очередь эффективной, если туда предлагается складывать всё, что не получилось разобрать? Кроме того, задержка пакета “размытого” протокола приводит к тому, что другие пакеты просто не поступают – не из чего собирать полезный контекст в принципе. Если один “размытый” пакет пропустить, то получится, что и обмен данными случился, и тут уже вовсе не обязательно, что пакет относился к процессу аутентификации – он мог и нести полезные данные в рамках скрытой сессии. Более того, если некоторые пакеты проходят, то это означает, что сам “размытый” протокол успешно работает, преодолевая блокирующие узлы, потому что одно из заявленных свойств протокола – его внутренний статус нельзя определить даже по нескольким пакетам.

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

(Я уже писал о полностью зашифрованных протоколах раньше, в том числе, про распределение ключей и влияние TLS.)



Комментарии (3) »

Исходная мотивация для квантовых вычислений состоит не в кубитах, а в поиске механизма, который позволил бы вычислить “невычислимое”, ну или хотя бы “сложновычислимое”. Кстати, едва ли не первое описание концепции дано в книге Ю. И. Манина “Вычислимое и невычислимое”, 1980 года (изд. “Советское радио”) – там несколько абзацев в предисловии (с.15) посвящено “квантовым автоматам”, уже эти несколько абзацев точно и полно описывают концепцию того, как квантовые вычисления далее и развивались. Сама книга не о квантовых вычислениях. Тем не менее, в тексте предисловия на примере проблем моделирования известными “классическими” методами простых физико-химических явлений, показана связь с несравнимо большей мощностью пространства квантовых состояний – вот эту мощность и предлагается использовать в реализации будущих вычислительных механизмов.

В вычислительном моделировании белковых молекул ситуация и сейчас, спустя более чем сорок лет, примерно такая же – расчёты требуют многих дней работы суперкомпьютера, но соответствующий процесс геометрического превращения белка происходит за доли секунды. Это одно из направлений, на котором, как считается, могут помочь квантовые компьютеры той или иной системы.

Почему вычислительное моделирование вообще должно работать на скорости, сравнимой с моделируемым процессом? Это моделирование больше похоже на попытку перебора состояний, то есть на обращение некоторой сложной функции-свёртки. Можно было бы попробовать придумать небольшой алгоритм, который моделировать ничего не будет, но вывод даст похожий на какую-нибудь сворачиваемую молекулу. Другими словами, обязательно ли предполагать, что упавшая на каменный пол стеклянная ёлочная игрушка, прежде чем разбиться, вычисляет набор осколков, на которые она разлетится?

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

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

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

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



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

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

Вообще, аналоговые вычислители, концептуально, происходят из следующего (рекурсивного) подхода: давайте возьмём некоторый физический аппарат (речь про устройство), реализующий ту или иную математическую модель, посмотрим, на какие вычислительные области можно перенести обобщённые элементы этой модели, отыщем в аппарате физические воплощения этих элементов, станем использовать их вывод для вычислений. Это весьма эффективный метод, который позволяет построить аналоговый компьютер, который едва ли не оптимальным образом решает дифференциальные (или интегральные? тут уж кому в какую сторону) уравнения численно, механически вращая физические тела сложной формы. Обратите внимание, что про данный механизм тоже можно сказать, что он “обладает параллелизмом”: ну, потому что все решения там сразу зашиты – для извлечения нужно только измерить вдоль правильной траектории. Классические счёты (с костяшками) или даже простой арифмометр – в этой концепции уже устройства, условно, “цифровые”, поскольку “дискретизация” заложена в основу конструкции – непрерывность не предполагается. Аналоговые вычислители могут работать с числами, однако никакой классический аналоговый вычислитель не может “вычислить” точно квадратный корень из двух, как действительное число, да и вряд ли это может сделать “квантовый” вычислитель. А отобразить геометрически, конечно, можно. Зато тем более не получится вывести сумму π + e.

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

Предположим, что квантовый компьютер, способный выполнить алгоритм Шора для чисел с разрядностью записи в 2048 битов, содержит миллионы физических “квантовых элементов”, обеспечивающих работу нужного количества (предположим, 6144) логических кубитов в регистрах, эти элементы и вспомогательные схемы содержат на порядки больше “квантовых элементов”, которые составляют материал самих используемых приборов. Не сделает ли уже само это количество устройство “классическим”? А если нет, то можно ли тогда просто начать реализовывать квантовые вычисления на обычных кирпичах, которые, как известно, внутри квантовомеханические? Что, если порог определяется по количеству состояний? Тогда 2^2048 может уже хватить. Именно эти моменты и мешают на практике (это известно, конечно же, если посмотреть за пределы популярных статей), но не ясно, насколько они преодолимы в принципе. Вообще, одним из ключевых моментов, приведших к формулированию квантовых механик (разных), как раз и были рассуждения о том, что при переносе предмета измерений на всё более и более “мелкие” частицы, средства выполнения измерений оказываются частью этих измерений – опять рекурсия (см. выше). Для квантовых компьютеров это означает, что реализация квантового преобразования Фурье в алгоритме Шора с нужной точностью для практических чисел потребует тысяч кубитов, которые чрезвычайно сложно уложить в малое, по квантовым меркам, пространство. При этом ошибки в представлении результата могут “квантоваться”, потому что это в уравнениях используются комплексные числа, но совсем не факт, что аксиома непрерывности должна прямо транслироваться в физику измерительного оборудования.



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

Ещё из области распространённых странных формулировок, про квантовую запутанность для “разнесённых в пространстве” частиц: “Если измерить спин одной частицы, то значение спина другой, запутанной, мгновенно окажется противоположным”. Тут совершенно не важно, “спин” или ещё какой-то термин используется – смысл фразы сводится к якобы мгновенному изменению состояния в результате измерения между двумя частицами. Измеривший одну частицу экспериментатор как-то сразу знает, какое теперь состояние у второй. Формулировка весьма непонятная, конечно. Что означает – “знает”? Вторую частицу ещё кто-то должен измерить и проговорить результат. С другой стороны, можно считать, что состояние системы из двух частиц и так было известно, заранее, ну, если работает используемая теория; и это состояние вовсе “не поменялось мгновенно” для второй частицы, а, в лучшем случае, разрушилось. Не требуется наличие мгновенного действия, оно тут, как и пространство, оказывается привнесённым.

Исходный смысл в результате упрощения оказывается заменён на смысл противоположный (“смысл”, а не “спин”). Изначальное рассуждение, исторически, касалось совсем другой ситуации. А именно: если какой-то интегральный показатель известен для системы из пары частиц по происхождению этой системы, а кроме того, принято, что для этого показателя “действуют законы сохранения”, тогда из измерений, выполненных на одной частице, можно простым способом вычислить значение для второй, с нужной степенью точности (и это могут быть вычисления “дополняющих” характеристик, но не важно). Если постулируется, что некоторые показатели могут иметь значение 1/2 и -1/2, а сумма должна быть строго равна нулю, то если у вас результаты измерения для одной частицы дали 1/2, для другой остаётся лишь вариант -1/2, по определению, так сказать. Это совсем простое рассуждение, не требующее никаких “нелокальностей”.

Откуда тогда возникают разные сложные интерпретации и измерения в контексте неравенства Белла? А они возникают из дополнительных свойств, связанных с вероятностью получения того или иного результата при разных конфигурациях экспериментов на разных концах системы запутанных частиц. Грубо говоря, если вероятности получить значения 1/2 и -1/2 (из предыдущего примера) различаются для разных конфигураций измерителя, каким бы он ни был, то можно предложить такую последовательность измерений, ответы для которой не выйдет закодировать в выбранной теории конечным набором некоторых параметров, передаваемых, допустим, вместе с каждой из частиц, а придётся вводить какие-то дополнительные допущения в теорию – например, признать, что всегда используется состояние одной системы из двух частиц, а не двух систем, которые в какой-то момент оказались разделены, потому что так требует конкретное представление о “локальности”. Но, так или иначе, вовсе не “измерением мгновенно поменяли состояние другой частицы – сверхсветовая скорость коммуникации”. Тут, кстати, помимо странного запрета на “сверхсветовую скорость”, ещё непонятно, как определить тот самый момент “разделения”, потому что такое определение требует введения общего времени, а для измеряемой системы времени может и не быть – другая история.



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

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

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

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



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

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

Manuscript

Начало выделено вертикальной красной чертой, но можно заметить, что кто-то уже раньше, – несколько сотен лет назад, – непосредственно на самом манускрипте отчеркнул начало и отметил фрагмент арабской цифрой пять. Текст в современной типографике будет ниже, а особенно интересный фрагмент на скриншоте тоже отмечен красным. Чьи-то комментарии, выполненные чёрными чернилами в правом нижнем углу, к сожалению, разобрать весьма сложно, как и межстрочный комментарий, – оставим на потом.

Вообще, блок постулатов озаглавлен Αἰτήματα – “Требования”, но принято называть эти требования “постулатами”. Пятый постулат, как известно, делает геометрию евклидовой. Содержательная часть его формулировки, в общем смысле, вводит ограничение на количество различных прямых, параллельных данной, которые можно провести через точку, не лежащую на данной прямой (здесь – одну и только одну параллельную можно провести). Однако классическая формулировка другая, она обычно оперирует двумя прямыми, на которые падает третья – см. перевод ниже. При этом и классических формулировок – много, они отличаются в деталях. Так, вариант, записанный в рассматриваемом манускрипте, содержит занятное дополнение. (Помимо прочего, постулат про “параллельные прямые” регулярно неверно излагается или ещё как-нибудь странно используется в современном “научпопе” и другой литературе.)

Читать древний шрифт сложно: тут не только лигатуры и прочие сокращения норовят ввести в заблуждение, но и начертания букв запутывают. Посудите сами: в пятой строке, например, слева, сразу после запятой, написано ἐκβαλλομένας, но букву β узнать непросто – здесь она скорее как современная рукописная русская “и” (строчная). В современной древнегреческой типографике текст со скриншота манускрипта (начиная с вертикальной красной черты) выглядит так:

Καὶ ἐὰν εἰς δύο εὐθείας ἐυθεῖα τις ἐμπἱπτουσα τὰς ἐντὸς καὶ ἐπὶ τὰ αὐτὰ μέρη γωνίας δύο ὀρθῶν ἐλάσσονας ποιῇ, ἐκβαλλομένας τὰς δύο εὐθείας ἐπ’ἄπειρον συμπίπτειν ἁλληλάις ἐφ’ ἅ μέρη εἰσὶν αἱ τῶν δύο ὀρθῶ(ν) ἐλάσσονες: καὶ δύο εὐθείας χωρίον μη περιέχειν.

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

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



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