ЛР-12 (Изучение квантового алгоритма Шора факторизации модуля криптосистемы РША)
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Кибербезопасности
Кафедра Защищенных систем связи
Дисциплина Криптографические протоколы
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №12
Изучение квантового алгоритма Шора факторизации модуля криптосистемы РША
(тема отчета)
Направление/специальность подготовки
10.03.01 Информационная безопасность
(код и наименование направления/специальности)
Студент:
Лянгузов Н. А., ИКБ-31
(Ф.И.О., № группы) (подпись)
Преподаватель:
Яковлев В.А
(Ф.И.О) (подпись)
Цель лабораторной работы
Ознакомление с квантовым алгоритмом факторизации Шора и основами квантовых вычислений, наблюдение принципа работы квантового алгоритма в симуляции. Изучение способа факторизации модуля методом поиска периода для взлома криптосистем РША.
Последовательность шагов в алгоритме Шора:
Выполнение лабораторной работы
Номер варианта |
a |
M |
22 |
9 |
91 |
Факторизация M вручную
НОД(9, 91) = 1
Рассмотрим функцию f(x) = 9x mod 91 и найдем ее период.
x |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
… |
ax |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
|
ax mod 91 |
1 |
9 |
81 |
1 |
9 |
81 |
1 |
9 |
81 |
1 |
|
Из таблицы видно, что период повторения функции r = 3, но для работы алгоритма Шора r должно быть четное. Проверим в программе.
Возьмем a = 83. Найдем период функции f(x) = 83x mod 91. НОД(83, 91) = 1.
x |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
… |
ax |
830 |
831 |
832 |
833 |
834 |
835 |
836 |
837 |
838 |
839 |
|
ax mod 91 |
1 |
83 |
64 |
34 |
1 |
83 |
64 |
34 |
1 |
83 |
|
Получили
r
= 4 = 2k,
где k
= 2. Тогда получим ar
= a2k
= 1 mod
M
или a2k
– 1 = 0 mod
M.
Используя формулу
разности квадратов, запишем
и
,
что означает наличие общего множителя
у M
и
.
Следовательно, с помощью алгоритма
Евклида мы можем найти числа p
и q
как
и
.
Для r = 4:
p = НОД((a2 + 1), M) = НОД(6890, 91) = 13
q = НОД((a2 – 1), M) = НОД(6888, 91) = 7
Проверим: p * q = 13 * 7 = 91 = M. Далее на основании известных p и q для криптосистемы РША можно вычислить функцию Эйлера и секретный ключ. Таким образом, была произведена успешная факторизация модуля M = 91 и получено его разложение как M = 13 * 7. Также проверим в программе.
Квантовая часть.
Ознакомимся
с квантовой частью алгоритма Шора и
составим суперпозицию регистра |x
для y
= 64.
Для данного варианта M2 = 912 = 8281. Тогда N = 2n ≥ M2 → N = 16384 = 214, а состояние φ2 будет иметь вид:
φ2
=
=
[|0
|1
+|1
|83
+|2
|64
+|3
|34
+|4
|1
+|5
|83
+|6|64
+|7
|34
+|8
|1
+…+|
].
Тогда каждому фиксированному состоянию регистра |y , соответствует последовательность значений регистра |x .
|0 |1 |
|1 |83 |
|2 |64 |
|3 |34 |
|4 |1 |
|5 |83 |
|6 |64 |
|7 |34 |
… |
… |
… |
… |
|24 |1 |
|25 |83 |
|26 |64 |
|27 |34 |
… |
… |
… |
… |
| |
| |
| |
| |
После измерения состояния регистра |y в соответствии с заданием получили фиксированное состояние |y = 64, которому соответствует последовательность значений x вида:
φ2
=
=
,
где
A
≈
,
N
– r
≤ Ar
≤ N
+ r,
l
= 2, l
– сдвиг относительно начала координат
(нулевого состояния регистра |y
).
Таким образом, было рассмотрено состояние регистров на этапе выполнения квантового возведения в степень и получена суперпозиция состояний в регистре |x , соответствующих фиксированному состоянию регистра |y – y = 64.
Факторизация M с помощью программы-симулятора
Рассмотрим процесс симуляции выполнения квантового алгоритма Шора для модуля M = 91. Программой было выбрано целое число a = 8, количество кубит, необходимое для задания размера квантовых регистров n = 14 и, соответственно, в этом случае количество состояний каждого регистра N = 16384.
Проверим: M2 = 912 = 8281 < 16384 = N = 214 = 2n – верное, НОД(a, M) = НОД(83, 91) = 1 – верное, так как 91 = 13 * 7. Модуль задан по варианту, число a программа выбирает случайно.
В результате квантового возведения в степень для функции 8x mod 91 для всех состояний регистра x в регистре y были получены значения: 1, 8, 57 и 64.
В результате измерения состояния регистра y было получено фиксированное значение y = 64, которому и соответствует суперпозиция периодических последовательностей состояний регистра x.
Эта суперпозиция может быть описана как
φ
=
Получили значение в результате применения квантового преобразования Фурье для суперпозиции, содержащейся в регистре |x .
В результате применения состояния регистра |x было выбрано фиксированное значение m = 8192.
Дробь
вида
=
передается на постобработку, которая
выполняется на классическом компьютере.
Получаем разложение непрерывной дроби
=
= 0 +
находим подходящие дроби и анализируем
их знаменатели. Откуда находим и возможные
периоды {1, 2}.
Из тех периодов удовлетворяет условиям, необходимым для определения истинного периода только r = 2: r = 2 < M – 1 = 90 и r – четное число. Можно убедиться в этом, сравнив результаты с ручным вычислением периода функции ax mod M.
На основании полученного r = 2 (k = 1) рассчитаем коэффициенты разложения M = 91:
p = НОД(831 + 1, 91) = НОД(84, 91) =7
q = НОД(831 – 1, 91) = НОД(82, 91) = 1
Подберем q на основании вычисленного p: q = 91 / 7 = 13
Проверим факторизацию модуля M = 91 = 7 * 13. Факторизация была произведена успешно.
Вывод
В ходе выполнения лабораторной работы ознакомились с квантовым алгоритмом факторизации Шора и основами квантовых вычислений, изучили принцип работы квантового алгоритма в симуляции. Изучили способ факторизации модуля методом поиска периода для взлома криптосистем РША.
Санкт-Петербург
2026

|1
|83
|64
|34