Квантовые вычисления

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

Разбить на страницы
Показывать лекцию целиком

Настало время связать воедино все разработанные нами нити исследований и описать квантовый алгоритм Шора факторизации больших целых чисел.

Пусть р и q - два большие секретные простые числа, и N = рq их произведение. Наша цель - найти р и q при заданном N. Решение этой задачи означает, что криптосистема RSA будет взломана.

Как мы видели, мы можем определить р и q, если в дополнение к N будем знать размер группы $$Z_N^*$$- группы обратимых остатков по модулю N. Число элементов группы $$Z_N^*$$ мы обозначаем как М = (р - 1) (q - 1) .

Идея определения М состоит в том, чтобы найти порядки элементов группы $$Z_N^*$$. По теореме Лагранжа порядок каждого элемента группы является делителем М, следовательно, вычисление порядков даст нам делители М.

Давайте проиллюстрируем эту идею на следующем примере. Пусть простые секретные числа - это р = 36013, q = 51199, тогда N = pq = = 1843829587. Числа р -1 и q -1 факторизуются (разлагаются на множители)следующим образом: р-1=2х2х3х3001,q-1=2х3х7х23х53. На практике факторизация неизвестна, поскольку сами простые числа р и q неизвестны. Все же для иллюстрации полезно видеть эту факторизацию, поскольку она проливает свет на порядки элементов группы $$Z_N^*$$. Порядок этой мультипликативной группы равен М = (р - 1) (q - 1) = 1843742376 = 2 х 32 х 7х 23 х 53 х 3001.

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

g order of g factorization оГ the order

2

3

5

7

11

13

13360452

21949314

13360452

5797932

43898628

153645198

$$2^2 х 3 х 7 х 53 х 3001\\ 2х3х23х53х3001\\2^2 х 3 х 7 х 53 х 3001\\ 2^2 х 3 х 7 х 23 х 3001\\2^2 х 3 х 23 х 53 х 3001\\ 2х3х7х23х53х3001$$

Мы не приводим здесь порядок g = 4, так как, будучи квадратом числа 2, его порядок вдвое меньше порядка числа 2. В абелевой группе порядок произведения является делителем наименьшего общего кратного порядков множителей. По этой причине мы перечисляем только порядки простых элементов g.

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

$$HOK(a,b)=\frac{ab}{HOД(a,b)}$$

а наибольший общий делитель - НОД(а, b) - эффективно вычисляется алгоритмом Эвклида.

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

$$R = 307290396 = 2^2 х 3 х 7 х 23 х 53 х 3001 = НОК(р - 1, q - 1).$$

В применениях к криптографии числа (р - 1) и (q - 1) имеют большие простые множители, в противном случае известны обычные, не квантовые методы взлома RSА. Из этого следует, что НОК(р -1, q -1) отличается от М только небольшим множителем. Так как $$N/М \approx 1$$, то можно определить этот множитель из $$N/ R = \frac{1843829587}{307290396}\approx 6.00028$$, следовательно, М = 6R

Так что, если нам удастся определить порядки элементов группы $$Z_N^*$$, то мы сможем факторизовать N. В оставшейся части этой главы мы сосредоточимся на проблеме нахождения порядка m заданного элемента g в $$Z_N^*$$~.

Начнем с установки числа кубитов, которые требуются для квантового алгоритма. Выберем n такое, что $$2^{n-1} < N < 2$$. Квантовый алгоритм, который мы собираемся описать, будет оперировать с 3n-кубитами.

Вначале инициализируем 3n-кубиты нулевыми значениями $$|00\dots 0\rangle $$.

Шаг 1. Применим трансформацию Адамара Н к каждому из первых 2п-кубитов:

$$H|0\rangle \dots H|0\rangle|0\dots0\rangle=\frac{1}{\sqrt2}(|0\rangle+|1\rangle)\dots\frac{1}{\sqrt2}(|0\rangle+|1\rangle)|0\dots 0\rangle=\frac{2}{2^n}\sum_{k=0}^{2^{2n}-1}|k\rangle|0\dots0\rangle$$

Шаг 2. Для заданного остатка g в $$Z_N^*$$ рассмотрим функцию:

$$f:B_{2n}\to B_n,\\ F(k)=g^k\; mod\; N,\;\;0\le k <2^{2n}$$

