🔢 Алгоритм Шора

Оберіть N та a, потім натисніть «Запустити», щоб знайти період і розкласти N на множники.
Крок 1 — послідовність періоду aˣ mod N
N = 15  ·  a = 7  ·  період r =  ·  множники:

Про алгоритм Шора

Алгоритм Шора, опублікований математиком Пітером Шором у 1994 році, — це результат, який перетворив квантові обчислення з теоретичної цікавинки на екзистенційне питання для сучасної криптографії. Він розкладає складене число N на множники, знаходячи період r послідовності aˣ mod N для деякої основи a, взаємно простої з N — задачу, яку квантовий комп'ютер може виконати експоненційно швидше за будь-який відомий класичний метод, використовуючи операцію під назвою квантова оцінка фази (QPE), щоб зчитати r безпосередньо з інтерференційних картин у суперпозиції станів. Щойно r відомий, коротке обчислення за алгоритмом Евкліда, застосоване до ar/2 ± 1 та N, дуже часто виявляє два справжні, нетривіальні множники N.

Це має значення далеко за межами чистої математики: криптосистема з відкритим ключем RSA, яка й досі захищає значну частку інтернет-трафіку, банківських операцій та безпечних комунікацій, повністю спирається на припущення, що факторизація великих чисел обчислювально нездійсненна. Достатньо великий, стійкий до похибок квантовий комп'ютер, що виконує алгоритм Шора, зруйнував би це припущення — саме тому уряди та органи стандартизації вже впроваджують постквантову криптографію, розроблену для протидії квантовим атакам. Цей симулятор проводить через класичну послідовність пошуку періоду, ілюстративне відтворення квантового спектра, який виміряв би QPE, і реальну арифметику алгоритму Евкліда, що перетворює період на факторизацію — на невеликих, перевірюваних вручну прикладах N = 15, 21 і 35.

Часті запитання

Яку задачу насправді розв'язує алгоритм Шора?

Він розкладає складене число N на прості множники. Класично найкращі відомі алгоритми факторизації великих чисел працюють за час, що зростає майже експоненційно з кількістю цифр, тому шифрування RSA, засноване на складності факторизації, залишалося безпечним десятиліттями. Алгоритм Шора розкладає N за час, що зростає лише поліноміально — експоненційне пришвидшення для достатньо великих N.

Чому знаходження періоду r допомагає розкласти N на множники?

Якщо a взаємно просте з N, а r парне і ar/2 не конгруентне −1 за модулем N, то ar/2 − 1 та ar/2 + 1 є свідченнями того, що N ділить їхній добуток, але не кожен множник окремо. Алгоритм Евкліда, застосований до gcd(ar/2 − 1, N) та gcd(ar/2 + 1, N), тоді виділяє справжній нетривіальний множник N безпосередньо з цього арифметичного факту.

Чи виконує цей симулятор реальне квантове обчислення?

Ні, і ця сторінка прямо про це говорить. Моделювання реальної схеми квантової оцінки фази, яка знаходить r, вимагало б моделювання багатьох кубітів, що набагато перевищує можливості canvas у браузері. Натомість ця демонстрація обчислює r класично за допомогою звичайного циклу, а потім малює ілюстративний «спектр» із піками на k/r, щоб у навчальних цілях показати, як виглядав би реальний вимір QPE.

Чому інколи трюк із пошуком періоду не спрацьовує?

Побудова через gcd працює лише тоді, коли період r парний, а ar/2 не конгруентне −1 за модулем N. Якщо r виявляється непарним, або якщо обчислення gcd повертає лише тривіальні множники 1 чи N, обрана основа a просто не підходить для цього методу. Стандартне рішення, як тут, так і в реальному алгоритмі, — спробувати іншу випадкову основу a і повторити.