Алгоритм Шора — квантовий алгоритм факторизації (розкладання числа на прості множники), що дозволяє розкласти число за час , використовуючи логічних кубітів.

Алгоритм Шора був розроблений Пітером Шором в 1994 році. Сім років по тому, в 2001 році, його працездатність була продемонстрована групою фахівців IBM. Число 15 було розкладено на множники 3 і 5 за допомогою квантового комп'ютера з 7 кубітами.

Про алгоритм

ред.

Значущість алгоритму полягає в тому, що з його допомогою (при використанні квантового комп'ютера з достатньою кількістю логічних кубітів) стає можливим злом деяких криптографічних систем з відкритим ключем. Наприклад, в RSA частиною відкритого ключа є число  , яке є добутком двох великих простих чисел. Один із способів зламати шифр RSA — знайти множники  . При досить великому   це практично неможливо зробити використовуючи відомі класичні алгоритми. Найкращі з відомих класичних детермінованих доведених алгоритмів факторизації, такі як метод квадратичних форм Шенкса і алгоритм Полларда — Штрассена[ru], вимагають часу порядку  . Також метод квадратичних форм Шенкса може працювати за час порядку  , якщо вірна Гіпотеза Рімана. Серед імовірнісних алгоритмів лідером факторизації є спеціальний метод решета числового поля[en], який здатний з ймовірністю 1/2 знайти простий дільник за субекспоненціальний час   Алгоритм Шора, використовуючи можливості квантових комп'ютерів, здатний здійснити факторизацію числа не просто за поліноміальний час, а за час, що не набагато перевершує час множення цілих чисел (тобто практично так само швидко, як відбувається саме шифрування). Таким чином, реалізація квантового комп'ютера, що масштабується, поставить хрест на значній частині сучасного криптографічного захисту. (Мова не тільки про схему RSA, що прямо спирається на складність факторизації, а й про інші схеми, які квантовий комп'ютер здатний зламати аналогічним чином.)

Алгоритм Шора має ймовірнісний характер. Перше джерело випадковості вбудоване в класичний вірогіднісне зведення розкладання на множники до знаходження періоду деякої функції. Друге джерело з'являється з необхідності спостереження квантової пам'яті, яке також дає випадкові результати[1].

Принцип роботи алгоритму Шора

ред.

Основа алгоритму Шора: здатність інформаційних одиниць квантових комп'ютерів — кубітів — приймати кілька значень одночасно і перебувати в стані «квантової заплутаності». Роботу алгоритму Шора можна розділити на 2 частини: перша — класичне зведення розкладання на множники до знаходження періоду деякої функції, друга — квантове знаходження періоду цієї функції. Нехай:

  — число, яке ми хочемо розкласти на множники (воно не повинно бути цілим степенем простого числа);
  — розмір регістра пам'яті, який використовується (без врахування додаткової пам'яті). Бітовий розмір цієї пам'яті   приблизно в 2 рази більше розміру  . Точніше,  ;
  — випадковий параметр такий, що   і   (де   — найбільший спільний дільник).

Відзначимо, що  ,  ,   — фіксовані. В алгоритмі Шора використовується стандартний спосіб зведення задачі факторизації до задачі пошуку періоду   функції від випадково підібраного числа  [2].

Класична частина алгоритму

ред.

Мінімальне   таке, що   — це порядок   по модулю  

Порядок   є періодом функції   де   Якщо можна ефективно обчислити   як функцію від  , то можна знайти власний дільник   за час, обмежений поліномом від   з ймовірністю   для будь-якого фіксованого  .

Припустимо, що для даного   період   парний   і задовольняє умові

 

Тоді

  — власний дільник   Функція   вирішується за поліноміальний час.

Ймовірність виконання цієї умови   де   — число різних непарних простих дільників  , отже,   в даному випадку. Тому хороше значення   з ймовірністю   знайдеться за   спроб. Найдовше обчислення в одній спробі — обчислення  [3][4].

Квантова частина алгоритму

ред.

Для здійснення квантової частини алгоритму необхідна обчислювальна схема, що складається з  -х квантових регістрів   і  . Спочатку, кожен з них складається із сукупності кубітів в нульовому булевому стані  

Регістр   використовується для розміщення аргументів   функції   Регістр   (допоміжний) використовується для розміщення значень функції   з періодом  , що підлягають обчисленню.

Квантове обчислення складається з 4 кроків[5]:

  • Перший крок. На першому кроці за допомогою операції Уолша - Адамара, яка здійснює перетворення кубіта за допомогою оператора   первісний стан   регістра   перекладається в рівноймовірнісну суперпозицію всіх булевих станів  . Другий регістр   залишається в стані   В результаті виходить наступний стан для системи двох регістрів:
     
  • Другий крок. Нехай   — унітарне перетворення, яке переводить   в   На другому кроці застосовується унітарне перетворення до системи двох регістрів. Виходить наступний стан системи:
  тобто між станами обох регістрів утворюється певний зв'язок.
  • Третій крок. Квантове Фур'є-перетворення[en] є унітарним перетворенням стану квантового регістра, що описується  -мірним вектором стану виду   в інший стан  :
  де амплітуда перетворення Фур'є   має вигляд
 
У двовимірній  -площині перетворення Фур'є відповідає повороту осей координат на 90°, яке веде до перетворення шкали   в шкалу  . На третьому кроці над станом першого регістра здійснюється перетворення Фур'є, і виходить
 
  • Четвертий крок. На четвертому кроці виконується вимірювання першого регістра   щодо ортогональної проєкції[ru] виду:
  де   — тотожний оператор на гільбертовому просторі другого регістра  .