Давайте покажем, что функция f - периодическая с периодом равным порядку элемента g. Так как этот порядок (который мы хотим определить) не превышает N, вычислим эту функцию на большом числе ее периодов. Классически это было бы недоступно, но на квантовом компьютере такое становится возможным благодаря массивному параллелизму квантовых вычислений.

Классическое вычисление f имеет квантовую реализацию $$Т_f$$, представляющую линейную трансформацию пространства 3n-кубита, где первые 2n битов являются входными битами, а последние n битов задают выход. Так как $$N < 2^n$$, то у нас достаточно числа бит, чтобы записать любой остаток по модулю N.

Применим $$Т_f$$ к кубитам, сконструированным на Шаге 1:

$$T_f\left(\frac{1}{2^n}\sum_{k=0}^{2^{2n}-1}|k\rangle|0\dots0\rangle\right)= \frac{1}{2^n}\sum_{k=0}^{2^{2n}-1}|k\rangle }g^k\; mod\; N\rangle $$

Шаг З. Выполним измерения последних n битов. Результат этих измерений - вероятностный. Мы будем наблюдать одно из значений h, которое является степенью g по модулю N. Наш 3n-кубит сожмется в состояние, где последние n битов будут принимать значение h mod N. Что случится с первыми 2n битами? Все значения k такие, что $$g^k \ne h$$, исчезнут. Все же, результирующее состояние будет включать сумму, так как есть больше чем одно значение k, для которого $$g^k = h\; mod\; N$$. Обозначим через s минимальное значение k.

Поскольку m - порядок у, то имеем:

$$h=g^s=g^{s+m}=g^{s+2m}=g^{s+3m}=\dots\g^{s=(L-1)m}\; mod\; N,$$

где L - минимальное целое большее или равное $$(2^{2n} - s)/m$$. Тогда квантовое состояние, полученное в результате этого измерения, может быть записано как:

$$\frac{1}{\sqrtL}\sum_{j=0}^{L-1}|s+jm\rangle |h\rangle $$

Мы видим, что коэффициенты в этом состоянии формируют последовательность, которая является периодической с периодом m (который и должен быть определен):

$$ f_k=\frac{1}{\sqrt{L}} \begin{cases} 1,\text{ если k = s mod m}\\ 0,\text{ в противном случае } \end{cases}$$

Шаг 4. Применим квантовое преобразование Фурье к первым 2n битам. В результате получим состояние:

$$\sum_{r=0}^{2^{2n-1}-1}a_r|r \rangle|0 \rangle|h \rangle+b_r|r \rangle|1 \rangle|h \rangle$$

где $$а_r$$ и $$b_r$$. имеют пики в целых значениях, кратных частоте $$\omega = 2^{2n}/m$$ (смотри Упражнение в главе о дискретном преобразовании Фурье).

Шаг 5. Выполним измерения значений первых 2n - 1 битов. Результат измерений вероятностный с вероятностью наблюдения значения r, равной $$а_r^2 + b_r^2$$. С высокой вероятностью наблюдаемое значение r будет соответствовать пику и, следовательно, будет близко к целому числу, кратному $$\omega = 2^{2n}/m$$.

Запишем наблюденное значение r и повторим Шаги 1-5 несколько раз, сохраняя наблюдения $$r_1,r_2,\dots,r_l$$, - здесь l - небольшое число. Это завершает квантовую часть алгоритма.

Давайте опишем как можно определить значение m из наблюдаемых значений $$г_1, r_2,\dots , г_l$$. Как мы отмечали, $$r_1, r_2, \dots , r_l$$ близки к целым кратным $$\omega = 2^{2n}/m$$. Предположим, что $$r_i\approx k_i\omega$$. Мы надеемся, что $$НОД(k_1, \dots , k_l) = 1$$. Наши надежды вполне оправданы. В самом деле, вероятность того, что два больших случайных числа относительно просты, равна $$6/\pi^2 = 0.6079....$$ Для l больших случайных чисел эта вероятность задается инверсией так называемой дзета-функции: $$1/\zeta(l)$$. Например, для l= 6 вероятность того, что 6 случайных целых не имеют общего множителя равна $$1/\zeta(6) = 945/\pi^6 = 0.9829.$$

