Алгоритм Шорса - Shors algorithm

Алгоритм Шора это полиномиальное время алгоритм квантового компьютера за целочисленная факторизация.[1] Неформально он решает следующую проблему: если задано целое число найти его главные факторы. Он был изобретен в 1994 году американским математиком. Петр Шор.

На квантовом компьютере разложить целое число на множители , Алгоритм Шора работает за полиномиальное время (затраченное время полиномиально от , размер целого числа, заданного на входе).[2] В частности, требуется квантовые ворота порядка используя быстрое умножение,[3] тем самым демонстрируя, что проблема целочисленной факторизации может быть эффективно решена на квантовом компьютере и, следовательно, находится в класс сложности BQP. Это почти экспоненциально быстрее, чем самый эффективный из известных классических алгоритмов факторизации, общее числовое поле сито, который работает в субэкспоненциальное время: .[4] Эффективность алгоритма Шора обусловлена ​​эффективностью квантовое преобразование Фурье, и модульное возведение в степень к повторные квадраты.[5]

Если квантовый компьютер с достаточным количеством кубиты мог работать, не поддаваясь квантовый шум и другие квантовая декогеренция явлений, то алгоритм Шора может быть использован для взлома криптография с открытым ключом схемы, такие как широко используемые ЮАР схема. RSA основан на предположении, что разложение больших целых чисел на множители сложно вычислить. Насколько известно, это предположение справедливо для классических (неквантовых) компьютеров; не известен ни один классический алгоритм, который может разложить целые числа на множители за полиномиальное время. Тем не менее, алгоритм Шора показывает, что факторизация целых чисел эффективна на идеальном квантовом компьютере, поэтому может оказаться возможным победить RSA, построив большой квантовый компьютер. Это также был мощный мотиватор для разработки и создания квантовых компьютеров, а также для исследования новых алгоритмов квантовых компьютеров. Он также способствовал исследованиям новых криптосистем, защищенных от квантовых компьютеров, которые вместе называются постквантовая криптография.

В 2001 году алгоритм Шора был продемонстрирован группой в IBM, кто учел в , используя Реализация ЯМР квантового компьютера с кубиты.[6] После внедрения IBM две независимые группы реализовали алгоритм Шора с использованием фотонный кубитов, подчеркивая, что многокубит запутанность наблюдалась при запуске схем алгоритма Шора.[7][8] В 2012 г. факторизация проводился с твердотельными кубитами.[9] Также в 2012 г. факторизация был достигнут, установив рекорд для наибольшего целого числа, факторизованного с помощью алгоритма Шора.[10] Квантовые компьютеры с помощью других алгоритмов, в частности, квантового отжига, разложили на множители гораздо большие числа.

Процедура

Проблема, которую мы пытаемся решить, состоит в том, составное число , чтобы найти нетривиальный делитель из (делитель строго между и ). Прежде чем пытаться найти такой делитель, можно относительно быстро использовать проверка на простоту алгоритмы для проверки того, что действительно составной.

Нам нужно быть нечетным (иначе является делителем) и не должно быть степенью простого числа (иначе это простое число является делителем), поэтому нам нужно проверить, что нет целых корней за .

Следовательно, можно считать, что это продукт двух совмещать целые числа больше чем . Это следует из Китайская теорема об остатках что существует не менее четырех различных квадратных корней из по модулю (поскольку у каждого модульного уравнения есть два корня). Цель алгоритма - найти квадратный корень из по модулю это отличается от и , потому что тогда

для ненулевого целого числа что дает нам нетривиальные делители и из .Эта идея похожа на другие алгоритмы факторинга, такой как квадратное сито.

В свою очередь, найдя такой сводится к поиску элемента четного периода с некоторым дополнительным свойством (как поясняется ниже, требуется, чтобы не выполнялось условие шага 6 классической части). Квантовый алгоритм используется для нахождения периода случайно выбранных элементов. , так как на классическом компьютере это сложная задача.

Алгоритм Шора состоит из двух частей:

  1. Сведение, которое может быть выполнено на классическом компьютере, проблемы факторизации к проблеме порядок -поиск.
  2. Квантовый алгоритм для решения задачи нахождения порядка.

Классическая часть

  1. Выберите случайное число .
  2. Вычислить , то наибольший общий делитель из и . Это можно сделать с помощью Евклидов алгоритм.
  3. Если , то это число является нетривиальный фактор Итак, мы закончили.
  4. В противном случае используйте подпрограмму квантового определения периода (ниже), чтобы найти , что означает период следующей функции:
    Это порядок из в группа , которое является наименьшим положительным целым числом для которого , или же . К Теорема Эйлера, разделяет , куда обозначает Функция Эйлера.
  5. Если является нечетным, затем вернитесь к шагу 1.
  6. Если , затем вернитесь к шагу 1.
  7. В противном случае оба и являются нетривиальными факторами Итак, мы закончили.