В результаті виходить   з ймовірністю[2]

 

На тій частині прогону, що залишилась, працює класичний комп'ютер:

  • Знаходиться найкраще наближення (знизу) до   зі знаменником  
     
  • Пробуємо   в ролі  :
    • Якщо  , то слід обчислити  
    • Якщо   непарне, або якщо   парне, але власний дільник   невиявлений, то слід повторити прогін   раз з тим же самим  . У разі невдачі, необхідно змінити   і почати новий прогін алгоритму[3][4].

Деякою мірою визначення періоду функції за допомогою перетворення Фур'є аналогічне вимірюванню періоду кристалічної ґратки методом рентгенівської або нейтронної дифракції. Щоб визначити період   не потрібно обчислювати всі значення   У цьому сенсі задача близька до алгоритму Дойча — Йожи, в якому важливо знати не всі значення функції, а тільки деякі її властивості[2].

Знаходження періоду функції в алгоритмі

ред.

Нехай   — функція з невідомим періодом  

 

Щоб визначити період   потрібні два регістра з розмірами   і   кубітів, які спочатку повинні бути в стані  

На першому етапі виконується одностороння суперпозиція всіх базисних векторів першого регістра з використанням оператора   наступного вигляду:

 , де   і  

Тут використовується псевдоперетворення Адамара[ru]  . Застосувавши   до поточного стану, отримуємо:

 

Вимірювання другого регістра з результатом   де   призводить стан до

  де  

Після вимірювання стану   перший регістр складається тільки з базисних векторів виду   таких, що   для всіх   Тому він має дискретний однорідний спектр. Неможливо прямо отримати період   або кратне йому число, вимірюючи перший регістр, тому що тут   — випадкова величина. Тут застосовується дискретне перетворення Фур'є виду

  на регістр, так як ймовірність спектра в перетвореному стані інваріантна щодо зміщення (перетворюються тільки фази, а не абсолютні значення амплітуд).
 
 
де   і  

Якщо   кратне  , тоді   якщо   кратне   і   в іншому випадку. Навіть якщо   не є ступенем числа  , то спектр   показує окремі піки з періодом   бо

 

Для першого регістра використовується   кубітів, коли   бо це гарантує принаймні   елементів в наведеній сумі, і таким чином ширина піків буде порядку  

Якщо тепер обчислити перший регістр, то вийде значення   близьке до   де   Воно може бути записано як   Це зводиться до знаходження апроксимації   де   для конкретного числа двійкової крапки   Для вирішення цієї задачі використовуються ланцюгові дроби.

Оскільки форма раціонального числа не єдина в своєму роді, то   і   визначаються як   якщо   Імовірність того, що обидва числа   і   прості, більше ніж   тому, щоб ймовірність успіху була близька до одиниці, необхідно лише   спроб[6][5].

Дискретні логарифми

ред.

Нехай дано просте   з твірним  , де  , припустимо, що  , для деякого r, і ми хочемо обчислити r, тобто дискретний логарифм:  . Розглянемо абелеву групу  , де кожен множник відповідає множенню по модулю ненульових значень, припускаючи що   є простим. Тепер розглянемо функцію

 

Це дає нам абелеву проблему прихованої підгрупи, бо f відповідає гомоморфізму груп. Ядро відповідає дільникам (r, 1). Отже, якщо ми можемо знайти ядро, ми можемо знайти r.

У популярній культурі

ред.

В телесеріалі Зоряна брама: Всесвіт, провідний вчений, доктор Ніколас Раш, сподівався використати алгоритм Шора щоб зламати мастеркод корабля Доля. Він викладав курс квантової криптографії в Університет Каліфорнії, Берклі, в якому вивчався алгоритм Шора.

У анімаційному фільмі Літні війни[en], персонаж Кендзі Коїсо читає статтю під назвою «Алгоритм факторизації Шора» під час подорожі в поїзді, передбачаючи його здатність розуміти та обчислювати складні рівняння.

У телесеріалі Теорія великого вибуху це було згадано в змаганні за Кубок з фізики в 1-му сезоні, 13-й серії.

Див. також

ред.

Примітки

ред.
  1. Beckman, Chari, Devabhaktuni et al., 1996.
  2. а б в Валієв, 2004.
  3. а б Feynman, 1986.
  4. а б Feynman, 1982.
  5. а б Shor, 1997.
  6. Shor, 1994.
  7. Bernstein, Daniel J.; Heninger, Nadia; Lou, Paul; Valenta, Luke (2017). Post-quantum RSA (PDF). International Workshop on Post-Quantum Cryptography. Springer: 311—329. Архів (PDF) оригіналу за 20 квітня 2017. Процитовано 29 січня 2018.

Література

ред.
  • Feynman R. Simulating Physics with Computers // International Journal of Theoretical Physics. — 1982. — С. 467–488.
  • Feynman R. Quantum mechanical computers // Foundations of Physics. — 1986. — С. 507–531.
  • Beckman D., Chari A. N., Devabhaktuni S. et al. Efficient networks for quantum factoring // Physical Review A: Atomic, Molecular and Optical Physics. — 1996. — С. 1034–1063.
  • Shor P. W. Algorithms for Quantum Computation: Discrete Logarithms and Factoring // Foundations of Computer Science, 1994 Proceedings., 35th Annual Symposium on. — 1994. — С. 124–134.
  • 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.
  • Валиев К. А., Кокин А. А. Квантовые компьютеры: надежды и реальность. — Ижевск : РХД, 2004. — 320 с.