Алгоритм Шора, квантовый алгоритм факторизации (разложения числа на простые множители), позволяющий разложить число N за время , используяO(log N) логических кубитов.
Значимость алгоритма заключается в том, что при использовании квантового компьютера с несколькими сотнями логических кубитов, он сделает возможным взлом криптографических систем с открытым ключом. К примеру, RSA использует открытый ключ N, являющийся произведением двух больших простых чисел. Один из способов взломать шифр RSA — найти множители N. При достаточно большом N это практически невозможно сделать, используя известные классические алгоритмы. Наилучший из известных классических алгоритмов факторизации требует времени порядка N1 / 3. Так как А.Ш. работает только на квантовом компьютере, в настоящее время не существует технических средств, позволяющих заполиномиальное время от длины числа разложить достаточно большое число на множители. А.Ш. в свою очередь, используя возможности квантовых компьютеров, способен произвести факторизацию числа не просто за полиномиальное время, а за время, не намного превосходящее время умножения целых чисел (то есть практически так же быстро, как происходит само шифрование). Таким образом, реализация масштабируемого квантового компьютера в случае ее успеха поставила бы крест на большей части современной криптографической защиты. (Речь не только о схеме RSA, прямо опирающейся на сложности факторизации, но и о других сходных схемах, которые квантовый компьютер способен взломать аналогичным образом).
Как и другие алгоритмы для квантовых компьютеров, А.Ш. вероятностный: он даёт верный ответ с высокой вероятностью. Вероятность ошибки может быть уменьшена при повторном использовании алгоритма. Тем не менее, так как возможна проверка предложенного результата (умножением) в квадратичное время, алгоритм может быть модифицирован так, что ответ будет верным с единичной вероятностью.
А.Ш. был разработан Питером Шором в 1994 году. Семь лет спустя, в 2001 году, его работоспособность была продемонстрирована группой специалистов IBM. Число 15 было разложено на множители 3 и 5 при помощи квантового компьютера с 7 кубитами.
Основным достижением П. Шора является реализация им дискретной версии преобразования Фурье на квантовом компьютере — так называемое квантовое преобразование Фурье (QFT — Quantum Fourier Transform). Ключевая роль преобразования Фурье для проблемы факторизации была известна до Шора. С другой стороны, реализованное Шором QFT имеет многочисленные применения и помимо факторизации.
Квантовое преобразование Фурье действует на базисных векторах согласно формуле
QFT продолжается по линейности на все гильбертово пространство состояний H. QFT является унитарным оператором в H, обратное к нему задается аналогичной формулой, только без знака «−» в экспоненте.
А.Ш. основан на возможности быстро вычислить собственные значения унитарного оператора с высокой точностью, если можно эффективно вычислять любые его степени. Взяв в качестве такого оператора умножение на x по модулю N (этот оператор действует в 2n мерном пространстве, где , преобразуя базисный вектор, соответствующий числуa, в базисный вектор, соответствующий числу xa(modN)), мы сможем вычислить такое n, что xn = 1(modN), что позволяет (с высокой вероятностью) разложить N на множители на обычном компьютере.