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>. |
|||
⚫ | |||
=== Схема шифрования === |
=== Схема шифрования === |
||
Строка 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) |
|||
</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.
Алгоритм дешифрования
Примечания
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
Ссылки