Например: Учитывая , , и , у нас есть , куда и . За это произведение двух различных простых чисел, и , значение просто , который для является , и разделяет .

Квантовая часть: подпрограмма определения периода

Квантовая подпрограмма в алгоритме Шора

Квантовые схемы, используемые для этого алгоритма, специально разработаны для каждого выбора и каждый выбор случайного используется в . Данный , найти такой, что , откуда следует, что . Вход и выход кубит регистры должны содержать суперпозиции значений из к , и так кубиты каждый. Использование того, что может показаться вдвое большим количеством кубитов, чем необходимо, гарантирует, что существует как минимум разные значения которые производят то же самое , даже если период подходы .

Действуйте следующим образом:

  1. Инициализируйте регистры для

    куда обозначает тензорное произведение.

    Это начальное состояние представляет собой суперпозицию состояний и легко получается путем генерации независимый кубиты, каждая суперпозиция и состояния. Мы можем добиться этого, установив кубиты в нулевое положение, а затем применив Ворота Адамара параллельно каждому из кубиты, где .
  2. Построить как квантовую функцию и примените ее к указанному выше состоянию, чтобы получить
    Это все еще суперпозиция состояния. Тем не менее кубиты, т.е. входные кубиты и () выходят кубиты, запутаны или нет отделяемый, поскольку состояние не может быть записано как тензорное произведение состояний отдельных кубитов. Важно отметить, что значение, содержащее мы ищем теперь хранится в фазе входных кубитов в результате "фазового отката", когда использование кубитов в качестве управляющих входов для унитарных вентилей изменяет относительную фазу управляющих кубитов. [11]
  3. Примените обратное квантовое преобразование Фурье во входной регистр. Это преобразование (работающее на суперпозиции состояния) использует -го корень единства Такие как распределить амплитуду любого заданного равное положение среди всех из состояний, и делать это по-разному для каждого . Таким образом, получаем
    Это приводит к окончательному состоянию
    Теперь переупорядочиваем эту сумму как
    Это суперпозиция гораздо большего, чем штатов, но гораздо меньше, чем штатов, так как их меньше различные ценности . Позволять
    • быть -й корень из единства,
    • быть периодом ,
    • быть самым маленьким из для которого (у нас есть ), и
    • записывать
    • индексирует эти , убегая от к , так что .
    потом - единичный вектор в комплексной плоскости ( является корнем единства, и и целые числа), а коэффициент при в конечном состоянии
    Каждый член в этой сумме представляет собой другой путь к тому же результату, и квантовая вмешательство происходит - конструктивно, когда единичные векторы точки почти в том же направлении на комплексной плоскости, что требует, чтобы указать вдоль положительная действительная ось.
  4. Выполните измерение. Получаем какой-то результат во входном регистре и какой-то результат в выходном регистре. В качестве является периодическим, вероятность измерения некоторого состояния дан кем-то
    Анализ теперь показывает, что эта вероятность тем выше, чем ближе единичный вектор находится к положительной действительной оси или ближе является целым числом. Пока не это сила , это не будет фактором .
  5. С близко к некоторому целому числу , известное значение близко к неизвестному значению . Исполнение [классика] непрерывное расширение фракции на позволяет нам найти приближения из него, которые удовлетворяют двум условиям:
    1. .
    2. .
    Учитывая эти множественные условия (и предполагая, что является несводимый ), очень вероятно будет подходящий период , или, по крайней мере, один из факторов.
  6. Проверить (классически), если . Если так, то все готово.
  7. В противном случае (классически) получить больше кандидатов на с использованием кратных , или используя другие с возле . Если какой-либо кандидат работает, то все готово.
  8. В противном случае попробуйте еще раз, начиная с шага 1 этой подпрограммы.

Пояснение к алгоритму

Алгоритм состоит из двух частей. Первая часть алгоритма превращает проблему факторизации в задачу нахождения периода функции и может быть реализована классическим способом. Вторая часть находит период с помощью квантового преобразования Фурье и отвечает за квантовое ускорение.

Получение факторов из периода

Целые числа меньше и совмещать с сформировать мультипликативная группа целых чисел по модулю , который является конечным абелевым группа . Размер этой группы определяется как . К концу шага 3 у нас есть целое число в этой группе. Поскольку группа конечна, должен иметь конечный порядок , которое является наименьшим положительным целым числом такое, что