Наша цель определить значение w, поскольку тогда просто определить m из соотношения $$m = 2^{2n}/\omega$$. Хотя $$r_1, \dots , г_l$$ - целые кратные $$\omega$$, мы не можем использовать алгоритм Эвклида для поиска ы, хотя бы потому, что само значение $$\omega$$ не является целым числом. Поэтому давайте рассмотрим версию алгоритма Эвклида, которая находит приближенное значение НОД. Эта версия работает и для вещественных чисел.

Мы собираемся пояснить этот метод на примере. Пусть N = 989 и это число следует факторизовать. Мы хотим найти порядок m для g = 2 в мультипликативной группе $$Z_{989}^*$$, используя алгоритм Шора. Так как $$989 < 2^{10} = 1024$$, то $$n = 10$$. После Шага 2 алгоритма Шора получим кубит:

$$\frac{1}{2^{10}}\sum_{k=0}^{2^{20}-1}|k \rangle |2^k\; mod\;989 \rangle$$

На Шаге 3 измерим значение последних 10 битов с наблюдаемым случайным значением. Предположим, что результат этого измерения $$h = 2^{50} = 41\; mod\; 989$$. Тогда только слагаемые, где $$2^k = 41\; mod\; 989$$ выживут в результирующей сумме. Эти значения k формируют арифметическую прогрессию k = 50, 50 + m, 50 + 2m, .... Следовательно, последовательность коэффициентов в кубите теперь периодическая с периодом m. Применяя КПФ -квантовое преобразование Фурье на Шаге 5, получим состояние:

$$\sum_{r=0}^{2^{19}-1}a_r|r \rangle|0 \rangle |h \rangle+b_r|r \rangle|1 \rangle|h \rangle,$$

Коэффициенты Фурье имеют инки в точках r, близких к целым кратным $$\omega = 2^{20} /m$$. Для иллюстрации построим график вероятностей ау + Ь для r в пределах от 0 до 40000. Мы понимаем, что значения коэффициентов

кубита, хранимые в квантовом компьютере, недоступны непосредственно, и мы смогли построить этот график только лишь потому, что значение N мало и для него возможно вычислить коэффициенты Фурье на обычном компьютере. Этот графин показывает вероятности наблюдения каждого значения r, если бы мы проводили измерения первых 19 кубитов. Мы четко различаем пики на графине, которые означают, что некоторые значения r намного чаще появляются при измерениях, чем другие.

Приведем список вероятностей наблюдения значений r вблизи двух пиков:

$$r$$ $$а_r^2 + b_r^2$$

251926

251927

251928

251929

251930

251931

251932

251933

251934

0.0000071

0.0000124

0.0000271

0.0000991

0.0125868

0.0001465

0.0000329

0.0000141

0.0000078

$$r$$ $$a_r^2+b_r^2$$

435767

435768

435769

435770

435771

435772

435773

435774

435775

0.000054

0.000091

0.000186

0.000567

0.008652

0.002382

0.000373

0.000145

0.000076

Из этих таблиц видно, что некоторые значения r имеют намного большую вероятность наблюдения. Предположим мы выполнили квантовый алгоритм дважды и получили r = 435771 в качестве первого наблюдения, и r = 251930 как результат выполнения при втором запуске квантового алгоритма. Мы ожидаем, что эти значения близки к кратным частоты $$\omega = 2^{20}/m$$.

Давайте выполним алгоритм Эвклида для поиска наибольшего общего множителя $$r_1$$ и $$r_2$$. Разделим $$r_1$$ на $$r_2$$ с остатком:

$$r_3=r_1-r_2=183841$$

Этот остаток $$r_3$$ всегда меньше делителя $$r_2$$, но мы не ожидаем, что он на порядки меньше значения делителя. В самом деле, для 0 < с < 1 вероятность того, что $$r_3 < сг_2$$ равна с.

Давайте продолжим выполнять алгоритм Эвклида:

$$r_4= r_2- r_3 = 68089,\\ r_5= r_3- 2 * r_4= 47663,\\ r_6= r_4- r_5=20426,\\ r_7= r_5-2 * r_6= 6811,\\ r_8= r6-3 * r_7= 7.$$

