Квантовый алгоритм для решения задачи дискретного логарифмирования: различия между версиями

Перейти к навигации Перейти к поиску
м
мНет описания правки
 
(не показано 13 промежуточных версий этого же участника)
Строка 6: Строка 6:




'''Задача 1 (Дискретное логарифмирование)'''
'''Задача 1 (дискретное логарифмирование)'''


Дано: группа G; <math>a, b \in G</math>, такие, что <math>b = a^s</math> для некоторого целого положительного числа s.
Дано: группа G; <math>a, b \in G</math>, такие, что <math>b = a^s</math> для некоторого целого положительного числа s.
Строка 19: Строка 19:




В ходе своих революционных исследований Шор [9] предложил эффективный квантовый алгоритм для поиска дискретного логарифма в любой группе G; его алгоритм работает за время, полиномиальное относительно размера входных данных в битах.
В ходе своих революционных исследований Шор [9] предложил эффективный квантовый алгоритм для поиска дискретного логарифма в любой группе G; этот алгоритм работает за время, полиномиальное относительно размера входных данных в битах.




Строка 27: Строка 27:
'''Описание алгоритма для решения задачи дискретного логарифмирования'''
'''Описание алгоритма для решения задачи дискретного логарифмирования'''


Алгоритм Шора [9] для решения задачи дискретного логарифмирования использует эффективную квантовую процедуру для реализации унитарного преобразования, известного как квантовое преобразование Фурье. Его исходный алгоритм давал эффективную процедуру выполнения ''квантового преобразования Фурье'' только над группами вида <math>\mathbb{Z}_r</math>, где r – «гладкое» целое число; тем не менее, он показал, что этого достаточно для решения задачи дискретного логарифмирования в общем случае. В данной статье приводится более современное описание алгоритма Шора. В частности, используется результат Хейлз и Холлгрена [5], который показывает, что квантовое преобразование Фурье над любой конечной циклической группой <math>\mathbb{Z}_r</math> может быть эффективно аппроксимировано с обратно-экспоненциальной точностью.
Алгоритм Шора [9] для решения задачи дискретного логарифмирования использует эффективную квантовую процедуру для реализации унитарного преобразования, известного как ''квантовое преобразование Фурье''. Изначально его алгоритм давал эффективную процедуру выполнения квантового преобразования Фурье только над группами вида <math>\mathbb{Z}_r</math>, где r – «гладкое» целое число; тем не менее, он показал, что этого достаточно для решения задачи дискретного логарифмирования в общем случае. В данной статье приводится более современное описание алгоритма Шора. В частности, используется результат Хейлз и Холлгрена [5], который показывает, что квантовое преобразование Фурье над любой конечной циклической группой <math>\mathbb{Z}_r</math> может быть эффективно аппроксимировано с обратно-экспоненциальной точностью.