Следовательно, разделяет (также написано ). Предположим, что мы можем получить и что это даже. (Если нечетно, то на шаге 5 мы должны перезапустить алгоритм с другим случайным числом ) Сейчас же квадратный корень из по модулю это отличается от . Это потому что это порядок по модулю , так , или же порядок в этой группе будет . Если , то на шаге 6 мы должны перезапустить алгоритм с другим случайным числом .

В конце концов, мы должны ударить порядка в такой, что . Это потому, что такой квадратный корень из по модулю Кроме как и , существование которой гарантируется китайской теоремой об остатках, поскольку не главная сила.

Мы утверждаем, что является правильным фактором , т.е. . Фактически, если , тогда разделяет , так что , что противоречит построению . Если же, с другой стороны, , затем по Личность Безу, есть целые числа такой, что

Умножая обе стороны на , мы получаем

В качестве разделяет , мы находим, что разделяет , так что , что снова противоречит построению .

Следовательно, это необходимый коэффициент .

Определение периода

Алгоритм поиска периода Шора во многом полагается на способность квантовый компьютер находиться во многих состояниях одновременно.

Физики называют это поведение "суперпозиция "состояний. Чтобы вычислить период функции , мы оцениваем функцию одновременно во всех точках.

Однако квантовая физика не позволяет нам напрямую получить доступ ко всей этой информации. А измерение даст только одно из всех возможных значений, уничтожив все остальные. Если бы не нет теоремы клонирования, мы могли сначала измерить без измерения , а затем сделайте несколько копий результирующего состояния (которое представляет собой суперпозицию состояний, у всех одинаковые ). Измерение по этим штатам предоставит разные значения, которые дают одинаковые , ведущий к периоду. Потому что мы не можем делать точные копии квантового состояния, этот метод не работает. Следовательно, мы должны тщательно преобразовать суперпозицию в другое состояние, которое с большой вероятностью вернет правильный ответ. Это достигается за счет квантовое преобразование Фурье.

Таким образом, Шору пришлось решить три проблемы «реализации». Все они должны были быть реализованы «быстро», что означает, что они могут быть реализованы с помощью ряда квантовые ворота то есть многочлен в .

  1. Создайте суперпозицию состояний. Это можно сделать, применив Адамар ворота ко всем кубитам во входном регистре. Другой подход - использовать квантовое преобразование Фурье (см. Ниже).
  2. Реализуйте функцию как квантовое преобразование. Для этого Шор использовал повторное возведение в квадрат за его преобразование модульного возведения в степень. Важно отметить, что этот шаг сложнее реализовать, чем квантовое преобразование Фурье, поскольку для его выполнения требуются вспомогательные кубиты и значительно больше вентилей.
  3. Выполните квантовое преобразование Фурье. Используя вентили управляемого вращения и вентили Адамара, Шор разработал схему для квантового преобразования Фурье (с ), который использует только ворота.[12]

После всех этих преобразований измерение даст приближение к периоду . Для простоты предположим, что существует такой, что целое число. Тогда вероятность измерения является . Чтобы увидеть это, мы замечаем, что тогда

для всех целых чисел . Следовательно, сумма, квадрат которой дает нам вероятность измерить будет , так как занимает примерно значений и, следовательно, вероятность . Есть возможные значения такой, что целое число, а также возможности для , поэтому в сумме вероятностей .

Примечание. Другой способ объяснить алгоритм Шора - это отметить, что это просто алгоритм квантовой оценки фазы в маскировке.

Узкое место

Узкое место выполнения алгоритма Шора является квантовым. модульное возведение в степень, что намного медленнее, чем квантовое преобразование Фурье и классическая пре- / постобработка. Существует несколько подходов к построению и оптимизации схем модульного возведения в степень. Самый простой и (в настоящее время) наиболее практичный подход - имитировать обычные арифметические схемы с помощью обратные ворота, начиная с сумматоры с волновым переносом. Знание базы и модуля возведения в степень облегчает дальнейшую оптимизацию.[13][14] Реверсивные схемы обычно используются в порядке ворота для кубиты. Альтернативные методы асимптотически улучшают количество гейтов с помощью квантовые преобразования Фурье, но не могут конкурировать с кубитами менее 600 из-за высоких констант.

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

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

Это дает нам абелев проблема скрытой подгруппы, так как соответствует групповой гомоморфизм. Ядро соответствует кратным . Итак, если мы сможем найти ядро, мы сможем найти .

Смотрите также