На последнем шаге мы замечаем, что значение остатка $$r_8 = 7$$ на несколько порядков меньше значения делителя $$r_7 = 6811$$. Это и является признаком, когда алгоритм следует заканчивать, поскольку $$r_8\approx 0$$. Следовательно, $$r_7$$ является приближенным $$НОД(r_1, r_2)$$. Давайте определим соответствующие целые кратные:

$$\frac{r_1}{r_7}=\frac{435771}{6811}=63.98\dots,\;\; \frac{r_2}{r_7}=\frac{251930}{6811}=36.98\dots$$

Теперь можно получить более точное значение базовой частоты $$\omega$$:

$$\omega\approx \frac{435771}{64} \appros 6808.921\dots,\;\;\omega \approx\frac{251930}{37}\approx 6808.918\dots$$

Из соотношения $$\omega = 2^{20}/m$$ определим значение порядка m для элемента g = 2 в группе $$Z_{989}^*$$:

$$m\approx \frac{2^{20}}{\omega}\approx\frac{1048576}{6808.92}\approx154.0003\dots$$

Мы заключаем, что элемент группы g = 2 имеет порядок m = 154.

По теореме Лагранжа размер М = (р - 1) (q - 1) группы $$Z_{989}^*$$ является целым, кратным порядку любого элемента, М = mК. Так как величина М сравнима с N = рq = 989, то можно аппроксимировать значение неизвестного множителя К как:

$$K=\fracMm < \fracNm=\frac{989}{154}\approx6.42\dots$$

Взяв К = 6, получим значение М = 6m = 924.

Так как N = рq, М = (р - 1) (q - 1) = pq - р - q + 1, то имеем:

$$р+ = N- М+ 1 =989-924+1 =66.$$

В итоге неизвестные множители р и q находятся как корни квадратного уравнения с известными коэффициентами:

$$Х^2 - (р + q)Х + рq = 0,\\ Х^2 -66Х+989=0,\\ p=\frac{66+\sqrt{66^2-4*989}}{2}=43,\;\;q=\frac{66-\sqrt{66^2-4*989}}{2}=23$$

Можно проверить справедливость результатов факторизации:

$$43 * 23= 989.$$

Упражнение. Покажите, что в нашем описании алгоритма Шора шаг 3 может быть опущен.

Страницы:

Настало время связать воедино все разработанные нами нити исследований и описать квантовый алгоритм Шора факторизации больших целых чисел.

Пусть р и q - два большие секретные простые числа, и N = рq их произведение. Наша цель - найти р и q при заданном N. Решение этой задачи означает, что криптосистема RSA будет взломана.

Как мы видели, мы можем определить р и q, если в дополнение к N будем знать размер группы $$Z_N^*$$- группы обратимых остатков по модулю N. Число элементов группы $$Z_N^*$$ мы обозначаем как М = (р - 1) (q - 1) .

Идея определения М состоит в том, чтобы найти порядки элементов группы $$Z_N^*$$. По теореме Лагранжа порядок каждого элемента группы является делителем М, следовательно, вычисление порядков даст нам делители М.

Давайте проиллюстрируем эту идею на следующем примере. Пусть простые секретные числа - это р = 36013, q = 51199, тогда N = pq = = 1843829587. Числа р -1 и q -1 факторизуются (разлагаются на множители)следующим образом: р-1=2х2х3х3001,q-1=2х3х7х23х53. На практике факторизация неизвестна, поскольку сами простые числа р и q неизвестны. Все же для иллюстрации полезно видеть эту факторизацию, поскольку она проливает свет на порядки элементов группы $$Z_N^*$$. Порядок этой мультипликативной группы равен М = (р - 1) (q - 1) = 1843742376 = 2 х 32 х 7х 23 х 53 х 3001.

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

g order of g factorization оГ the order

2

3

5

7

11

13

13360452

21949314

13360452

5797932

43898628

153645198

$$2^2 х 3 х 7 х 53 х 3001\\ 2х3х23х53х3001\\2^2 х 3 х 7 х 53 х 3001\\ 2^2 х 3 х 7 х 23 х 3001\\2^2 х 3 х 23 х 53 х 3001\\ 2х3х7х23х53х3001$$

Мы не приводим здесь порядок g = 4, так как, будучи квадратом числа 2, его порядок вдвое меньше порядка числа 2. В абелевой группе порядок произведения является делителем наименьшего общего кратного порядков множителей. По этой причине мы перечисляем только порядки простых элементов g.

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