Описание алгоритма приведено ниже. Предполагается знакомство с квантовой нотацией. Достаточное представление о квантовых вычислениях можно найти в книге Нильсена и Чуаня [8]. Пусть <math>(G, a, b, \bar{r})</math> – экземпляр задачи дискретного логарифмирования, где <math>\bar{r}</math> – заданная верхняя граница на порядок a в G. То есть существует положительное целое число <math>r \le \bar{r}</math>, такое, что <math>a^r = 1</math>. Используя эффективный квантовый алгоритм поиска порядка, также разработанный Шором [9], можно предположить, что порядок a в G известен и представляет собой наименьшее положительное целое число r, удовлетворяющее <math>a^r = 1</math>. Время выполнения алгоритма Шора для поиска порядка составляет <math>O((log \; \bar{r})^3)</math>. Пусть <math>\epsilon > 0</math>. Алгоритм дискретного логарифмирования работает на трех регистрах, из которых первые два имеют длину по t кубитов, где <math>t := O(log \; r + log(1 / \epsilon))</math>, а третий регистр достаточно велик, чтобы хранить элемент G. Пусть U обозначает унитарное преобразование <math>U: |x \rangle |y \rangle |z \rangle \to |x |rangle |y \rangle |z \bigoplus (b^x \; a^y) \rangle</math>, где <math>\bigoplus</math> обозначает побитовое исключающее ИЛИ. Если имеется доступ к обратимому оракулу для групповых операций в G, U может быть реализовано обратимо за время <math>O(t^3)</math> путем многократного возведения в квадрат.
Описание алгоритма приведено ниже. Предполагается знакомство с квантовой нотацией. Достаточное представление о квантовых вычислениях можно найти в книге Нильсена и Чуаня [8]. Пусть <math>(G, a, b, \bar{r})</math> – экземпляр задачи дискретного логарифмирования, где <math>\bar{r}</math> – заданная верхняя граница на порядок <math>a</math> в G. То есть существует положительное целое число <math>r \le \bar{r}</math>, такое, что <math>a^r = 1</math>. Используя эффективный квантовый алгоритм поиска порядка, также разработанный Шором [9], можно предположить, что порядок <math>a</math> в G известен и представляет собой наименьшее положительное целое число r, удовлетворяющее условию <math>a^r = 1</math>. Время выполнения алгоритма Шора для поиска порядка составляет <math>O((log \; \bar{r})^3)</math>. Пусть <math>\epsilon > 0</math>. Алгоритм дискретного логарифмирования работает на трех регистрах, из которых первые два имеют длину по t кубитов, где <math>t := O(log \; r + log(1 / \epsilon))</math>, а третий регистр достаточно велик, чтобы хранить элемент G. Обозначим за U унитарное преобразование <math>U: |x \rangle |y \rangle |z \rangle \mapsto |x \rangle |y \rangle |z \bigoplus (b^x \; a^y) \rangle</math>, где <math>\bigoplus</math> обозначает побитовое исключающее ИЛИ. Если имеется доступ к обратимому оракулу для групповых операций в G, U может быть реализовано обратимо за время <math>O(t^3)</math> путем многократного возведения в квадрат.




Обозначим за <math>\mathbb{C} [\mathbb{Z}_r]</math> гильбертово пространство функций от <math>\mathbb{Z}_r</math> над полем комплексных чисел. Вычислительный базис <math>\mathbb{C} [\mathbb{Z}_r]</math> состоит из дельта-функций <math>\{ |l \rangle \}_{0 \le l \le r - 1}</math>, где <math>| \rangle</math> – функция, которая обращает элемент <math>l</math> в 1, а остальные элементы <math>\mathbb{Z}_r</math> в 0. Обозначим за <math>QFT_{\mathbb{Z}_r}</math> ''квантовое преобразование Фурье'' над циклической группой <math>\mathbb{Z}_r</math>, определенное как следующий унитарный оператор над <math>\mathbb{C} [\mathbb{Z}_r]</math>:
Обозначим за <math>\mathbb{C} [\mathbb{Z}_r]</math> гильбертово пространство функций от <math>\mathbb{Z}_r</math> над полем комплексных чисел. Вычислительный базис <math>\mathbb{C} [\mathbb{Z}_r]</math> состоит из дельта-функций <math>\{ |l \rangle \}_{0 \le l \le r - 1}</math>, где <math>| \rangle</math> – функция, которая обращает элемент <math>l</math> в 1, а остальные элементы <math>\mathbb{Z}_r</math> в 0. Обозначим за <math>QFT_{\mathbb{Z}_r}</math> ''квантовое преобразование Фурье'' над циклической группой <math>\mathbb{Z}_r</math>, определенное как следующий унитарный оператор над <math>\mathbb{C} [\mathbb{Z}_r]</math>:


<math>QFT_{\mathbb{Z}_r} : |x \rangle \mapsto r^{-1/2} \sum_{y \in \mathbb{Z}_r} e^{-2 \pi i x y/r} |y \rangle.</math>


Оно может быть реализовано за квантовое время O(flog(f/e) + Iog2(l/e)) с точностью до ошибки e с использованием одного т-кубитного регистра [5. Заметим, что для любого k 2 Zr; <math>QFT_{\mathbb{Z}_r}</math> преобразует состояние r~m J2xeZr e27Zikxlr\x) в состояние jki. Для любого целого числа l; 0 < l < r - 1, определим