Рекомендации

  1. ^ Шор, П. (1994). «Алгоритмы квантовых вычислений: дискретные логарифмы и факторизация». Материалы 35-го ежегодного симпозиума по основам компьютерных наук. IEEE Comput. Soc. Пресс: 124–134. Дои:10.1109 / sfcs.1994.365700. ISBN  0818665807.
  2. ^ Смотрите также псевдополиномиальное время.
  3. ^ Бекман, Дэвид; Chari, Amalavoyal N .; Девабхактуни, Шрикришна; Прескилл, Джон (1996). «Эффективные сети для квантового факторинга» (PDF). Физический обзор A. 54 (2): 1034–1063. arXiv:Quant-ph / 9602016. Bibcode:1996ПхРвА..54.1034Б. Дои:10.1103 / PhysRevA.54.1034. PMID  9913575.
  4. ^ "Сито числового поля". wolfram.com. Получено 23 октября 2015.
  5. ^ Гидни, Крейг. «Алгоритм квантового факторинга Шора». Алгоритмические утверждения. Получено 28 ноября 2020.
  6. ^ Vandersypen, Ливен М. К .; Штеффен, Матиас; Брейта, Грегори; Yannoni, Costantino S .; Шервуд, Марк Х. и Чуанг, Исаак Л. (2001), «Экспериментальная реализация алгоритма квантового разложения Шора с использованием ядерного магнитного резонанса» (PDF), Природа, 414 (6866): 883–887, arXiv:Quant-ph / 0112176, Bibcode:2001Натура.414..883В, CiteSeerX  10.1.1.251.8799, Дои:10.1038 / 414883a, PMID  11780055
  7. ^ Лу, Чао-Ян; Браун, Дэниел Э .; Ян, Тао и Пан, Цзянь-Вэй (2007), «Демонстрация скомпилированной версии алгоритма квантового факторинга Шора с использованием фотонных кубитов» (PDF), Письма с физическими проверками, 99 (25): 250504, arXiv:0705.1684, Bibcode:2007PhRvL..99y0504L, Дои:10.1103 / PhysRevLett.99.250504, PMID  18233508
  8. ^ Lanyon, B.P .; Weinhold, T. J .; Langford, N.K .; Barbieri, M .; Джеймс, Д. Ф. В .; Гилкрист А. и Уайт А. Г. (2007), «Экспериментальная демонстрация скомпилированной версии алгоритма Шора с квантовой запутанностью» (PDF), Письма с физическими проверками, 99 (25): 250505, arXiv:0705.1398, Bibcode:2007PhRvL..99y0505L, Дои:10.1103 / PhysRevLett.99.250505, PMID  18233509
  9. ^ Лусеро, Эрик; Барендс, Рами; Чен, Ю; Келли, Джулиан; Мариантони, Маттео; Мегрант, Энтони; О'Мэлли, Питер; Затонул, Дэниел; Вайнсенчер, Амит; Веннер, Джеймс; Белый, Тед; Инь, Йи; Cleland, Andrew N .; Мартинис, Джон М. (2012). «Вычисление простых факторов с помощью квантового процессора джозефсоновских фазовых кубитов». Природа Физика. 8 (10): 719. arXiv:1202.5707. Bibcode:2012НатФ ... 8..719л. Дои:10.1038 / nphys2385.
  10. ^ Мартин-Лопес, Энрике; Мартин-Лопес, Энрике; Лэйнг, Энтони; Лоусон, Томас; Альварес, Роберто; Чжоу, Сяо-Ци; О'Брайен, Джереми Л. (12 октября 2012 г.). «Экспериментальная реализация алгоритма квантового разложения Шора с использованием рециклинга кубитов». Природа Фотоника. 6 (11): 773–776. arXiv:1111.4147. Bibcode:2012НаФо ... 6..773M. Дои:10.1038 / nphoton.2012.259.
  11. ^ Авторы Qiskit. «Учебник Qiskit: квантовая оценка фазы». IBM. Получено 7 ноября 2020.
  12. ^ Шор 1999, п. 14
  13. ^ Марков, Игорь Л .; Саиди, Мехди (2012). "Оптимизированные константами квантовые схемы для модульного умножения и возведения в степень". Квантовая информация и вычисления. 12 (5–6): 361–394. arXiv:1202.6614. Bibcode:2012arXiv1202.6614M.
  14. ^ Марков, Игорь Л .; Саиди, Мехди (2013). «Более быстрое квантовое числовое разложение посредством синтеза схем». Phys. Ред. А. 87 (1): 012310. arXiv:1301.3210. Bibcode:2013ПхРвА..87а2310М. Дои:10.1103 / PhysRevA.87.012310.
  15. ^ Бернштейн, Даниэль Дж .; Хенингер, Надя; Лу, Пол; Валентина, Люк (2017). «Постквантовый RSA» (PDF). Международный семинар по постквантовой криптографии. Конспект лекций по информатике. 10346: 311–329. Дои:10.1007/978-3-319-59879-6_18. ISBN  978-3-319-59878-9. В архиве (PDF) из оригинала от 20.04.2017.

дальнейшее чтение

внешняя ссылка