$$HOK(a,b)=\frac{ab}{HOД(a,b)}$$

а наибольший общий делитель - НОД(а, b) - эффективно вычисляется алгоритмом Эвклида.

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

$$R = 307290396 = 2^2 х 3 х 7 х 23 х 53 х 3001 = НОК(р - 1, q - 1).$$

В применениях к криптографии числа (р - 1) и (q - 1) имеют большие простые множители, в противном случае известны обычные, не квантовые методы взлома RSА. Из этого следует, что НОК(р -1, q -1) отличается от М только небольшим множителем. Так как $$N/М \approx 1$$, то можно определить этот множитель из $$N/ R = \frac{1843829587}{307290396}\approx 6.00028$$, следовательно, М = 6R

Так что, если нам удастся определить порядки элементов группы $$Z_N^*$$, то мы сможем факторизовать N. В оставшейся части этой главы мы сосредоточимся на проблеме нахождения порядка m заданного элемента g в $$Z_N^*$$~.

Начнем с установки числа кубитов, которые требуются для квантового алгоритма. Выберем n такое, что $$2^{n-1} < N < 2$$. Квантовый алгоритм, который мы собираемся описать, будет оперировать с 3n-кубитами.

Вначале инициализируем 3n-кубиты нулевыми значениями $$|00\dots 0\rangle $$.

Шаг 1. Применим трансформацию Адамара Н к каждому из первых 2п-кубитов:

$$H|0\rangle \dots H|0\rangle|0\dots0\rangle=\frac{1}{\sqrt2}(|0\rangle+|1\rangle)\dots\frac{1}{\sqrt2}(|0\rangle+|1\rangle)|0\dots 0\rangle=\frac{2}{2^n}\sum_{k=0}^{2^{2n}-1}|k\rangle|0\dots0\rangle$$

Шаг 2. Для заданного остатка g в $$Z_N^*$$ рассмотрим функцию:

$$f:B_{2n}\to B_n,\\ F(k)=g^k\; mod\; N,\;\;0\le k <2^{2n}$$

Давайте покажем, что функция f - периодическая с периодом равным порядку элемента g. Так как этот порядок (который мы хотим определить) не превышает N, вычислим эту функцию на большом числе ее периодов. Классически это было бы недоступно, но на квантовом компьютере такое становится возможным благодаря массивному параллелизму квантовых вычислений.

Классическое вычисление f имеет квантовую реализацию $$Т_f$$, представляющую линейную трансформацию пространства 3n-кубита, где первые 2n битов являются входными битами, а последние n битов задают выход. Так как $$N < 2^n$$, то у нас достаточно числа бит, чтобы записать любой остаток по модулю N.

Применим $$Т_f$$ к кубитам, сконструированным на Шаге 1:

$$T_f\left(\frac{1}{2^n}\sum_{k=0}^{2^{2n}-1}|k\rangle|0\dots0\rangle\right)= \frac{1}{2^n}\sum_{k=0}^{2^{2n}-1}|k\rangle }g^k\; mod\; N\rangle $$

Шаг З. Выполним измерения последних n битов. Результат этих измерений - вероятностный. Мы будем наблюдать одно из значений h, которое является степенью g по модулю N. Наш 3n-кубит сожмется в состояние, где последние n битов будут принимать значение h mod N. Что случится с первыми 2n битами? Все значения k такие, что $$g^k \ne h$$, исчезнут. Все же, результирующее состояние будет включать сумму, так как есть больше чем одно значение k, для которого $$g^k = h\; mod\; N$$. Обозначим через s минимальное значение k.

Поскольку m - порядок у, то имеем:

$$h=g^s=g^{s+m}=g^{s+2m}=g^{s+3m}=\dots\g^{s=(L-1)m}\; mod\; N,$$

где L - минимальное целое большее или равное $$(2^{2n} - s)/m$$. Тогда квантовое состояние, полученное в результате этого измерения, может быть записано как:

$$\frac{1}{\sqrtL}\sum_{j=0}^{L-1}|s+jm\rangle |h\rangle $$

Мы видим, что коэффициенты в этом состоянии формируют последовательность, которая является периодической с периодом m (который и должен быть определен):