Он может быть реализован за квантовое время <math>O(t \; log(t/ \epsilon) + log^2(1/ \epsilon))</math> с точностью до ошибки <math>\epsilon</math> с использованием одного t-кубитного регистра [5]. Заметим, что для любого <math>k \in \mathbb{Z}_r</math> оператор <math>QFT_{\mathbb{Z}_r}</math> преобразует состояние <math>r^{-1/2} \sum_{x \in \mathbb{Z}_r} e^{2 \pi i k x/r} |x \rangle</math> в состояние <math>|k \rangle</math>. Для любого целого числа <math>l, 0 \le l \le r - 1</math>, определим


Заметим, что {|j)}o</<r-1 образует ортонормальный базис C[hai], где hai – подгруппа, порожденная a в G и изоморфная Zr, а C [hai] обозначает гильбертово пространство функций от hai до комплексных чисел.
(1) <math> \; \; | \hat{l} \rangle := r^{-1/2} \sum_{k = 0}^{r - 1} e^{-2 \pi i l k/r} |a^k \rangle.</math>




'''Алгоритм 1 (Дискретное логарифмирование)'''
Заметим, что <math>\{ | \hat{l} \rangle \}_{0 \le l \le r - 1}</math> образует ортонормальный базис <math>\mathbb{C} [ \langle a \rangle ]</math>, где <math>\langle a \rangle</math> – подгруппа, порожденная <math>a</math> в G и изоморфная <math>\mathbb{Z}_r</math>, а <math>\mathbb{C} [ \langle a \rangle ]</math> обозначает гильбертово пространство функций от <math>\langle a \rangle</math> над полем комплексных чисел.


Дано: элементы a; b 2 G, квантовая схема для U, порядок r a в G.


Требуется: найти с постоянной вероятностью дискретный логарифм s от b по основанию a в G.
'''Алгоритм 1 (дискретное логарифмирование)'''


Время выполнения: суммарно O(t3) базовых вентильных операций, включая четыре вызова <math>QFT_{\mathbb{Z}_r}</math> и один вызов U.
Дано: элементы <math>a, b \in G</math>, квантовая схема для U, порядок r для <math>a</math> в G.


Требуется: найти с постоянной вероятностью дискретный логарифм s от b по основанию <math>a</math> в G.


'''Процедура:'''
Время выполнения: суммарно <math>O(t^3)</math> базовых вентильных операций, включая четыре вызова <math>QFT_{\mathbb{Z}_r}</math> и один вызов U.
1. Повторить шаги (a)-(e) дважды, получив (sl1 mod r; l1) и (sl2 mod r; l2).
(a)
Инициализация;
(b)
Применить <math>QFT_{\mathbb{Z}_r}</math> к первым двум регистрам;
(c)
Применить U
(d)
Применить <math>QFT_{\mathbb{Z}_r}</math> к первым двум регистрам;
(e)    7! (sl mod r; l)
Измерить первые два регистра;
2. Если l1 не совпадает с l2, прервать вычисление.
3. Пусть k1; k2 - целые числа, такие, что k1l1 + k2l2 = 1.
Вывести outputs = k1(sl1) + k2(sl2) m°d r.


  '''Процедура:'''
 
  1. Повторить шаги (a)–(e) дважды, получив <math>(sl_1</math> mod r, <math>l_1)</math> и <math>(sl_2</math> mod r, <math>l_2)</math>.
 
  (a) <math>|0 \rangle |0 \rangle |0 \rangle</math>
 
  Инициализация;
 
  (b) <math> \mapsto r^{-1} \sum_{x, y \in \mathbb{Z}_r} |x \rangle |y \rangle |0 \rangle</math>
 
  Применить <math>QFT_{\mathbb{Z}_r}</math> к первым двум регистрам;
 
  (c) <math> \mapsto r^{-1} \sum_{x, y \in \mathbb{Z}_r} |x \rangle |y \rangle |b^x a^y \rangle</math>
 
  Применить U
 
  (d) <math> \mapsto r^{-1/2} \sum_{l = 0}^{r - 1} |sl \; mod \; r \rangle |l \rangle |\hat{l} \rangle</math>
 
  Применить <math>QFT_{\mathbb{Z}_r}</math> к первым двум регистрам;
 
  (e) <math> \mapsto (sl \; mod \; r, l)</math>
 
  Измерить первые два регистра;
 
  2. Если <math>l_1</math> не совпадает с <math>l_2</math>, прервать вычисление.
 
  3. Пусть <math>k_1, k_2</math> – целые числа, такие, что <math>k_1 l_1 + k_2 l_2 = 1</math>. Вывести <math>s = k_1(sl_1) + k_2(sl_2) mod \; r</math>.


