Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР-12 (Изучение квантового алгоритма Шора факторизации модуля криптосистемы РША)

.docx
Скачиваний:
28
Добавлен:
05.05.2026
Размер:
319.17 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет Кибербезопасности

Кафедра Защищенных систем связи

Дисциплина Криптографические протоколы

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №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

| |1

| |83

| |64

| |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

Соседние файлы в предмете Криптографические протоколы