$$ f_k=\frac{1}{\sqrt{L}} \begin{cases} 1,\text{ если k = s mod m}\\ 0,\text{ в противном случае } \end{cases}$$

Шаг 4. Применим квантовое преобразование Фурье к первым 2n битам. В результате получим состояние:

$$\sum_{r=0}^{2^{2n-1}-1}a_r|r \rangle|0 \rangle|h \rangle+b_r|r \rangle|1 \rangle|h \rangle$$

где $$а_r$$ и $$b_r$$. имеют пики в целых значениях, кратных частоте $$\omega = 2^{2n}/m$$ (смотри Упражнение в главе о дискретном преобразовании Фурье).

Шаг 5. Выполним измерения значений первых 2n - 1 битов. Результат измерений вероятностный с вероятностью наблюдения значения r, равной $$а_r^2 + b_r^2$$. С высокой вероятностью наблюдаемое значение r будет соответствовать пику и, следовательно, будет близко к целому числу, кратному $$\omega = 2^{2n}/m$$.

Запишем наблюденное значение r и повторим Шаги 1-5 несколько раз, сохраняя наблюдения $$r_1,r_2,\dots,r_l$$, - здесь l - небольшое число. Это завершает квантовую часть алгоритма.

Давайте опишем как можно определить значение m из наблюдаемых значений $$г_1, r_2,\dots , г_l$$. Как мы отмечали, $$r_1, r_2, \dots , r_l$$ близки к целым кратным $$\omega = 2^{2n}/m$$. Предположим, что $$r_i\approx k_i\omega$$. Мы надеемся, что $$НОД(k_1, \dots , k_l) = 1$$. Наши надежды вполне оправданы. В самом деле, вероятность того, что два больших случайных числа относительно просты, равна $$6/\pi^2 = 0.6079....$$ Для l больших случайных чисел эта вероятность задается инверсией так называемой дзета-функции: $$1/\zeta(l)$$. Например, для l= 6 вероятность того, что 6 случайных целых не имеют общего множителя равна $$1/\zeta(6) = 945/\pi^6 = 0.9829.$$

Наша цель определить значение w, поскольку тогда просто определить m из соотношения $$m = 2^{2n}/\omega$$. Хотя $$r_1, \dots , г_l$$ - целые кратные $$\omega$$, мы не можем использовать алгоритм Эвклида для поиска ы, хотя бы потому, что само значение $$\omega$$ не является целым числом. Поэтому давайте рассмотрим версию алгоритма Эвклида, которая находит приближенное значение НОД. Эта версия работает и для вещественных чисел.

Мы собираемся пояснить этот метод на примере. Пусть N = 989 и это число следует факторизовать. Мы хотим найти порядок m для g = 2 в мультипликативной группе $$Z_{989}^*$$, используя алгоритм Шора. Так как $$989 < 2^{10} = 1024$$, то $$n = 10$$. После Шага 2 алгоритма Шора получим кубит:

$$\frac{1}{2^{10}}\sum_{k=0}^{2^{20}-1}|k \rangle |2^k\; mod\;989 \rangle$$

На Шаге 3 измерим значение последних 10 битов с наблюдаемым случайным значением. Предположим, что результат этого измерения $$h = 2^{50} = 41\; mod\; 989$$. Тогда только слагаемые, где $$2^k = 41\; mod\; 989$$ выживут в результирующей сумме. Эти значения k формируют арифметическую прогрессию k = 50, 50 + m, 50 + 2m, .... Следовательно, последовательность коэффициентов в кубите теперь периодическая с периодом m. Применяя КПФ -квантовое преобразование Фурье на Шаге 5, получим состояние:

$$\sum_{r=0}^{2^{19}-1}a_r|r \rangle|0 \rangle |h \rangle+b_r|r \rangle|1 \rangle|h \rangle,$$

Коэффициенты Фурье имеют инки в точках r, близких к целым кратным $$\omega = 2^{20} /m$$. Для иллюстрации построим график вероятностей ау + Ь для r в пределах от 0 до 40000. Мы понимаем, что значения коэффициентов

кубита, хранимые в квантовом компьютере, недоступны непосредственно, и мы смогли построить этот график только лишь потому, что значение N мало и для него возможно вычислить коэффициенты Фурье на обычном компьютере. Этот графин показывает вероятности наблюдения каждого значения r, если бы мы проводили измерения первых 19 кубитов. Мы четко различаем пики на графине, которые означают, что некоторые значения r намного чаще появляются при измерениях, чем другие.

