Round5: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
{{В инкубаторе}}
{{В инкубаторе}}


'''Система шифрования Round5''' — это [[Постквантовая криптография|пост-квантовая криптография]] с открытым ключом, основанная на задаче General Learning with Rounding (GLWR)<ref>{{Статья|ссылка=http://dx.doi.org/10.1049/iet-ifs.2018.5427|автор=Fucai Luo, Fuqun Wang, Kunpeng Wang, Kefei Chen|заглавие=Fully homomorphic encryption based on the ring learning with rounding problem|год=2019-11-01|издание=IET Information Security|том=13|выпуск=6|страницы=639–648|issn=1751-8709, 1751-8717|doi=10.1049/iet-ifs.2018.5427}}</ref>. Данная система является альтернативой для алгоритма [[RSA]] и [[Эллиптическая кривая|эллиптических кривых]] и предназначена для защиты от [[Квантовый компьютер|квантовых компьютеров]].
'''Система шифрования Round5''' — это [[Постквантовая криптография|пост-квантовая криптография]] с открытым ключом, основанная на задаче General Learning with Rounding (GLWR)<ref>{{Статья|ссылка=http://dx.doi.org/10.1049/iet-ifs.2018.5427|автор=Fucai Luo, Fuqun Wang, Kunpeng Wang, Kefei Chen|заглавие=Fully homomorphic encryption based on the ring learning with rounding problem|год=2019-11-01|издание=IET Information Security|том=13|выпуск=6|страницы=639–648|issn=1751-8709, 1751-8717|doi=10.1049/iet-ifs.2018.5427}}</ref>. Данная система является альтернативой для алгоритма [[RSA]] и [[Эллиптическая кривая|эллиптических кривых]] и предназначена для защиты от [[Квантовый компьютер|квантовых компьютеров]]<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-030-25510-7_5|автор=Hayo Baan, Sauvik Bhattacharya, Scott Fluhrer, Oscar Garcia-Morchon, Thijs Laarhoven|заглавие=Round5: Compact and Fast Post-quantum Public-Key Encryption|год=2019|место=Cham|издание=Post-Quantum Cryptography|издательство=Springer International Publishing|страницы=83–102|isbn=978-3-030-25509-1, 978-3-030-25510-7}}</ref>.


== Round5, основанный на задаче Ring Learning with Rounding (RLWR) ==
== Round5, основанный на задаче Ring Learning with Rounding (RLWR) ==
Строка 28: Строка 28:
</math>— округление вниз до целого, а <math>\lfloor x \rceil
</math>— округление вниз до целого, а <math>\lfloor x \rceil


</math> — округление до ближайшего целого<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-030-25510-7_5|автор=Hayo Baan, Sauvik Bhattacharya, Scott Fluhrer, Oscar Garcia-Morchon, Thijs Laarhoven|заглавие=Round5: Compact and Fast Post-quantum Public-Key Encryption|год=2019|место=Cham|издание=Post-Quantum Cryptography|издательство=Springer International Publishing|страницы=83–102|isbn=978-3-030-25509-1, 978-3-030-25510-7}}</ref>. <math><x>_a = x\bmod a</math><ref>{{Статья|ссылка=http://dx.doi.org/10.1049/iet-ifs.2018.5427|автор=Fucai Luo, Fuqun Wang, Kunpeng Wang, Kefei Chen|заглавие=Fully homomorphic encryption based on the ring learning with rounding problem|год=2019-11-01|издание=IET Information Security|том=13|выпуск=6|страницы=639–648|issn=1751-8709, 1751-8717|doi=10.1049/iet-ifs.2018.5427}}</ref>. Пусть <math>n+1
</math> — округление до ближайшего целого. <math><x>_a = x\bmod a</math>. Пусть <math>n+1


</math> — простое число. <math>\mathit{\Phi}_{n+1}(x)
</math> — простое число. <math>\mathit{\Phi}_{n+1}(x)
Строка 60: Строка 60:
</math> с весом Хемминга <math>h
</math> с весом Хемминга <math>h


</math><ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-030-25510-7_5|автор=Hayo Baan, Sauvik Bhattacharya, Scott Fluhrer, Oscar Garcia-Morchon, Thijs Laarhoven|заглавие=Round5: Compact and Fast Post-quantum Public-Key Encryption|год=2019|место=Cham|издание=Post-Quantum Cryptography|издательство=Springer International Publishing|страницы=83–102|isbn=978-3-030-25509-1, 978-3-030-25510-7}}</ref>.
</math>.


=== Схема шифрования ===
=== Схема шифрования ===
Строка 66: Строка 66:


'''Параметры шифра r5_cpa_pke:''' <math>n, h, p, q, t, \mu, f, \tau
'''Параметры шифра r5_cpa_pke:''' <math>n, h, p, q, t, \mu, f, \tau
</math> – целые положительные числа, <math>k</math> – параметр безопасности. Модули <math>p, q, t</math> являются степенями двойки, так что <math>t</math> делит <math>p</math> и <math>p</math> делит <math>q</math>. Требуется, чтобы <math>
</math> – целые положительные числа, <math>k</math> – параметр безопасности (длина сообщения в битах), <math>m(x)</math> - многочлен, коэффициенты которого являются сообщением и равны <math>0</math> или <math>1</math> (<math>m(x) = m_0 + m_1x + \cdots + m_{k-1}x^{k-1}</math>). Модули <math>p, q, t</math> являются степенями двойки, так что <math>t</math> делит <math>p</math> и <math>p</math> делит <math>q</math>. Требуется, чтобы <math>
p^2>qt</math>, <math>\mu\leq n
p^2>qt</math>, <math>\mu\leq n
</math> и <math>\mu\geq k</math>. <math>h
</math> и <math>\mu\geq k</math>. <math>h
Строка 86: Строка 86:
</math>
</math>
|-
|-
|
| 2. <math>s \xleftarrow[]{$} \mathcal{H}_n(h)
===== 2. <math>s \xleftarrow[]{$} \mathcal{H}_n(h)
</math>
</math> =====
|-
|-
| 3. <math>b = \left \langle \left \lfloor \frac{p}{q}(\langle as\rangle _{\mathit{\Phi}_{n+1}(x)} + h_1) \right \rfloor \right \rangle_p
| 3. <math>b = \left \langle \left \lfloor \frac{p}{q}(\langle as\rangle _{\mathit{\Phi}_{n+1}(x)} + h_1) \right \rfloor \right \rangle_p
Строка 138: Строка 139:
</math>. Используя его и <math>a(x)
</math>. Используя его и <math>a(x)
</math>, вычисляется первая компонента [[Шифротекст|шифротекста]] <math>u(x)</math> таким же образом как <math>b(x)
</math>, вычисляется первая компонента [[Шифротекст|шифротекста]] <math>u(x)</math> таким же образом как <math>b(x)
</math>. Поскольку не все коэффициенты <math>\upsilon(x)</math> необходимы для шифрования <math>k</math>-битового сообщения <math>m</math>, для вычисления второй компоненты шифротекста <math>\upsilon(x)</math> используется функция Sample<math>_\mu</math>, которая принимает на вход многочлен и на выходе выдает набор всех коэффициентов, соответствующих членам со степенью меньших <math>\mu</math> :<math>c_0 + c_1x + \cdots + c_{\mu-1}x^{\mu-1} + c_{\mu}x^{\mu} + \cdots + c_nx^n \rightarrow (c_0, c_1, \cdots ,c_{\mu
</math>. Поскольку не все коэффициенты <math>\upsilon(x)</math> необходимы для шифрования <math>k</math>-битового сообщения <math>m(x)</math>, для вычисления второй компоненты шифротекста <math>\upsilon(x)</math> используется функция Sample<math>_\mu</math>, которая принимает на вход многочлен и на выходе выдает набор всех коэффициентов, соответствующих членам со степенью меньших <math>\mu</math> :<math>c_0 + c_1x + \cdots + c_{\mu-1}x^{\mu-1} + c_{\mu}x^{\mu} + \cdots + c_nx^n \rightarrow (c_0, c_1, \cdots ,c_{\mu
})</math>. Использование Sample<math>_\mu</math> делает шифрование и дешифрование более эффективными, поскольку в зашифрованном тексте необходимо вычислять только коэффициенты <math>\mu</math> вместо всех <math>n
-1})</math>. Использование Sample<math>_\mu</math> делает шифрование и дешифрование более эффективными, поскольку в зашифрованном тексте необходимо вычислять только коэффициенты <math>\mu</math> вместо всех <math>n


</math>.
</math>.


Так же для уменьшение вероятности ошибок применяются функции кодирования xef_compute<math>_{k,f}</math><math>(m(x))</math> при шифровании и декодирования xef_correct<math>_{k,f}</math> при дешифровании . Функция xef_compute''<sub>κ,f</sub>''<math>(m(x))</math> преобразует многочлен <math>m(x)</math> в набор двоичных коэффициентов размера <math>\mu</math>. Затем этот набор складывается с набором ошибок <math>e = (e_0, \cdots, e_{\mu-1})
</math>, где каждый <math>e_i</math> равен <math>0</math> или <math>1</math>, причем количество единиц в наборе ошибок не должно быть больше чем <math>f</math> для однозначного декодирования xef correct

''κ,f''(xef compute''κ,f''(''m'') + ''e'') = ''m''.

== Алгоритм дешифрования ==
<br />
== Примечания ==
== Примечания ==
<!-- Смотрите в [[Википедия:Сноски]] примеры использования тэгов<ref> </ref> -->
<!-- Смотрите в [[Википедия:Сноски]] примеры использования тэгов<ref> </ref> -->

Версия от 10:07, 1 декабря 2019

Система шифрования Round5 — это пост-квантовая криптография с открытым ключом, основанная на задаче General Learning with Rounding (GLWR)[1]. Данная система является альтернативой для алгоритма RSA и эллиптических кривых и предназначена для защиты от квантовых компьютеров[2].

Round5, основанный на задаче Ring Learning with Rounding (RLWR)

Обозначения

Пусть  — целое положительное число, тогда за обозначим набор чисел . Для набора через обозначим случайный и равновероятный выбор из . Для рационального числа обозначим: — округление вниз до целого, а  — округление до ближайшего целого[3]. [4]. Пусть  — простое число.  — циклотомический полином равный . Кольцо многочленов обозначим . Многочлен равен .  — это набор многочленов степени меньших с коэффициентами из . называется троичным(ternary), если все его коэффициенты равны или . Для любого элемента вес Хемминга определяется как число ненулевых коэффициентов. определяется как множество троичных полиномов степени меньше с весом Хемминга [5].

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

Ядром Round5 является шифр r5_cpa_pke, надежный в смысле IND-CPA. Шифр r5_cpa_pke похож на схему шифрования Эль-Гамаля.

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

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

Algorithm 1: r5_cpa_pke_keygen()
1.
2.
3.
4. return

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

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

Algorithm 2: r5_cpa_pke_encrypt
1.
2.
3.
4. return

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

Так же для уменьшение вероятности ошибок применяются функции кодирования xef_compute при шифровании и декодирования xef_correct при дешифровании . Функция xef_computeκ,f преобразует многочлен в набор двоичных коэффициентов размера . Затем этот набор складывается с набором ошибок , где каждый равен или , причем количество единиц в наборе ошибок не должно быть больше чем для однозначного декодирования xef correct

κ,f(xef computeκ,f(m) + e) = m.

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


Примечания

  1. Fucai Luo, Fuqun Wang, Kunpeng Wang, Kefei Chen. Fully homomorphic encryption based on the ring learning with rounding problem // IET Information Security. — 2019-11-01. — Т. 13, вып. 6. — С. 639–648. — ISSN 1751-8717 1751-8709, 1751-8717. — doi:10.1049/iet-ifs.2018.5427.
  2. Hayo Baan, Sauvik Bhattacharya, Scott Fluhrer, Oscar Garcia-Morchon, Thijs Laarhoven. Round5: Compact and Fast Post-quantum Public-Key Encryption // Post-Quantum Cryptography. — Cham: Springer International Publishing, 2019. — С. 83–102. — ISBN 978-3-030-25509-1, 978-3-030-25510-7.
  3. Hayo Baan, Sauvik Bhattacharya, Scott Fluhrer, Oscar Garcia-Morchon, Thijs Laarhoven. Round5: Compact and Fast Post-quantum Public-Key Encryption // Post-Quantum Cryptography. — Cham: Springer International Publishing, 2019. — С. 83–102. — ISBN 978-3-030-25509-1, 978-3-030-25510-7.
  4. Fucai Luo, Fuqun Wang, Kunpeng Wang, Kefei Chen. Fully homomorphic encryption based on the ring learning with rounding problem // IET Information Security. — 2019-11-01. — Т. 13, вып. 6. — С. 639–648. — ISSN 1751-8717 1751-8709, 1751-8717. — doi:10.1049/iet-ifs.2018.5427.
  5. Hayo Baan, Sauvik Bhattacharya, Scott Fluhrer, Oscar Garcia-Morchon, Thijs Laarhoven. Round5: Compact and Fast Post-quantum Public-Key Encryption // Post-Quantum Cryptography. — Cham: Springer International Publishing, 2019. — С. 83–102. — ISBN 978-3-030-25509-1, 978-3-030-25510-7.

Ссылки