Постепенно выходящие из лабораторий в область практического применения квантовые компьютеры будут весьма полезны человечеству. Они не заменят обычные, но в различных задачах, которые можно свести к оптимизации и перебору, дадут большую фору традиционным компьютерам. К сожалению, среди этих задач не только поиск новых лекарств и создание более совершенных самолетов, но и взлом компьютерного шифрования. До момента, когда такой взлом будет применен на практике, может пройти и пять, и двадцать пять лет, но будьте уверены — уже сейчас существуют данные, которые должны оставаться надежно зашифрованными и спустя десятилетия. Именно поэтому крупные организации и государственные структуры должны начать подготовку к квантовому будущему уже сейчас.
Основная трудность в этой подготовке — отсутствие четких стандартов. Мировое сообщество криптографов уже разработало несколько многообещающих криптоалгоритмов, которые будут устойчивы к квантовым атакам, однако эти алгоритмы должны пройти многоэтапный отбор и проверку. Нужно убедиться, что алгоритмы устойчивы не только к квантовым атакам, но и к классическим. Надо найти среди них самые быстрые, но при этом требующие минимум ресурсов, чтобы их можно было применять в маломощных устройствах, например IoT. Необходимо подобрать параметры (длины ключей и т. п.), создающие оптимальный баланс между надежностью и эффективностью.
Но и это далеко не конец работы — алгоритмы нужно внедрить в существующие стандарты коммуникаций (например, TLS) и определить условия «сосуществования» старых шифров с новыми. Совершенно очевидно, что эта работа займет годы. Что в это время делать разработчикам приложений и платформ, конструкторам автономных автомобилей или хранителям стратегически важных данных?
Круглый стол специалистов по внедрению криптографии, прошедший в рамках конференции RSAC-2020, видит ответ в «криптографическом проворстве» (cryptographic agility). Попросту говоря, если вы прямо сегодня разрабатываете или поддерживаете систему шифрования или хэширования данных, не закладывайте в нее жестких ограничений. Предусмотрите возможность обновления используемых алгоритмов, регулировки размера ключей и буферов в большом диапазоне, в общем, сделайте систему «на вырост». Это особенно важно, если вы разрабатываете индустриальные или IoT-решения, поскольку подобные технологии медленно внедряются, а потом не меняются десятилетиями. Если вы покупаете новую систему, спросите про «криптопроворство» у разработчиков.
Если не следовать правилу «проворства», искоренять устаревшие алгоритмы шифрования и заменять их на более новые будет очень болезненно. Хороший пример приводит Брайан Ламача (Brian LaMacchia) из Microsoft: когда стало очевидно, что хэш MD5 научились взламывать и он более не пригоден для генерации цифровых подписей, в Microsoft решили целиком вывести его из употребления. После длительной инвентаризации оказалось, что в различных продуктах компании используется около 50 (!) независимо написанных вариантов кода, вычисляющего MD5, и устранять каждый из них придется отдельно. В результате этот процесс занял около двух лет.
Еще одна потенциальная проблема, которая, вероятнее всего, станет частой при переходе от традиционных алгоритмов к квантово-устойчивым, — недостаточные объемы памяти для хранения ключей. Если когда-то разработчики решили, что любому алгоритму шифрования в вашей системе хватит 4096 бит для хранения ключей, то при внедрении постквантового шифрования вы обнаружите, что этого буфера мало, даже если система в принципе поддерживает добавление новых алгоритмов.
Чтобы проверить «криптографическое проворство» своих компьютерных систем, можно попробовать развернуть в них криптосистемы на основе алгоритмов — кандидатов в стандарты «официального постквантового шифрования». Многие перспективные алгоритмы и протоколы доступны в рамках проекта Open Quantum Safe, где ими можно воспользоваться уже сегодня. Кроме исходных кодов самих алгоритмов на сайте имеются и уже готовые сборки популярных программных продуктов, например OpenSSL или постквантовая версия OpenVPN, сделанная инженерами Microsoft.