Работа алгоритма поясняется ниже. Из Равенства легко увидеть, что


Работа алгоритма поясняется ниже. Из равенства (1) легко увидеть, что <math>|b^x a^y \rangle = r^{-1/2} \sum_{l = 0}^{r - 1} e^{2 \pi i l (sx + y)/r} | \hat{l} \rangle </math>.


Таким образом, состояние приведенного выше алгоритма на шаге 1(c) можно записать как


Таким образом, состояние приведенного выше алгоритма на шаге 1(c) можно записать как <math>r^{-1} \sum_{x, y \in \mathbb{Z}_r} |x \rangle |y \rangle |b^x a^y \rangle = r^{-3/2} \sum_{l = 0}^{r - 1} \sum_{x, y \in \mathbb{Z}_r} e^{2 \pi i l (sx + y)/r} |x \rangle |y \rangle | \hat{l} \rangle = r^{-3/2} \sum_{l = 0}^{r - 1} \Bigg[ \sum_{x \in \mathbb{Z}_r} e^{2 \pi i s l x/r} \Bigg] \cdot \Bigg[\sum_{y \in \mathbb{Z}_r} e^{2 \pi i l y/r} \Bigg] | \hat{l} \rangle</math>.


Применение <math>QFT_{\mathbb{Z}_r}</math> к первым двум регистрам дает состояние вышеприведенного алгоритма на шаге 1(d). Измерение первых двух регистров дает (sl mod r; l) для равномерно распределенного l; 0 < l < r - 1 на шаге 1(e). С помощью элементарной теории чисел можно показать, что если целые числа l\, h равномерно и независимо выбраны между 0 и 1-1, то они будут совпадать с постоянной вероятностью. В этом случае найдутся целые числа k1, k2 такие, что k1 l1 + k2 l2 = 1, что приведет к нахождению дискретного логарифма s на шаге 3 алгоритма с постоянной вероятностью. Поскольку фактически можно применить только e-приближенную версию <math>QFT_{\mathbb{Z}_r}</math>, можно задать e достаточно малой константой, и это все равно даст правильный дискретный логарифм s на шаге 3 алгоритма с постоянной вероятностью. Вероятность успеха алгоритма Шора для задачи дискретного логарифма можно увеличить по крайней мере до 3/4, повторив его постоянное число раз.
 
Применение <math>QFT_{\mathbb{Z}_r}</math> к первым двум регистрам дает состояние вышеприведенного алгоритма на шаге 1(d). Измерение первых двух регистров дает <math>(sl \; mod \; r, l</math>) для равномерно распределенного <math>l, 0 \le l \le r - 1</math> на шаге 1(e). С помощью элементарной теории чисел можно показать, что если целые числа <math>l_1, l_2</math> равномерно и независимо выбраны в интервале между 0 и <math>l - 1</math>, то они будут совпадать с постоянной вероятностью. В этом случае найдутся целые числа <math>k_1, k_2</math> такие, что <math>k_1 l_1 + k_2 l_2 = 1</math>, что приведет к нахождению дискретного логарифма s на шаге 3 алгоритма с постоянной вероятностью. Поскольку фактически можно применить только <math>\epsilon</math>-приближенную версию <math>QFT_{\mathbb{Z}_r}</math>, можно задать <math>\epsilon</math> достаточно малой константой, и это все равно даст правильный дискретный логарифм s на шаге 3 алгоритма с постоянной вероятностью. Вероятность успеха алгоритма Шора для задачи дискретного логарифмирования можно увеличить по крайней мере до 3/4, повторив его постоянное число раз.




