Round5

Round5 — это постквантовая система шифрования с открытым ключом, основанная на общей задаче обучения с округлением (General Learning with Rounding (GLWR))[1]. Данная система является альтернативой для алгоритмов RSA и эллиптических кривых и предназначена для защиты от атак квантовыми компьютерами[2]. Round5 состоит из алгоритмов, предназначенных для реализаций механизма инкапсуляции ключей (key encapsulation mechanism (KEM)) и схемы шифрования с открытым ключом (public-key encryption (PKE)). Данные алгоритмы попадают под категорию криптография на решётках.

Round5 представляет собой слияние двух систем: Round2[3], основанная также на задаче GLWR, и HILA5[4], имеющая код исправления ошибок[1].

Введение

править

Если крупные квантовые компьютеры когда-либо будут построены, то они смогут взломать многие криптосистемы с открытым ключом, используемые в настоящее время. Это серьёзно подорвало бы конфиденциальность и целостность цифровых коммуникаций в Интернете. Целью пост-квантовой криптографии является разработка криптографических систем, которые защищены как от квантовых, так и от классических компьютеров и могут взаимодействовать с существующими протоколами связи и сетями[5].

Обозначения

править
  • Пусть   — целое положительное число, тогда за   обозначим набор чисел  . Для набора   через   обозначим случайный и равновероятный выбор   из  .
  • Пусть   — простое число.   — циклотомический полином равный  . Многочлен   равен    .
  • Кольцо многочленов   обозначим  .   — это набор многочленов таких, что их степень меньше   и их коэффициенты лежат в  , а   — это множество таких векторов размерности   (  — положительное целое число), что каждая компонента любого вектора принадлежит  .
  •   называется троичным, если все его коэффициенты равны   или  .
  • Для любого элемента   вес Хемминга определяется как число ненулевых коэффициентов.   определяется как множество троичных полиномов степени меньше   с весом Хемминга  . В Round5 такие многочлены к тому же ещё являются сбалансированными и разреженными, то есть имеют ровно   коэффициентов равных   и столько же равных   (сбалансированные), и при этом   принимает фиксированное значение (разреженные).
  •   — это множество всех таких наборов длины  , состоящие из нулей и единиц.
  • Для рационального числа   обозначим:  — округление вниз до целого, а   — округление до ближайшего целого. Взятие остатка от деления обозначим как  , то есть  [1][2].

Задача GLWR

править

Пусть   — положительные целые числа, такие что   и   равняется   или  .   является распределением вероятности по  . Выбор элемента   из   в соответствии с распределением   обозначим как  [1].

Версия поиска

править

Имеется   примеров формы  , где   и   фиксирован, требуется найти  [1].

Версия решения

править

Сложность данной версии заключается в различении равномерного распределения по   и распределения  , где  ,   фиксирован и  [1].

Виды задачи GLWR

править

Ключевой особенностью Round5 является то, что её можно реализовать на основе таких задач как обучение с округлением (Learning with Rounding (LWR)), так и кольцевое обучение с округлением (Ring Learning with Rounding (RLWR)) единым способом, что приводит к уменьшению затрат на анализ и обслуживание кода[1].

Каждая из этих задач получается из задачи GLWR. Чтобы поставить задачу LWR, в GLWR нужно   принять равной  , а RLWR —   принять равной  [1].

Алгоритмы на основе LWR требуются в средах, где производительность не так важна по сравнению с безопасностью[1].

Напротив, по сравнению с LWR, в алгоритмах на основе RLWR вычисления более просты и эффективны. К тому же эти алгоритмы менее требовательны к полосе пропускания, поэтому они лучше подходят для тех сред, где накладываются более строгие требования к каналам передачи информации, например, там, где могут возникнуть трудности с фрагментацией сообщений или MTU слишком мал[1].

Основа Round5

править

Схема шифрования

править

Основой Round5 является схема шифрования r5_cpa_pke, надёжная в смысле IND-CPA. r5_cpa_pke похожа на схему шифрования Эль-Гамаля с шумом. Здесь приведены алгоритмы для задачи GLWR. Для того, чтобы получить алгоритмы для задач LWR или RLWR, нужно выбрать   равной   или   соответственно[2][1].

Параметры схемы шифрования r5_cpa_pke:   — целые положительные числа,   — параметр безопасности (длина сообщения в битах),   — многочлен, коэффициенты которого являются сообщением и равны   или   ( ).   — число столбцов в секретных матрицах. Модули   являются степенями двойки, так что   делит  ,   делит   и   делит  . Требуется, чтобы   и  .   — вес Хемминга многочленов, являющихся секретными.   — многочлен   или  .   — это матрица, вся заполненная  [1][2].

Алгоритм создания ключа

править


Algorithm 1: r5_cpa_pke_keygen()
1.  
2.  
3.  
4.  
5.  
6.  
7. return  
  1.   равновероятно выбирается из множества  .
  2. На основе   вычисляется открытая квадратная матрица   размера  , элементы которой принадлежат множеству   (в случае RLWR ( ) это один многочлен, если LWR ( ) — матрица из элементов, лежащих в  ). Для этого применяется функция  , использующая детерминированный генератор случайных битов[6] и перестановки, определяемые параметром  .
  3. Как и  , секретный ключ   выбирается случайно из  .
  4. На основе   вычисляется секретная матрица   размера  , элементы которой принадлежат множеству   (в случае RLWR ( ) это вектор, состоящий из троичных многочленов, если LWR ( ) — матрица, состоящая из   и  ). Для этого используется функция  , использующая также детерминированный генератор случайных битов.
  5. Вычисляется матрица   размера  , состоящая из элементов  , следующим образом:
    1. Элементы матрицы, равной произведению   на  , вычисляются по модулю  . Затем к каждому элементу прибавляется постоянная округления  .
    2. Каждый элемент умножается на дробь  .
    3. Коэффициенты всех многочленов полученной матрицы округляются в меньшую сторону до ближайшего целого и берутся по модулю  .
  6. Открытый ключ представляет собой набор из   и  [1][2].

