Настало время связать воедино все разработанные нами нити исследований и описать квантовый алгоритм Шора факторизации больших целых чисел.
Пусть р и 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) - эффективно вычисляется алгоритмом Эвклида.
Из теоремы Лагранжа следует, что М делится на наименьшее общее кратное порядков элементов. Для элементов, перечисленных выше, НОК равно:
В применениях к криптографии числа (р - 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 - периодическая с периодом равным порядку элемента 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 - порядок у, то имеем:
где L - минимальное целое большее или равное $$(2^{2n} - s)/m$$. Тогда квантовое состояние, полученное в результате этого измерения, может быть записано как:
Мы видим, что коэффициенты в этом состоянии формируют последовательность, которая является периодической с периодом m (который и должен быть определен):
Шаг 4. Применим квантовое преобразование Фурье к первым 2n битам. В результате получим состояние:
где $$а_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 алгоритма Шора получим кубит:
На Шаге 3 измерим значение последних 10 битов с наблюдаемым случайным значением. Предположим, что результат этого измерения $$h = 2^{50} = 41\; mod\; 989$$. Тогда только слагаемые, где $$2^k = 41\; mod\; 989$$ выживут в результирующей сумме. Эти значения k формируют арифметическую прогрессию k = 50, 50 + m, 50 + 2m, .... Следовательно, последовательность коэффициентов в кубите теперь периодическая с периодом m. Применяя КПФ -квантовое преобразование Фурье на Шаге 5, получим состояние:
Коэффициенты Фурье имеют инки в точках 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}^*$$:
Мы заключаем, что элемент группы g = 2 имеет порядок m = 154.
По теореме Лагранжа размер М = (р - 1) (q - 1) группы $$Z_{989}^*$$ является целым, кратным порядку любого элемента, М = mК. Так как величина М сравнима с N = рq = 989, то можно аппроксимировать значение неизвестного множителя К как:
Взяв К = 6, получим значение М = 6m = 924.
Так как N = рq, М = (р - 1) (q - 1) = pq - р - q + 1, то имеем:
В итоге неизвестные множители р и q находятся как корни квадратного уравнения с известными коэффициентами:
Можно проверить справедливость результатов факторизации:
$$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) - эффективно вычисляется алгоритмом Эвклида.
Из теоремы Лагранжа следует, что М делится на наименьшее общее кратное порядков элементов. Для элементов, перечисленных выше, НОК равно:
В применениях к криптографии числа (р - 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 - периодическая с периодом равным порядку элемента 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 - порядок у, то имеем:
где L - минимальное целое большее или равное $$(2^{2n} - s)/m$$. Тогда квантовое состояние, полученное в результате этого измерения, может быть записано как:
Мы видим, что коэффициенты в этом состоянии формируют последовательность, которая является периодической с периодом m (который и должен быть определен):
Шаг 4. Применим квантовое преобразование Фурье к первым 2n битам. В результате получим состояние:
где $$а_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 алгоритма Шора получим кубит:
На Шаге 3 измерим значение последних 10 битов с наблюдаемым случайным значением. Предположим, что результат этого измерения $$h = 2^{50} = 41\; mod\; 989$$. Тогда только слагаемые, где $$2^k = 41\; mod\; 989$$ выживут в результирующей сумме. Эти значения k формируют арифметическую прогрессию k = 50, 50 + m, 50 + 2m, .... Следовательно, последовательность коэффициентов в кубите теперь периодическая с периодом m. Применяя КПФ -квантовое преобразование Фурье на Шаге 5, получим состояние:
Коэффициенты Фурье имеют инки в точках 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}^*$$:
Мы заключаем, что элемент группы g = 2 имеет порядок m = 154.
По теореме Лагранжа размер М = (р - 1) (q - 1) группы $$Z_{989}^*$$ является целым, кратным порядку любого элемента, М = mК. Так как величина М сравнима с N = рq = 989, то можно аппроксимировать значение неизвестного множителя К как:
Взяв К = 6, получим значение М = 6m = 924.
Так как N = рq, М = (р - 1) (q - 1) = pq - р - q + 1, то имеем:
В итоге неизвестные множители р и q находятся как корни квадратного уравнения с известными коэффициентами:
Можно проверить справедливость результатов факторизации:
$$43 * 23= 989.$$Упражнение. Покажите, что в нашем описании алгоритма Шора шаг 3 может быть опущен.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.