Национальный институт стандартов и технологий США (NIST) представил первые три стандарта, определяющие криптоалгоритмы, стойкие к подбору на квантовом компьютере. Первый стандартизированный алгоритм (CRYSTALS-Kyber) определяет способ инкапсуляции ключей и предназначен для шифрования обмена данными, а два других (CRYSTALS-Dilithium, Sphincs+) предлагают варианты формирования цифровых подписей, которые могут использоваться для решения задач, связанных с аутентификацией. Для того, чтобы избежать путаницы стандартизированные варианты алгоритмов переименованы: CRYSTALS-Kyber в ML-KEM, CRYSTALS-Dilithium в ML-DSA, а Sphincs+ в SLH-DSA. Выбранные алгоритмы развиваются с 2016 года и являются победителями ранее объявленного NIST конкурса по разработке алгоритмов постквантовой криптографии.
Активно развивающиеся последнее время квантовые компьютеры кардинально быстрее решают задачи разложения натурального числа на простые множители (RSA) и дискретного логарифмирования точек эллиптической кривой (ECDSA), которые лежат в основе современных асимметричных алгоритмов шифрования по открытым ключам и эффективно не решаемы на классических процессорах. На текущем этапе развития возможностей квантовых компьютеров пока недостаточно для взлома актуальных классических алгоритмов шифрования и цифровых подписей на базе открытых ключей, таких как ECDSA, но предполагается, что ситуация может измениться уже в этом десятилетии.
Принятые стандарты:
- FIPS 203 – рассматривается как основной стандарт для шифрования данных, использующий алгоритм CRYSTALS-Kyber (ML-KEM – Module-Lattice Key-Encapsulation Mechanism) для организации обмена ключами между сторонами, выполняющими шифрование и расшифровку данных.
Алгоритм CRYSTALS-Kyber использует методы криптографии, основанные на решении задач теории решёток, время решения которых не отличается на обычных и квантовых компьютерах. Достоинствами выбранного алгоритма являются относительно небольшой размер ключей и высокая скорость работы. - FIPS 204 – первичный стандарт для формирования цифровых подписей, основанный на алгоритме CRYSTALS-Dilithium (ML-DSA – Module-Lattice Digital Signature Algorithm), который как и CRYSTALS-Kyber базируется на теории решёток.
- FIPS 205 – альтернативный стандарт для формирования цифровых подписей, использующий алгоритм Sphincs+ (SLH-DSA – Stateless Hash-Based Digital Signature Algorithm), который применяет методы криптографии на основе хеш-функций. Sphincs+ отстаёт от CRYSTALS-Dilithium по размеру подписей и скорости работы, но базируется на совершенно иных математических принципах, т.е. останется эффективен в случае компрометации алгоритмов на основе теории решёток.
Кроме того, до конца года планируется утвердить четвёртый стандарт – FIPS 206, предназначенный для работы с цифровыми подписями и основанный на алгоритме FALCON, который как и алгоритмы CRYSTALS-Kyber и CRYSTALS-Dilithium основан на решении задач теории решёток, но в отличие от них ориентирован на решения, в которых требуется минимальный размер подписи. Стандартизированный вариант алгоритма FALCON будет поставляться под именем FN-DSA (FFT (быстрое преобразование Фурье) over NTRU-Lattice Digital Signature Algorithm).