Приведем список вероятностей наблюдения значений r вблизи двух пиков:

$$r$$ $$а_r^2 + b_r^2$$

251926

251927

251928

251929

251930

251931

251932

251933

251934

0.0000071

0.0000124

0.0000271

0.0000991

0.0125868

0.0001465

0.0000329

0.0000141

0.0000078

$$r$$ $$a_r^2+b_r^2$$

435767

435768

435769

435770

435771

435772

435773

435774

435775

0.000054

0.000091

0.000186

0.000567

0.008652

0.002382

0.000373

0.000145

0.000076

Из этих таблиц видно, что некоторые значения r имеют намного большую вероятность наблюдения. Предположим мы выполнили квантовый алгоритм дважды и получили r = 435771 в качестве первого наблюдения, и r = 251930 как результат выполнения при втором запуске квантового алгоритма. Мы ожидаем, что эти значения близки к кратным частоты $$\omega = 2^{20}/m$$.

Давайте выполним алгоритм Эвклида для поиска наибольшего общего множителя $$r_1$$ и $$r_2$$. Разделим $$r_1$$ на $$r_2$$ с остатком:

$$r_3=r_1-r_2=183841$$

Этот остаток $$r_3$$ всегда меньше делителя $$r_2$$, но мы не ожидаем, что он на порядки меньше значения делителя. В самом деле, для 0 < с < 1 вероятность того, что $$r_3 < сг_2$$ равна с.

Давайте продолжим выполнять алгоритм Эвклида:

$$r_4= r_2- r_3 = 68089,\\ r_5= r_3- 2 * r_4= 47663,\\ r_6= r_4- r_5=20426,\\ r_7= r_5-2 * r_6= 6811,\\ r_8= r6-3 * r_7= 7.$$

На последнем шаге мы замечаем, что значение остатка $$r_8 = 7$$ на несколько порядков меньше значения делителя $$r_7 = 6811$$. Это и является признаком, когда алгоритм следует заканчивать, поскольку $$r_8\approx 0$$. Следовательно, $$r_7$$ является приближенным $$НОД(r_1, r_2)$$. Давайте определим соответствующие целые кратные:

$$\frac{r_1}{r_7}=\frac{435771}{6811}=63.98\dots,\;\; \frac{r_2}{r_7}=\frac{251930}{6811}=36.98\dots$$

Теперь можно получить более точное значение базовой частоты $$\omega$$:

$$\omega\approx \frac{435771}{64} \appros 6808.921\dots,\;\;\omega \approx\frac{251930}{37}\approx 6808.918\dots$$

Из соотношения $$\omega = 2^{20}/m$$ определим значение порядка m для элемента g = 2 в группе $$Z_{989}^*$$:

$$m\approx \frac{2^{20}}{\omega}\approx\frac{1048576}{6808.92}\approx154.0003\dots$$

Мы заключаем, что элемент группы g = 2 имеет порядок m = 154.

По теореме Лагранжа размер М = (р - 1) (q - 1) группы $$Z_{989}^*$$ является целым, кратным порядку любого элемента, М = mК. Так как величина М сравнима с N = рq = 989, то можно аппроксимировать значение неизвестного множителя К как:

$$K=\fracMm < \fracNm=\frac{989}{154}\approx6.42\dots$$

Взяв К = 6, получим значение М = 6m = 924.

Так как N = рq, М = (р - 1) (q - 1) = pq - р - q + 1, то имеем:

$$р+ = N- М+ 1 =989-924+1 =66.$$

В итоге неизвестные множители р и q находятся как корни квадратного уравнения с известными коэффициентами:

$$Х^2 - (р + q)Х + рq = 0,\\ Х^2 -66Х+989=0,\\ p=\frac{66+\sqrt{66^2-4*989}}{2}=43,\;\;q=\frac{66-\sqrt{66^2-4*989}}{2}=23$$

Можно проверить справедливость результатов факторизации:

$$43 * 23= 989.$$

Упражнение. Покажите, что в нашем описании алгоритма Шора шаг 3 может быть опущен.

Вернуться к учебному плану