Алгоритм шифрования

править


Algorithm 2: r5_cpa_pke_encrypt 
1.  
2.  
3.  
4.  
5.  
6.  
7. return  
  1. Так же, как и при вычислении ключей, находится матрица  .
  2. Вводится элемент множества   —  . На его основе при помощи функции   вычисляется секретная матрица   размера  , элементы которой принадлежат множеству   (в случае RLWR ( ) это вектор, состоящий из троичных многочленов, если LWR ( ) — матрица, состоящая из   и  ).
  3. Используя матрицы  ,   и постоянную округления   ( ), вычисляется матрица   аналогично как в алгоритме создания ключей.
  4. Транспонированная   есть первая компонента шифротекста.
  5. Вторая компонента шифротекста — вектор  , элементы которого лежат в  . Поскольку не все компоненты   необходимы для шифрования  -битового сообщения  , используется функция  .
    1. Если  , то   — это многочлен и   принимает его на вход, а на выходе выдаёт набор всех коэффициентов, соответствующих членам со степенью меньших   :  .
    2. Если  , то   — это матрица  , состоящая из целых чисел и   выдаёт первые   чисел этой матрицы: , где  .
    3. Получаем, что   содержит только   компонент.
  6. Таким образом, получаем шифротекст  [1][2].

Использование   делает шифрование и дешифрование более эффективными, поскольку в зашифрованном тексте необходимо вычислять только коэффициенты   вместо всех  [1][2].

Так же для уменьшение вероятности ошибок применяются функции кодирования   при шифровании и декодирования  при дешифровании . Функция   преобразует многочлен   в набор двоичных коэффициентов размера  . Затем этот набор складывается с набором ошибок  , где каждый   равен   или  , причём количество единиц в наборе ошибок не должно быть больше чем   для однозначного декодирования[1][2].

 [1][2].

Алгоритм дешифрования

править
Algorithm 2: r5_cpa_pke_decrypt 
1.  
2.  
3.  
4.  
5.  
6. return  
  1. Вычисляется вектор  .
  2. На основе закрытого ключа находится секретная матрица   такая же, как в алгоритме создания ключей.
  3. Транспонированием   находится матрица  , вычисленная в алгоритме шифрования.
  4. Происходит дешифрование сообщения.  ,  .
  5. Исправляются ошибки. Таким образом получаем исходное сообщение  [1][2].

Достоинства Round5

править

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

Так как секретные ключи в Round5 являются разреженными, троичными и сбалансированными, снижается вероятность ошибок при расшифровки и ускоряются вычисления. Последнему факту также помогает то, что ненулевые коэффициенты многочленов равны либо +1, либо −1, что подразумевает, что умножения могут быть выполнены с использованием только сложений и вычитаний[2].

Благодаря тому, что модули   являются степенями двойки, упрощается реализация функции округления, поскольку её можно реализовать, отбрасывая младшие биты. Аналогично, модульные вычисления могут быть реализованы путём отбрасывания старших битов[1].

Возможное применение

править

Спектр применения системы Round5 широк. Она может быть использована как в сфере интернет вещей, так и для систем с высоким уровнем секретности. Это достигается тем, что для неё можно легко и точно выбрать параметры, например  ,  ,   и  [2].

Примечания

править
  1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Hayo Baan, Sauvik Bhattacharya, Scott Fluhrer, Oscar Garcia-Morchon, ThijsLaarhoven, Rachel Player, Ronald Rietman, Markku-Juhani O. Saarinen, LudoTolhuizen, Jos ́e Luis Torre-Arce, and Zhenfei Zhang. Round5:KEM and PKE based on (Ring) Learning with Rounding (англ.) // round5.org : article. — 2019. — 28 March. — P. 153. Архивировано 5 декабря 2019 года.
  2. 1 2 3 4 5 6 7 8 9 10 11 12 Hayo Baan, Sauvik Bhattacharya, Scott Fluhrer, Oscar Garcia-Morchon, Thijs Laarhoven, Ronald Rietman, Markku-Juhani O. Saarinen, Ludo Tolhuizen, and Zhenfei Zhang. [https://eprint.iacr.org/2019/090.pdf Round5: Compact and Fast Post-Quantum Public-Key Encryption] (англ.) // https://round5.org/ : article. — 2019. — P. 20. Архивировано 7 декабря 2019 года.
  3. Hayo Baan, Sauvik Bhattacharya, Oscar Garcia-Morchon, Ronald Rietman, Ludo Tolhuizen. Round2: KEM and PKE based on GLWR. — 2017. — № 1183. Архивировано 6 декабря 2019 года.
  4. Markku-Juhani O. Saarinen, 2017.
  5. Lily Chen, Stephen Jordan, Yi-Kai Liu, Dustin Moody, Rene Peralta. Report on Post-Quantum Cryptography. — National Institute of Standards and Technology, 2016-04. Архивировано 16 октября 2023 года.
  6. Elaine B. Barker, John M. Kelsey. Recommendation for Random Number Generation Using Deterministic Random Bit Generators. — National Institute of Standards and Technology, 2015-06. — doi:10.6028/nist.sp.800-90ar1.

Литература

править

Ссылки

править