'''Обобщения алгоритма для решения задачи дискретного логарифмирования'''
'''Обобщения алгоритма для решения задачи дискретного логарифмирования'''


Задача о дискретном логарифмировании является частным случаем более общей задачи, называемой задачей о скрытой подгруппе [8].
Задача о дискретном логарифмировании является частным случаем более общей задачи, называемой ''задачей о скрытой подгруппе'' [8].
   
   


Идеи, лежащие в основе алгоритма Шора для дискретного логарифмирования, могут быть обобщены для получения эффективного квантового алгоритма для поиска скрытых подгрупп в абелевых группах (краткий обзор см. в [ ]). Оказывается, что нахождение дискретного логарифма b по основанию a в G сводится к задаче поиска скрытой подгруппы в группе Zr x Zr, где r – порядок a в G. Помимо задачи дискретного логарифмирования, другие криптографически важные функции, такие как факторизация целых чисел, нахождение порядка перестановок, а также нахождение эквивалентных относительно сдвига многочленов над конечными полями, могут быть сведены к случаям нахождения скрытой подгруппы в абелевых группах.
Идеи, лежащие в основе алгоритма Шора для дискретного логарифмирования, могут быть обобщены для получения эффективного квантового алгоритма для поиска скрытых подгрупп в абелевых группах (краткий обзор см. в [1]). Оказывается, что нахождение дискретного логарифма <math>b</math> по основанию <math>a</math> в G сводится к задаче поиска скрытой подгруппы в группе <math>\mathbb{Z}_r \times \mathbb{Z}_r</math>, где r – порядок <math>a</math> в G. Помимо задачи дискретного логарифмирования, другие криптографически важные функции, такие как факторизация целых чисел, нахождение порядка перестановок, нахождение эквивалентных относительно сдвига многочленов над конечными полями, могут быть сведены к случаям нахождения скрытой подгруппы в абелевых группах.


== Применение ==
== Применение ==
Предполагаемая неразрешимость задачи дискретного логарифмирования лежит в основе нескольких криптографических алгоритмов и протоколов. Первый пример криптографии с открытым ключом, а именно обмен ключами с помощью протокола Диффи-Хеллмана [2], использует дискретные логарифмы, обычно в группе <math>\mathbb{Z}^*_p</math> для простого числа p. Безопасность алгоритма цифровой подписи, являющегося национальным стандартом США (подробности и ссылки см. в [ ]), зависит от предполагаемой неразрешимости задачи дискретного логарифмирования в <math>\mathbb{Z}^*_p</math>, где p – простое число. Криптосистема с открытым ключом ElGamal [3] и ее производные используют дискретные логарифмы в соответствующим образом выбранных подгруппах <math>\mathbb{Z}^*_p</math>, где p – простое число. Более поздние варианты применения включают криптографию на эллиптических кривых [6], где группа состоит из группы точек эллиптической кривой над конечным полем.
Предполагаемая неразрешимость задачи дискретного логарифмирования лежит в основе нескольких криптографических алгоритмов и протоколов. Первый пример криптографии с открытым ключом, а именно обмен ключами с помощью протокола Диффи-Хеллмана [2], использует дискретные логарифмы, обычно в группе <math>\mathbb{Z}^*_p</math> для простого числа p. Безопасность алгоритма цифровой подписи, являющегося национальным стандартом США (подробности и ссылки см. в [7]), зависит от предполагаемой неразрешимости задачи дискретного логарифмирования в <math>\mathbb{Z}^*_p</math>, где p – простое число. Криптосистема Эль-Гамаля с открытым ключом [3] и ее производные используют дискретные логарифмы в соответствующим образом выбранных подгруппах <math>\mathbb{Z}^*_p</math>, где p – простое число. Более поздние варианты применения включают криптографию на эллиптических кривых [6], где группа состоит из группы точек эллиптической кривой над конечным полем.


== См. также ==
== См. также ==
4501

правка

Навигация