Подпись на основе обучения с ошибками в кольце: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Добавлено описание генерации ключа
Добавлено описание истоков
Строка 6: Строка 6:





== Генерация открытого ключа ==
= Истоки =
Разработки в области [[квантовых компьютеров]] за последние десятилетия и оптимистичные перспективы для реальных квантовых компьютеров в течение ближайших 20 лет начали угрожать базовой криптографии, обеспечивающей безопасность [[Интернета]] сегодня.<ref>{{Cite web|title = Quantum computing breakthrough claim from IBM|url = http://www.cio.co.uk/news/r-and-d/quantum-computing-breakthrough-claim-from-ibm-3609914/|accessdate = 2015-06-01|first = Agam|last = Shah}}</ref><ref>{{Cite news|title = Researchers Report Milestone in Developing Quantum Computer|url = https://www.nytimes.com/2015/03/05/science/quantum-computing-nature-google-uc-santa-barbara.html|newspaper = The New York Times|date = 2015-03-04|access-date = 2015-07-05|issn = 0362-4331|first = John|last = Markoff}}</ref> Относительно небольшой квантовый компьютер, способный обрабатывать только десять тысяч битов информации, легко взломает все широко используемые алгоритмы [[шифрования с открытым ключом]], используемые для защиты конфиденциальности и [[цифровой подписи]] информации в [[Интернете]]. <ref name=":2" /><ref>{{Cite journal|title = Efficient Networks for Quantum Factoring|journal = Physical Review A|date = 1996|issn = 1050-2947|pages = 1034–1063|volume = 54|issue = 2|doi = 10.1103/PhysRevA.54.1034|first = David|last = Beckman|first2 = Amalavoyal N.|last2 = Chari|first3 = Srikrishna|last3 = Devabhaktuni|first4 = John|last4 = Preskill|arxiv = quant-ph/9602016|bibcode = 1996PhRvA..54.1034B}}</ref>

Один из наиболее широко используемых алгоритмов открытых ключей, используемых для создания [[цифровых подписей]], известен как [[RSA (криптосистема) | RSA]]. Его безопасность основана на классической сложности разделения произведения двух больших простых чисел на множители. [[Целочисленная задача факторизации]] считается неразрешимой на любом обычном компьютере, если простые числа выбираются случайным образом и достаточно велики.Однако, чтобы вычислить произведение двух n-разрядных простых чисел, квантовый компьютер с примерно 6n битами логической [[qubit]] памяти и способный выполнять программу, известную как [[алгоритм Шора | алгоритм Шора]], легко выполнит задачу. <ref>{{Cite journal|title = Oversimplifying quantum factoring|url = http://www.nature.com/nature/journal/v499/n7457/full/nature12290.html|journal = Nature|date = July 11, 2013|issn = 0028-0836|pages = 163–165|volume = 499|issue = 7457|doi = 10.1038/nature12290|first = John A.|last = Smolin|first2 = Graeme|last2 = Smith|first3 = Alexander|last3 = Vargo|pmid=23846653|arxiv = 1301.7007|bibcode = 2013Natur.499..163S}}</ref> Алгоритм Шора также может быстро разбивать цифровые подписи на основе так называемой проблемы [[дискретный логарифм]] и более эзотерической проблемы [[Криптография эллиптической кривой | дискретный логарифм эллиптической кривой]]. По сути, относительно небольшой квантовый компьютер с алгоритмом Шора может быстро сломать все цифровые подписи, используемые для обеспечения конфиденциальности и целостности информации в Интернете сегодня.

Несмотря на то, что мы не знаем, когда будет существовать квантовый компьютер для взлома RSA и других алгоритмов цифровой подписи, в течение последнего десятилетия проводились активные исследования по созданию криптографических алгоритмов, которые остаются безопасными, даже если у злоумышленника есть ресурсы квантового компьютера. удаление.<ref name=":2" /><ref name=":4">{{Cite web|title = Introduction|url = http://pqcrypto.org/|website = pqcrypto.org|accessdate = 2015-07-05}}</ref>. Эта новая область криптографии называется [[Пост-квантовая криптография | Пост-квантовая]] или [[Квантовая безопасная криптография | Квантовая безопасная]] криптография<ref name=":2" /><ref name=":4" /> . Эта статья посвящена одному классу этих алгоритмов: цифровым подписям, основанным на задаче [[обучении с ошибками в кольце]]. Использование общей проблемы [[Обучение с ошибками | Обучение с ошибками]] в криптографии было введено Одедом Регевым в 2005 году и послужило источником нескольких криптографических разработок.<ref>{{Cite web|title = The Learning with Errors Problem|url = http://www.cims.nyu.edu/~regev/papers/lwesurvey.pdf|website = www.cims.nyu.edu|accessdate = 2015-05-24}}</ref>

Создатели основы криптографии «Обучение с ошибками», основанной на кольце (RLWE), считают, что важной особенностью этих алгоритмов, основанных на обучении с ошибками, является доказуемое сокращение известных трудных задач.<ref>{{Cite journal|title = On ideal lattices and learning with errors over rings|journal = In Proc. Of EUROCRYPT, Volume 6110 of LNCS|date = 2010|pages = 1–23|first = Vadim|last = Lyubashevsky|first2 = Chris|last2 = Peikert|first3 = Oded|last3 = Regev|citeseerx = 10.1.1.297.6108}}</ref><ref>{{Cite web|title = What does GCHQ's "cautionary tale" mean for lattice cryptography?|url = http://www.cc.gatech.edu/~cpeikert/soliloquy.html|website = www.cc.gatech.edu|accessdate = 2015-07-05|url-status = dead|archiveurl = https://web.archive.org/web/20150706150530/http://www.cc.gatech.edu/~cpeikert/soliloquy.html|archivedate = 2015-07-06}}</ref>. Описанная ниже сигнатура имеет доказуемое сокращение до [[Задача наименьшего вектора | Задача наименьшего вектора]] в [[Идеальная решеточная криптография | Идеальная решетка]].<ref name=":0">{{Cite book|title=Cryptographic Hardware and Embedded Systems – CHES 2012|last=Güneysu|first=Tim|last2=Lyubashevsky|first2=Vadim|last3=Pöppelmann|first3=Thomas|date=2012|publisher=Springer Berlin Heidelberg|isbn=978-3-642-33026-1|editor-last=Prouff|editor-first=Emmanuel|series=Lecture Notes in Computer Science|volume=7428|location=|pages=530–547|chapter=Practical Lattice-Based Cryptography: A Signature Scheme for Embedded Systems|doi=10.1007/978-3-642-33027-8_31|editor-last2=Schaumont|editor-first2=Patrick}}</ref> Это означает, что если можно обнаружить атаку на криптосистему Ring-LWE, то целый класс предполагаемых сложных вычислительных проблем будет иметь решение.<ref>{{Cite journal|title = The shortest vector in a lattice is hard to approximate to within some constant|url = http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.109.7305|journal = In Proc. 39th Symposium on Foundations of Computer Science|date = 1998|pages = 92–98|first = Daniele|last = Micciancio}}</ref>


Первая подпись на основе RLWE была разработана Любашевским в его статье «Fiat-Shamir с абортами: приложения к решетке и факторинг-сигнатурам»<ref name=":5">{{Cite book|publisher = Springer Berlin Heidelberg|date = 2009-01-01|isbn = 978-3-642-10365-0|pages = 598–616|series = Lecture Notes in Computer Science|first = Vadim|last = Lyubashevsky|editor-first = Mitsuru|editor-last = Matsui|doi = 10.1007/978-3-642-10366-7_35|title = Advances in Cryptology – ASIACRYPT 2009|volume = 5912|chapter = Fiat-Shamir with Aborts: Applications to Lattice and Factoring-Based Signatures}}</ref> и уточнено в «Решетчатые подписи без люков» в 2011 <ref name=":1">{{Cite journal|title = Lattice Signatures Without Trapdoors|url = http://eprint.iacr.org/2011/537|date = 2011|first = Vadim|last = Lyubashevsky}}</ref>.
Ряд уточнений и вариантов последовали. Эта статья освещает фундаментальную математическую структуру сигнатур RLWE и следует оригинальной работе Любашевского и работам Гунейсу, Любашевского и Попплеманна([https://web.archive.org/web/20140518004537/http://www.di.ens.fr/~lyubash/papers/signaturechess.pdf GLP]).<ref name=":0" /> Эта презентация основана на обновлении схемы GLP в 2017 году под названием GLYPH. <ref name=":3">{{Cite web|url=https://eprint.iacr.org/2017/766.pdf|title=GLYPH: A New Instantiation of the GLP Digital Signature Scheme|last=Chopra|first=Arjun|date=2017|website=International Association of Cryptographic Research eprint Archive|archive-url=https://eprint.iacr.org|archive-date=26 August 2017|url-status=|access-date=26 August 2017}}</ref>

<math>a(x) = a_0 + a_1x + a_{2}x^2 + \ldots + a_{n-3}x^{n-3} + a_{n-2}x^{n-2} + a_{n-1}x^{n-1}</math>

Поле <math>Z_q</math> имеет свои репрезентативные элементы в наборе <math> \{ -(q-1)/2, ...-1, 0, 1, ... (q-1)/2 \} </math> Когда <math>n </math>- степень 2, многочлен <math> \Phi (x)</math> будет циклотомическим многочленом <math>x^n + 1</math>. Возможны другие варианты выбора <math>n </math>, но соответствующие циклотомические многочлены являются более сложными или их безопасность не так хорошо изучен.



= Генерация открытого ключа =
Открытый ключ для подписи сообщения генерируется посредством следующих шагов:
Открытый ключ для подписи сообщения генерируется посредством следующих шагов:
# Генерация двух небольших полиномов <math> s(x) </math> и <math> e(x) </math> с коэффициентами, выбранными случайно с равномерным распределением из множества <math> \{-b, ...- 1, 0, 1, ..., b\} </math>
# Генерация двух небольших полиномов <math> s(x) </math> и <math> e(x) </math> с коэффициентами, выбранными случайно с равномерным распределением из множества <math> \{-b, ...- 1, 0, 1, ..., b\} </math>
Строка 14: Строка 34:
Если эту задчу трудно решить, то схему подписи будет трудно подделать. [См. cтатьи в Википедии [[Обучение с ошибками]] или {{iw|Ideal lattice cryptography|Идеальная решетчатая криптография|en|Ideal lattice cryptography}} для более подробной информации о теоретической сложности этой проблемы]
Если эту задчу трудно решить, то схему подписи будет трудно подделать. [См. cтатьи в Википедии [[Обучение с ошибками]] или {{iw|Ideal lattice cryptography|Идеальная решетчатая криптография|en|Ideal lattice cryptography}} для более подробной информации о теоретической сложности этой проблемы]


== Генерация подписи ==
= Генерация подписи =
Согласно GLYPH,<ref name=":3">{{Cite web|url=https://eprint.iacr.org/2017/766.pdf|title=GLYPH: A New Instantiation of the GLP Digital Signature Scheme|last=Chopra|first=Arjun|date=2017|website=International Association of Cryptographic Research eprint Archive|archive-url=https://eprint.iacr.org|archive-date=26 August 2017||access-date=26 August 2017}}</ref> чтобы подписать сообщение M, выраженное в виде битовой строки, автор делает следующее:
Согласно GLYPH,<ref name=":3">{{Cite web|url=https://eprint.iacr.org/2017/766.pdf|title=GLYPH: A New Instantiation of the GLP Digital Signature Scheme|last=Chopra|first=Arjun|date=2017|website=International Association of Cryptographic Research eprint Archive|archive-url=https://eprint.iacr.org|archive-date=26 August 2017||access-date=26 August 2017}}</ref> чтобы подписать сообщение <math> M </math>, выраженное в виде битовой строки, автору необходимо проделать следующие шаги:
# Генерация двух небольших полиномов <math> y_1(x) </math> и <math> y_2(x) </math> с коэффициентами из множества <math> \{-b, ...- 1, 0, 1, ..., b\} </math>
# Сгенерировать два небольших полинома <math> y_1(x) </math> и <math> y_2(x) </math> с коэффициентами из множества <math> \{-b, ...- 1, 0, 1, ..., b\} </math>
# Вычисление <math> w(x) = a(x)y_1(x) + y_2(x) </math>
# Вычислить <math> w(x) = a(x)y_1(x) + y_2(x) </math>
# Отобразить <math> w(x) </math> в битовую строку <math> \omega </math>
# Вычислить <math> c(x) = \mathsf{POLYHASH} (\omega | M )</math> (Это многочлен с k ненулевыми коэффициентами. Символ "|" обозначает конкатенацию строк)
# Вычислить <math> z_1(x) = s(x)c(x) + y_1(x) </math>
# Вычислить <math> z_2(x) = e(x)c(x) + y_2(x) </math>
# Пока <math>||z_1(x)||</math>, и <math>||z_2(x)|| \leqslant \beta = (b - k) </math> повторять пункты 1-6 (Норма <math>||\cdot||</math> - [[равномерная норма]])
# Подпись - это тройка полиномов <math>c(x), z_1(x)</math> и <math> z_2(x)</math>


= Проверка подписи =
# Отображение <math> w(x) </math> в битовую строку ω
Согласно GLYPH,<ref name=":2"/> чтобы проверить сообщение <math> M </math>, выраженное в виде битовой строки, используя публичный ключ автора <math> t(x) </math> и электронную подпись ( <math>c(x), z_1(x), z_2(x)</math>) необходимо провести следующие шаги:
# Вычисление <math> c(x) = </math> POLYHASH(ω | M ) (Это многочлен с k ненулевыми коэффициентами. Символ "|" обозначает конкатенацию строк)
# Удостовериться, что <math>||z_1(x)||</math>, и <math>||z_2(x)|| \leqslant \beta </math>, иначе подпись не принята
# Вычислить <math> w'(x) = a(x)z_1(x) + z_2(x) - t(x)c(x) </math>
# Отобразить <math> w'(x) </math> в битовую строку <math> \omega ' </math>
# Вычислить <math> c'(x) = \mathsf{POLYHASH} (\omega' | M )</math>
# Если <math> c'(x) = c(x) </math>, подпись считается действительной
Не сложно показать корректность проверки:<br>
<math>a(x)z_1(x) + z_2(x) - t(x)c(x) =</math><br>
<math> = a(x)[s(x)c(x) + y_1(x)] + z_2(x) - [a(x)s(x) + e(x)]c(x) = </math><br>
<math> = a(x)y_1(x) + z_2(x) - e(x)c(x)=</math><br>
<math> = a(x)y_1(x) + e(x)c(x) + y_2(x) - e(x)c(x)=</math><br>
<math> = a(x)y_1(x) + y_2(x) = w(x)</math><br>


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


== Ссылки ==
= Ссылки =
* [http://www.example.com/ example.com]
* [http://www.example.com/ example.com]



Версия от 18:17, 8 ноября 2019

Подпись при обучении с ошибками в кольце

Электронная подпись является средством защиты цифровой информации от преднамеренного изменения и проверки подлинности источника цифровой информации. Криптография с открытым ключом предоставляет богатый набор различных криптографических алгоритмов для создания цифровых подписей. Тем не менее, подписи с открытым ключом, используемые в настоящее время (RSA, ECDSA), станут совершенно небезопасными, если ученым когда-либо удастся создать квантовый компьютер[1]. Постквантовая криптография - это класс криптографических алгоритмов, разработанных для обеспечения устойчивости к атакам квантовой криптографии. На сегодняшний день созданы постквантовые алгоритмы цифровой подписи, основанные на на проблеме, известной как Обучение с ошибками в кольце, которые заменяют обычно используемые алгоритмы подписи RSA и ECDSA. Подпись при обучении с ошибками в кольце относится к числу постквантовых подписей с наименьшим открытым ключом и размерами подписи.


Истоки

Разработки в области квантовых компьютеров за последние десятилетия и оптимистичные перспективы для реальных квантовых компьютеров в течение ближайших 20 лет начали угрожать базовой криптографии, обеспечивающей безопасность Интернета сегодня.[2][3] Относительно небольшой квантовый компьютер, способный обрабатывать только десять тысяч битов информации, легко взломает все широко используемые алгоритмы шифрования с открытым ключом, используемые для защиты конфиденциальности и цифровой подписи информации в Интернете. [1][4]

Один из наиболее широко используемых алгоритмов открытых ключей, используемых для создания цифровых подписей, известен как RSA. Его безопасность основана на классической сложности разделения произведения двух больших простых чисел на множители. Целочисленная задача факторизации считается неразрешимой на любом обычном компьютере, если простые числа выбираются случайным образом и достаточно велики.Однако, чтобы вычислить произведение двух n-разрядных простых чисел, квантовый компьютер с примерно 6n битами логической qubit памяти и способный выполнять программу, известную как алгоритм Шора, легко выполнит задачу. [5] Алгоритм Шора также может быстро разбивать цифровые подписи на основе так называемой проблемы дискретный логарифм и более эзотерической проблемы дискретный логарифм эллиптической кривой. По сути, относительно небольшой квантовый компьютер с алгоритмом Шора может быстро сломать все цифровые подписи, используемые для обеспечения конфиденциальности и целостности информации в Интернете сегодня.

Несмотря на то, что мы не знаем, когда будет существовать квантовый компьютер для взлома RSA и других алгоритмов цифровой подписи, в течение последнего десятилетия проводились активные исследования по созданию криптографических алгоритмов, которые остаются безопасными, даже если у злоумышленника есть ресурсы квантового компьютера. удаление.[1][6]. Эта новая область криптографии называется Пост-квантовая или Квантовая безопасная криптография[1][6] . Эта статья посвящена одному классу этих алгоритмов: цифровым подписям, основанным на задаче обучении с ошибками в кольце. Использование общей проблемы Обучение с ошибками в криптографии было введено Одедом Регевым в 2005 году и послужило источником нескольких криптографических разработок.[7]

Создатели основы криптографии «Обучение с ошибками», основанной на кольце (RLWE), считают, что важной особенностью этих алгоритмов, основанных на обучении с ошибками, является доказуемое сокращение известных трудных задач.[8][9]. Описанная ниже сигнатура имеет доказуемое сокращение до Задача наименьшего вектора в Идеальная решетка.[10] Это означает, что если можно обнаружить атаку на криптосистему Ring-LWE, то целый класс предполагаемых сложных вычислительных проблем будет иметь решение.[11]


Первая подпись на основе RLWE была разработана Любашевским в его статье «Fiat-Shamir с абортами: приложения к решетке и факторинг-сигнатурам»[12] и уточнено в «Решетчатые подписи без люков» в 2011 [13]. Ряд уточнений и вариантов последовали. Эта статья освещает фундаментальную математическую структуру сигнатур RLWE и следует оригинальной работе Любашевского и работам Гунейсу, Любашевского и Попплеманна(GLP).[10] Эта презентация основана на обновлении схемы GLP в 2017 году под названием GLYPH. [14]

Поле имеет свои репрезентативные элементы в наборе Когда - степень 2, многочлен будет циклотомическим многочленом . Возможны другие варианты выбора , но соответствующие циклотомические многочлены являются более сложными или их безопасность не так хорошо изучен.


Генерация открытого ключа

Открытый ключ для подписи сообщения генерируется посредством следующих шагов:

  1. Генерация двух небольших полиномов и с коэффициентами, выбранными случайно с равномерным распределением из множества
  2. Вычисление
  3. Распределить как открытый ключ объекта

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

Генерация подписи

Согласно GLYPH,[14] чтобы подписать сообщение , выраженное в виде битовой строки, автору необходимо проделать следующие шаги:

  1. Сгенерировать два небольших полинома и с коэффициентами из множества
  2. Вычислить
  3. Отобразить в битовую строку
  4. Вычислить (Это многочлен с k ненулевыми коэффициентами. Символ "|" обозначает конкатенацию строк)
  5. Вычислить
  6. Вычислить
  7. Пока , и повторять пункты 1-6 (Норма - равномерная норма)
  8. Подпись - это тройка полиномов и

Проверка подписи

Согласно GLYPH,[1] чтобы проверить сообщение , выраженное в виде битовой строки, используя публичный ключ автора и электронную подпись ( ) необходимо провести следующие шаги:

  1. Удостовериться, что , и , иначе подпись не принята
  2. Вычислить
  3. Отобразить в битовую строку
  4. Вычислить
  5. Если , подпись считается действительной

Не сложно показать корректность проверки:





Примечания

  1. 1 2 3 4 5 Dahmen-Lhuissier, Sabine ETSI - Quantum-Safe Cryptography. ETSI. Дата обращения: 5 июля 2015.
  2. Shah, Agam Quantum computing breakthrough claim from IBM. Дата обращения: 1 июня 2015.
  3. Markoff, John (2015-03-04). "Researchers Report Milestone in Developing Quantum Computer". The New York Times. ISSN 0362-4331. Дата обращения: 5 июля 2015.
  4. Beckman, David; Chari, Amalavoyal N.; Devabhaktuni, Srikrishna; Preskill, John (1996). "Efficient Networks for Quantum Factoring". Physical Review A. 54 (2): 1034—1063. arXiv:quant-ph/9602016. Bibcode:1996PhRvA..54.1034B. doi:10.1103/PhysRevA.54.1034. ISSN 1050-2947.
  5. Smolin, John A.; Smith, Graeme; Vargo, Alexander (July 11, 2013). "Oversimplifying quantum factoring". Nature. 499 (7457): 163—165. arXiv:1301.7007. Bibcode:2013Natur.499..163S. doi:10.1038/nature12290. ISSN 0028-0836. PMID 23846653.
  6. 1 2 Introduction. pqcrypto.org. Дата обращения: 5 июля 2015.
  7. The Learning with Errors Problem. www.cims.nyu.edu. Дата обращения: 24 мая 2015.
  8. Lyubashevsky, Vadim; Peikert, Chris; Regev, Oded (2010). "On ideal lattices and learning with errors over rings". In Proc. Of EUROCRYPT, Volume 6110 of LNCS: 1—23. CiteSeerX 10.1.1.297.6108.
  9. What does GCHQ's "cautionary tale" mean for lattice cryptography? www.cc.gatech.edu. Дата обращения: 5 июля 2015. Архивировано из оригинала 6 июля 2015 года.
  10. 1 2 Güneysu, Tim. Practical Lattice-Based Cryptography: A Signature Scheme for Embedded Systems // Cryptographic Hardware and Embedded Systems – CHES 2012 / Tim Güneysu, Vadim Lyubashevsky, Thomas Pöppelmann. — Springer Berlin Heidelberg, 2012. — Vol. 7428. — P. 530–547. — ISBN 978-3-642-33026-1. — doi:10.1007/978-3-642-33027-8_31.
  11. Micciancio, Daniele (1998). "The shortest vector in a lattice is hard to approximate to within some constant". In Proc. 39th Symposium on Foundations of Computer Science: 92—98.
  12. Lyubashevsky, Vadim. Fiat-Shamir with Aborts: Applications to Lattice and Factoring-Based Signatures // Advances in Cryptology – ASIACRYPT 2009. — Springer Berlin Heidelberg, 2009-01-01. — Vol. 5912. — P. 598–616. — ISBN 978-3-642-10365-0. — doi:10.1007/978-3-642-10366-7_35.
  13. Lyubashevsky, Vadim (2011). "Lattice Signatures Without Trapdoors". {{cite journal}}: Cite journal требует |journal= (справка)
  14. 1 2 Chopra, Arjun GLYPH: A New Instantiation of the GLP Digital Signature Scheme. International Association of Cryptographic Research eprint Archive (2017). Дата обращения: 26 августа 2017. Архивировано 26 августа 2017 года. Ошибка в сносках?: Неверный тег <ref>: название «:3» определено несколько раз для различного содержимого

Ссылки