Скачиваний:
38
Добавлен:
29.06.2022
Размер:
1.18 Mб
Скачать

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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

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

(СПбГУТ)

_____________________________________________________________________________

Кафедра информационной безопасности телекоммуникационных систем

Дисциплина «Основы криптографии с открытыми ключами»

Практическое задание 7

«Изучение квантового алгоритма Шора факторизации модуля криптосистемы РША»

Выполнила: студ. гр. .

. .

Проверил: проф. Яковлев В.А..

Санкт-Петербург

2021

Цель работы

Ознакомление с квантовым алгоритмом факторизации Шора и основами квантовых вычислений, наблюдение принципа работы квантового алгоритма в симуляции. Изучение способа факторизации модуля методом поиска периода для взлома криптосистем РША.

Программное обеспечение

Для работы используются программы QuantumSimulator.exe и ContFrac.exe из учебного каталога.

Задание

  1. Найти период функции , где , методом простого перебора. Использовать найденный период для факторизации модуля . Параметры и заданы в соответствии с вариантом из таблицы

  1. Ознакомиться с квантовой частью алгоритма Шора и выполнить вручную процесс квантового возведения в степень в виде записи состояния регистров для двух периодов. Выбрать любое значение и составить для него суперпозицию состояний регистра .

  2. Рассчитать непрерывную дробь вида , где – двузначный номер студента в журнале (для номеров 01–09 взять 31–39), – двузначный номер группы, а – сгенерированное на основе полученного знаменателя в программе ContFrac.exe число.

  3. Ознакомиться с выполнением квантового алгоритма Шора с помощью программы-симулятора QuantumSimulator.exe, проанализировать полученные результаты и сделать выводы.

Таблица 1. Вариант задания для выполнения лабораторной работы.

6

6

21

Выбор

2

21

Так как gcd(a,M) = gcd(6,21)=3 ≠ 1,

выберем а=2, тогда gcd(a,M) = gcd(2,21) =1 – условие соблюдается.

Ход работы

  1. Найдем период функции , где , методом простого перебора.

НОД(2,21)=1, рассмотрим функцию

Таблица 2. Функция

х

0

1

2

3

4

5

6

7

8

9

10

11

12

13

20

21

22

23

24

25

26

27

28

29

210

211

212

213

1

2

4

8

16

11

1

2

4

8

16

11

1

2

Из таблицы видно, что период повторения функции r = 6.

Поскольку r – четное, то его можно представить как r = 2k.

Тогда получим

Тогда, используя формулу разности квадратов, запишем

С помощью алгоритма Евклида мы можем найти числа p и q как и .

Для r = 6:

Проверяем:

  1. Выполним квантовое возведение в степень для двух периодов.

Для составить суперпозицию состояний регистра .

Для данного варианта М=21, М2=441. Тогда , а состояние будет иметь вид:

.

Тогда каждому фиксированному состоянию регистра , соответствует последовательность значений регистра (Таблица 3):

Таблица 3. Состояния регистров

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

,

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

  1. Рассчитаем непрерывную дробь вида , где – номер студента по варианту (для номеров 01–09 взять 31–39), – номер группы, а – сгенерированное на основе полученного знаменателя в программе CoutFrac.exe число.

Номер студента из группы №84 по журналу 06, то есть в соответствии с заданием для данного варианта знаменатель непрерывной дроби имеет вид 3684. Запустим программу CountFrac.exe и выберем вариант «Сгенерировать числитель»:

Соседние файлы в папке 07_ЛР