Алгоритм Шора (Glikjnmb Okjg)
Алгори́тм Шо́ра — квантовый алгоритм факторизации (разложения числа на простые множители), позволяющий разложить число за время , используя логических кубитов.
Алгоритм Шора был разработан Питером Шором в 1994 году. Семь лет спустя, в 2001 году, его работоспособность была продемонстрирована группой специалистов IBM. Число 15 было разложено на множители 3 и 5 при помощи квантового компьютера с 7 кубитами.
Об алгоритме
[править | править код]Значимость алгоритма заключается в том, что с его помощью (при использовании квантового компьютера с несколькими тысячами логических кубитов) становится возможным взлом криптографических систем с открытым ключом. К примеру, RSA использует открытый ключ , являющийся произведением двух больших простых чисел. Один из способов взломать шифр RSA — найти множители . При достаточно большом это практически невозможно сделать, используя известные классические алгоритмы. Наилучшие из известных классических детерминированных доказанных алгоритмов факторизации, такие как метод квадратичных форм Шенкса и алгоритм Полларда — Штрассена, требуют времени порядка . Также метод квадратичных форм Шенкса может работать за время порядка , если верна Гипотеза Римана. Среди вероятностных алгоритмов лидером факторизации является специальный метод решета числового поля, который способен с вероятностью 1/2 найти простой делитель за субэкспоненциальное время . Алгоритм Шора, используя возможности квантовых компьютеров, способен произвести факторизацию числа не просто за полиномиальное время, а за время, не намного превосходящее время умножения целых чисел (то есть практически так же быстро, как происходит само шифрование). Таким образом, реализация масштабируемого квантового компьютера поставит крест на большей части современной криптографической защиты. Речь не только о схеме RSA, прямо опирающейся на сложности факторизации, но и о других сходных схемах, которые квантовый компьютер способен взломать аналогичным образом.
Алгоритм Шора имеет вероятностный характер. Первый источник случайности встроен в классическое вероятностное сведе́ние разложения на множители к нахождению периода некоторой функции. Второй источник появляется из необходимости наблюдения квантовой памяти, которое также даёт случайные результаты[1].
Улучшение алгоритма
[править | править код]В 2023 году Одед Регев опубликовал новый квантовый алгоритм по факторизации чисел, превосходящий по эффективности Алгоритм Шора. Регев разработал свой новый алгоритм, дополнив алгоритм Шора методами из раздела криптографии, занимающегося многомерной геометрией. Ему удалось обобщить алгоритм на произвольное количество измерений, а не только на два, в результате чего для факторизации чисел квантовому компьютеру требуется гораздо меньше логических шагов. Специалисты по квантовыми вычислениями отмечают, что удивительно и неожиданно, что спустя 30 лет кто-то смог качественно улучшить алгоритм Шора[2][3][4].
Принцип работы алгоритма Шора
[править | править код]Основа алгоритма Шора: способность информационных единиц квантовых компьютеров — кубитов — принимать несколько значений одновременно и находиться в состоянии «квантовой запутанности». Поэтому он позволяет проводить вычисления в условиях экономии кубитов. Принцип работы алгоритма Шора можно разделить на 2 части: первая — классическое сведе́ние разложения на множители к нахождению периода некоторой функции, вторая — квантовое нахождение периода этой функции. Пусть:
- — число, которое мы хотим разложить на множители (оно не должно быть целой степенью нечётного числа);
- — размер регистра памяти, который используется (не считая свалки). Битовый размер этой памяти примерно в 2 раза больше размера . Точнее, ;
- — случайный параметр, такой что и (где — наибольший общий делитель).
Отметим, что , , — фиксированы. В алгоритме Шора используется стандартный способ сведения задачи разложения к задаче поиска периода функции для случайно подобранного числа [5].
Классическая часть алгоритма
[править | править код]Минимальное такое, что , — это порядок по модулю .
Порядок является периодом функции , где .
Если можно эффективно вычислить как функцию , то можно найти собственный делитель за время, ограниченное полиномом от с вероятностью для любого фиксированного .
Предположим, что для данного период чётен и удовлетворяет условию
- .
Тогда
- — собственный делитель . Функция вычислима за полиномиальное время.
Вероятность выполнения этого условия , где — число различных нечётных простых делителей , следовательно, в данном случае. Поэтому хорошее значение с вероятностью найдётся за попыток. Самое длинное вычисление в одной попытке — вычисление [6][7].
Квантовая часть алгоритма
[править | править код]Для осуществления квантовой части алгоритма вычислительная схема представляет собой квантовых регистра и . Первоначально каждый из них состоит из совокупности кубитов в нулевом булевом состоянии .
Регистр используется для размещения аргументов функции . Регистр (вспомогательный) используется для размещения значений функции с периодом , подлежащим вычислению.
Квантовое вычисление состоит из 4 шагов[8]:
- Первый шаг. На первом шаге с помощью операции Уолша — Адамара[англ.], которая представляет собой преобразование кубита с помощью оператора , первоначальное состояние регистра переводится в равновероятную суперпозицию всех булевых состояний . Второй регистр остаётся в состоянии . В итоге получается следующее состояние для системы двух регистров:
- Второй шаг. Пусть — унитарное преобразование, которое переводит в . На втором шаге применяется унитарное преобразование к системе двух регистров. Получается следующее состояние системы:
- , то есть между состояниями обоих регистров образуется определённая связь.
- Третий шаг. Квантовое Фурье-преобразование представляет собой унитарное преобразование состояния квантового регистра, описываемого -мерным вектором состояния вида , в другое состояние :
- , где амплитуда фурье-преобразования имеет вид
- .
- В двумерной -плоскости преобразование Фурье соответствует повороту осей координат на 90°, которое приводит к преобразованию шкалы в шкалу . На третьем шаге над состоянием первого регистра производится преобразование Фурье, и получается
- .
- Четвёртый шаг. На четвёртом шаге выполняется измерение первого регистра относительно ортогональной проекции вида:
- , где — тождественный оператор на гильбертовом пространстве второго регистра .
В результате получается с вероятностью[9]
- .
На оставшейся части прогона работает классический компьютер:
- Находится наилучшее приближение (снизу) к со знаменателем
- .
- Пробуем в роли :
В некоторой степени определение периода функции с помощью преобразования Фурье аналогично измерению постоянных решётки кристалла методом рентгеновской или нейтронной дифракции. Чтобы определить период , не требуется вычислять все значения . В этом смысле задача похожа на задачу Дойча, в которой важно знать не все значения функции, а только некоторые её свойства[9].
Нахождение периода функции в алгоритме
[править | править код]Пусть — функция с неизвестным периодом
- .
Чтобы определить период , требуются два регистра с размерами и кубитов, которые должны быть первоначально в состоянии .
На первом этапе выполняется односторонняя суперпозиция всех базисных векторов первого регистра с использованием оператора следующего вида:
- , где и .
Здесь используется псевдопреобразование Адамара . Применяя к текущему состоянию, получаем:
- .
Измерение второго регистра с результатом , где , приводит состояние к:
- где .
После измерения состояния первый регистр состоит только из базисных векторов вида таких, что для всех . Поэтому он имеет дискретный однородный спектр. Невозможно прямо получить период или кратное ему число, измеряя первый регистр, потому что здесь — случайная величина. Здесь применяется дискретное преобразование Фурье вида
- на регистр, так как вероятность спектра в преобразованном состоянии инвариантна относительно смещения (преобразованию поддаются только фазы, а не абсолютные значения амплитуд).
- .
- ,
- где и .
Если кратно , тогда , если кратно , и в противном случае. Даже если не является степенью числа 2, то спектр показывает отдельные пики с периодом , потому что
Для первого регистра используется кубитов, когда , потому что это гарантирует по крайней мере элементов в приведённой сумме, и таким образом ширина пиков будет порядка .
Если теперь вычислить первый регистр, то получится значение , близкое к , где . Оно может быть записано как . Это сводится к нахождению аппроксимации , где , для конкретного числа двоичной точки . Для решения этой задачи используются цепные дроби.
Поскольку форма рационального числа не единственна в своём роде, то и определяются как , если . Вероятность того, что оба числа и просты, больше чем , поэтому, чтобы вероятность успеха была близка к единице, необходимо только попыток[10][8].
Дискретное логарифмирование
[править | править код]Другая математическая задача, дискретное логарифмирование, часто применяющаяся для создания систем асимметричной криптографии, также является уязвимой для квантового алгоритма, предложенного Шором в той же статье[11].
Примечания
[править | править код]- ↑ Beckman, Chari, Devabhaktuni et al., 1996.
- ↑ Regev O. An Efficient Quantum Factoring Algorithm. — 2023. — arXiv:2308.06572.
- ↑ 'Surprising and super cool.' Quantum algorithm offers faster way to hack internet encryption (Report) (англ.). 2023-09-19. doi:10.1126/science.adk9418. Архивировано 19 декабря 2023. Дата обращения: 21 декабря 2023.
- ↑ Brubaker, Ben Thirty Years Later, a Speed Boost for Quantum Factoring (англ.). Quanta Magazine (17 октября 2023). Дата обращения: 18 октября 2023. Архивировано 22 декабря 2023 года.
- ↑ Валиев, 2004, с. 86—92.
- ↑ 1 2 Feynman, 1986.
- ↑ 1 2 Feynman, 1982.
- ↑ 1 2 Shor, 1997.
- ↑ 1 2 Валиев, 2004, с. 81—92.
- ↑ Shor, 1994.
- ↑ Shor P. Algorithms for Quantum Computation: Discrete Logarithms and Factoring (англ.) // Foundations of Computer Science, 1994 Proceedings., 35th Annual Symposium on — IEEE, 1994. — P. 124–134. — ISBN 0-8186-6580-7 — doi:10.1109/SFCS.1994.365700
Литература
[править | править код]- Feynman R. Simulating Physics with Computers (англ.) // International Journal of Theoretical Physics — Springer Science+Business Media, 1982. — Vol. 21, Iss. 6 / 7. — P. 467–488. — ISSN 0020-7748; 1572-9575 — doi:10.1007/BF02650179
- Feynman R. Quantum mechanical computers (англ.) // Foundations of Physics / Gerard 't Hooft — Springer Science+Business Media, 1986. — Vol. 16, Iss. 6. — P. 507–531. — ISSN 0015-9018; 1572-9516 — doi:10.1007/BF01886518
- D B., AN C., S D., J P., Beckman D., Chari A. N., Devabhaktuni S., Preskill J. Efficient networks for quantum factoring (англ.) // Physical Review A: covering atomic, molecular, and optical physics and quantum information — College Park: American Physical Society, 1996. — Vol. 54, Iss. 2. — P. 1034—1063. — ISSN 2469-9926; 2469-9934; 2469-9942 — doi:10.1103/PHYSREVA.54.1034 — PMID:9913575 — arXiv:quant-ph/9602016
- Shor P. Algorithms for Quantum Computation: Discrete Logarithms and Factoring (англ.) // Foundations of Computer Science, 1994 Proceedings., 35th Annual Symposium on — IEEE, 1994. — P. 124–134. — ISBN 0-8186-6580-7 — doi:10.1109/SFCS.1994.365700
- Shor P. W. Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer // Foundations of Computer Science : Conference Publications. — 1997. — P. 1484–1509.
- Валиев К. А., Кокин А. А. Квантовые компьютеры: надежды и реальность. — Ижевск: РХД, 2004. — 320 с.
- Федотов И. Е. Модели параллельного программирования. — М.: Солон-пресс, 2012. — 384 с.
Ссылки
[править | править код]- Shor P. W. Algorithms for quantum computation: discrete logarithms and factoring // Foundations of Computer Science : Conference Publications. — 1994. — С. 124–134. — ISBN 0-8186-6580-7. — doi:10.1109/SFCS.1994.365700.
- Shor P. W. Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer // Foundations of Computer Science : Conference Publications. — 1997. — С. 1484–1509.