Кванты, квантовая криптография с компьютерами
Больше и больше пишут про “квантовые каналы” связи, которые “абсолютно” защищены “квантовой криптографией”, и только они смогут спасти от “квантового компьютера”. Здесь интересны несколько моментов.
1.
На практике, абсолютной защиты информации техническими методами – не бывает. Что касается криптографии, то известен только один абсолютно стойкий метод шифрования, и он не технический/физический: шифр Вернама, использующий одноразовый ключ, равный сообщению по длине. Этот метод должен применяться и к квантовым системам, потому что канал с “квантовой криптографией” позволяет только обнаружить утечку, с высокой вероятностью. То есть, квантовая криптография – это схема распределения ключей, защищённая от прослушивания в том смысле, что физические свойства канала дают сторонам технический инструмент обнаружения факта подмены/прослушивания. К сожалению, на практике такая схема не может гарантировать абсолютной защиты, потому что реализация будет обязательно содержать ошибки, а эти ошибки приведут к разрушению теоретически доступных параметров. Так, реализации шифра Вернама известны давно, но столь же давно известны и дефекты в этих реализациях, обычно сводившиеся к тому, что, например, на ленту с зашифрованными данными, в результате электромагнитной утечки, записывались слабые сигналы срабатывания реле в шифровальной машине – эти сигналы оказалось возможно прочитать с помощью специальной аппаратуры и, на основе их анализа, восстановить биты секретного ключа.
2.
Квантовая криптография требует физического соединения “точка-точка”, так что для увеличения дальности или внесения каких-то других сетевых возможностей, нужно добавлять промежуточные узлы, которые будут обрабатывать информацию классическими методами. Эти узлы подвержены всем возможным техническим дефектам, ведущим к утечкам. Для систем квантовой криптографии уже предложены схемы атак, включающие ослепление сенсоров приёмника, подмену данных детекторов, и так далее, и тому подобное. В дальнейшем – эти атаки будут быстро улучшаться, а вот защита, наоборот, будет отставать, так как устройства квантовой криптографии весьма сложны и являются новым направлением.
3.
Очевидно, нет смысла непосредственно передавать по квантовому каналу защищаемую информацию в открытом виде. Квантовая криптография изначально предназначена только для передачи ключей. Ключи для симметричной криптосистемы можно передать и другим способом, вплоть до отправки с курьером твердотельного носителя, упакованного в защищённый контейнер. Ключей можно записать гигабайты, а контейнер сыграет ту же роль, что и квантовый канал – позволит обнаружить “прослушивание”. Да, может показаться, что контейнер менее защищён, чем “физические кванты”. Но это не так: квантовые эффекты не доступны для непосредственного восприятия человеком, так что фиксирование возможной утечки в квантовом канале так же производит аппаратура, некий физический инструмент (в этом контексте хорошо вспомнить про электронный микроскоп). Так что оценка, сравнение защищённости квантового канала и механического контейнера “технической защиты” – это вопрос точности моделирования, проектирования и опыта инженеров, использующих аппаратуру.
4.
Квантовые компьютеры. Симметричные системы (шифры), вроде AES, сохраняют стойкость: сейчас считается, что появление квантовых компьютеров достаточной мощности приведёт лишь максимум к “квадратичной” оптимизации перебора. Это очень оптимистичная, в отношении квантового компьютера, оценка, потому что речь идёт о квантовых операциях, реализующих алгоритм поиска – а это совсем другое дело, по сравнению с классическим CPU. То есть, для сохранения стойкости, разрядность ключа симметричного шифра нужно будет увеличить в два раза. Соответственно, AES с 256-битным ключом обеспечит достаточную степень защиты (эквивалентную 128 битам). Если стороны успели в защищённом режиме обменяться гигабайтом ключевого потока, то его, даже при расточительном использовании в качестве ключей AES, хватит надолго. (256 бит – это 32 байта, которые можно смело использовать для шифрования AES примерно 2^32 блоков, каждый блок – это 16 байтов, то есть, одного ключа хватит для 16 * 2^32 ≈ 64 гигабайт передаваемых данных; и это только один ключ, 64 байта из гигабайта).
5.
Квантовые компьютеры достаточной разрядности – полностью побеждают распространённые сейчас асимметричные криптосистемы. Если только такие компьютеры возможны. Как ни странно, первыми падут суперсовременные криптосистемы на эллиптических кривых: это связано с тем, что они имеют малую разрядность, а способность квантового компьютера взламывать такие системы находится в прямой зависимости от числа доступных кубитов. То есть, компьютера, взламывающего ECDSA с ключами в 256 бит, ещё недостаточно для того, чтобы атаковать RSA с разрядностью в 2048 бит. Так что тут у RSA есть преимущество. Другое дело, что как только сумеют построить квантовый компьютер с разрядностью в 256 кубитов, масштабирование на 2048 – вряд ли потребует долгих лет.
6.
Тем не менее, утверждение, что квантовый компьютер убивает всю современную криптографию – не соответствует действительности. Выше уже отмечено, что симметричные шифры страдают не сильно, не критически: 256-битный ключ – обычное дело уже сейчас. К асимметричным системам, надо сказать, при защите действительно важной информации всегда относились насторожено – так что для защиты совершенно секретной информации такие криптосистемы не используют. (Электронная почта, банк-клиенты – это другое дело.) Без сомнения, производительный квантовый компьютер позволит достаточно быстро расшифровать все записанные ранее сообщения, ключи для которых были выработаны при помощи шифрования RSA, современных разновидностей протоколов Диффи-Хеллмана (DH). Например, сюда относится весь трафик* TLS – он становится полностью прозрачен. Ещё раз отмечу: это относится и к ранее записанным сессиям. Сейчас сплошь и рядом приходится слышать, что, якобы, ключи DH “сохраняются только у клиента и сервера”. Это не так. Полное представление ключей сохраняется в трафике, их просто сложно вычислить из этого представления (я писал об этом ранее), но квантовый компьютер задачу решает.
Про “квантовую проблему” давно известно. Поэтому сейчас очень активно разрабатывают классические криптосистемы, обладающие “квантовой стойкостью”. Это постквантовая криптография. Так как основную угрозу составляет возможное раскрытие симметричных ключей, защищающих трафик, прежде всего будут внедряться постквантовые протоколы обмена ключами (выработки общего секрета). Это, например, варианты протокола Диффи-Хеллмана, работающие на другом математическом аппарате. В экспериментальной версии браузера Google Chrome в реализацию TLS уже добавлен постквантовый протокол генерации общего секрета. Так что не стоит доверять громким заявлениям, будто “появление квантового компьютера уничтожает классическую криптографию” – квантового компьютера пока что нет и на горизонте, а постквантовые криптосистемы уже добрались до реализации в экспериментальном браузере (но до массового внедрения, конечно, там тоже далеко).
7.
Скорее всего, из-за технической сложности и проблем с масштабированием, массового внедрения квантовой криптографии мы в ближайшее время не увидим. Квантового компьютера большой разрядности – не увидим тоже. А вот классические схемы дополнятся постквантовыми решениями, которые заработают на практике уже через несколько лет.
* Примечание от 04/11/2021: здесь речь идёт про TLS в вебе, в HTTPS, но TLS применяется не только в вебе, а исключение составляют варианты использования TLS с заранее распределённым секретным ключом (схемы PSK), которые, впрочем, встречаются довольно редко.
Адрес записки: https://dxdt.ru/2016/10/03/8073/
Похожие записки:
- Интерпретация DMARC в разрезе DKIM
- Техническое: где в ECDSA эллиптическая кривая
- Помехи GNSS и распределённые "геосервисы"
- Техническое: связь SCT-меток с логами Certificate Transparency
- Приложение про DNS к описанию TLS
- Удостоверяющий центр TLS ТЦИ
- Синтезирование изображений смартфонами и "реальность фотографий"
- Выключение вариантов в двухщелевом опыте
- Манускрипты и переписывание трудов философа Клеомеда
- Вычисление размеров Земли и манускрипты
- Шумерские цифры и хитрости Unicode
Комментарии читателей блога: 5
1. 5th October 2016, 01:27 // Читатель Сергей Виноградов написал:
> 256 бит – это 32 байта, которые можно смело использовать для шифрования AES примерно 2^32 блоков,
Мне кажется, это ошибка.
Размер гаммы шифра определяется количеством состояний счётчика, размер которого равен размеру блока. Блок в AES – 128 битов. Это 2^128 блоков, а не 2^32.
Правда есть ещё возможности наложения гамм, но их учесть я уже здесь не смогу.
И плюс к этому – насколько я помню, был учебник по криптографии, автор, кажется, Шнайер. Он вообще написал, что помимо вычислений нужно ещё затем состояние кубитов перевести в понятный человеку вид, для чего эти кубиты придётся выводить из квантовой неопределённости.
В результате чего он заявил, что RSA по прежнему стоек, как он выразился: “потом не говорите, что я вас не предупреждал”.
2. 5th October 2016, 21:44 // Александр Венедюхин:
> Размер гаммы шифра определяется количеством состояний счётчика, размер которого равен размеру блока. Блок в AES – 128 битов. Это 2^128 блоков, а не 2^32.
Если бы было так хорошо, то можно было бы не менять ключи вовсе. Про “мощность” гаммы – это всё правильно указано, но использование шифра определяется и другими параметрами. То есть, в зависимости от режима шифрования, часть разрядности счётчика уйдёт на nonce (потому что, вообще говоря, нельзя использовать хорошо предсказуемое значение вектора инициализации; кроме того, скорее всего потребуется отличать сессии в комбинации ключ+nonce), часть – съест аутентификация (мы не хотим, чтобы данные модифицировали в пути), а другая часть, – которая, собственно, осталась на сам счётчик, – совершенно точно должна быть _как_ _минимум_ поделена на два, из-за возможных коллизий (парадокс дней рождения и пр.). Соответственно, я взял на себя смелость привести такую вот консервативную оценку – 32 бита на сложность, то есть, 2^32 блоков плюс смена ключа дают уверенность. Это примерно совпадает с логикой режима GCM, например.
3. 6th October 2016, 14:48 // Читатель Сергей Виноградов написал:
> часть – съест аутентификация
А каким образом гамму съест имитовставка?
> в зависимости от режима шифрования, часть разрядности счётчика уйдёт на nonce
Ну, я говорю про гаммирование и основанные на этом режиме.
Честно говоря, не очень понял, как часть разрядности куда-то уйдёт. Синхропосылка вся несекретная и случайная.
> совершенно точно должна быть _как_ _минимум_ поделена на два, из-за возможных коллизий
Ну да, я про это и говорил, когда говорил про наложение гамм. Однако если используется режим CTR (а GCM – это режим, основанный на CTR), то делить на два не следует. Там на что именно делить зависит от количества разных синхропосылок. Если синхропосылка одна, то делить вообще ничего не надо.
Это, скажем, длину гаммы keccak надо делить на два, т.к. там идёт хеширование для получения следующего блока, а AES делить так не надо.
> Это примерно совпадает с логикой режима GCM
А какие там ограничения?
4. 12th October 2016, 09:03 // Читатель Z.T. написал:
@Сергей Виноградов http://www.isg.rhul.ac.uk/~kp/TLS-AEbounds.pdf
5. 13th October 2016, 20:03 // Читатель Сергей Виноградов написал:
@Z.T. Спасибо, интересно.