ЛР-13.1 (Изучение дискретного алгоритма квантового логарифмирования Шора)
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Кибербезопасности
Кафедра Защищенных систем связи
Дисциплина Криптографические протоколы
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №13.1
Изучение дискретного алгоритма квантового логарифмирования Шора
(тема отчета)
Направление/специальность подготовки
10.03.01 Информационная безопасность
(код и наименование направления/специальности)
Студент:
Лянгузов Н. А., ИКБ-31
(Ф.И.О., № группы) (подпись)
Преподаватель:
Яковлев В.А
(Ф.И.О) (подпись)
Цель работы
Изучить алгоритм дискретного логарифмирования Шора на основе применения симулятора квантовых вычислений.
Вариант |
g |
x |
p |
22(7) |
9 |
2 |
17 |
Пример выполнения работы
Выписываем исходные данные из таблицы согласно варианту.
Вручную выполняем расчёт дискретного логарифма. Для этого находим всевозможные значения функции
и записываем их в таблицу.
a b |
0 |
1 |
2 |
3 |
|
5 |
6 |
7 |
8 |
9 |
10 |
11 |
… |
0 |
1 |
9 |
13 |
15 |
16 |
8 |
4 |
2 |
1 |
9 |
13 |
15 |
… |
1 |
2 |
1 |
9 |
13 |
15 |
16 |
8 |
4 |
2 |
1 |
9 |
13 |
… |
2 |
4 |
2 |
1 |
9 |
13 |
15 |
16 |
8 |
4 |
2 |
1 |
9 |
… |
3 |
8 |
4 |
2 |
1 |
9 |
13 |
15 |
|
8 |
4 |
2 |
1 |
… |
4 |
16 |
8 |
|
2 |
1 |
9 |
13 |
15 |
16 |
8 |
4 |
2 |
… |
5 |
15 |
16 |
8 |
4 |
2 |
1 |
9 |
13 |
15 |
16 |
8 |
4 |
… |
6 |
13 |
15 |
16 |
8 |
4 |
2 |
1 |
9 |
13 |
15 |
16 |
|
… |
7 |
9 |
13 |
15 |
16 |
8 |
4 |
2 |
1 |
9 |
13 |
15 |
16 |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
Можно
заметить, что значения в каждой строке
повторяются с периодичностью 8,
следовательно, период функции
.
Вычислим
дискретный логарифм
используя формулы периодов функции
для произвольной точки
Пусть
,
.
Тогда
Проверим первое равенство:
Проверим
второе равенство:
Значение
известно и равно 3, а значение
равно
.
То есть интересующая нас ячейка, имеющая
значение 4, находится в 3-й строке и имеет
номер столбца больше 2. Ближайшая ячейка,
удовлетворяющая этому условию – (9, 3).
Действительно,
– второе равенство выполняется.
Таким
образом,
.
Выполним проверку:
Найденное
значение
соответствует заданному, следовательно,
дискретный логарифм найден верно.
Выполним полуавтоматический расчёт дискретного логарифма с помощью квантового алгоритма Шора, используя для промежуточных вычислений программу QFT.exe.
Определим
необходимое число кубит в регистрах
и
.
Так
как период
функции
равен 8 из условия
.
То есть число необходимых кубит:
число состояний регистра:
.
Далее вычисляем состояния регистров на разных этапах выполнения алгоритма.
Установим
регистры
и
в начальное состояние:
Применим преобразование Адамара к регистрам :
Применим
гейт
к регистру
:
Запишем состояние регистров в таблицу.
|0⟩|0⟩|1⟩ |
|1⟩|0⟩|9⟩ |
|2⟩|0⟩|13⟩ |
|3⟩|0⟩|15⟩ |
|4⟩|0⟩|16⟩ |
|5⟩|0⟩|8⟩ |
|6⟩|0⟩|4⟩ |
|7⟩|0⟩|2⟩ |
|8⟩|0⟩|1⟩ |
|9⟩|0⟩|9⟩ |
|10⟩|0⟩|13⟩ |
|11⟩|0⟩|15⟩ |
|12⟩|0⟩|16⟩ |
|13⟩|0⟩|8⟩ |
|14⟩|0⟩|4⟩ |
|15⟩|0⟩|2⟩ |
... |
… |
… |
… |
… |
… |
… |
… |
|3⟩|3⟩|1⟩ |
|4⟩|3⟩|9⟩ |
|5⟩|3⟩|13⟩ |
|6⟩|3⟩|15⟩ |
|7⟩|3⟩|16⟩ |
|8⟩|3⟩|8⟩ |
|9⟩|3⟩|4⟩ |
|10⟩|3⟩|2⟩ |
… |
… |
… |
… |
… |
… |
… |
… |
|7⟩|15⟩|1⟩ |
|8⟩|15⟩|9⟩ |
|9⟩|15⟩|13⟩ |
|10⟩|15⟩|15⟩ |
|11⟩|15⟩|16⟩ |
|12⟩|15⟩|8⟩ |
|13⟩|15⟩|4⟩ |
|14⟩|15⟩|2⟩ |
|15⟩15|⟩|1⟩ |
|
|
|
|
|
|
|
Заметим, что в таблице каждая строка соответствует одному период функции, которая принимает значения 1, 9, 13, 15, 16, 8, 4, 2. Каждый столбец содержит значения и , которым соответствуют одно значение функции.
Измерим
.
То есть примем за
некоторое конкретное значение
.
Пусть
,
тогда:
Этому состоянию
соответствует суперпозиция аргументов:
Над полученной периодической суперпозицией в симуляторе КК выполняется обратное квантовое преобразование Фурье:
Для выполнения симуляции необходимо запустить программу QFT.exe и выполнить вычисления. Для этого вводим исходные параметры, как показано на рисунке.
Нажимаем кнопку «Рассчитать».
После выполнения работы программы
наблюдаем состояние регистров до и
после обратного квантового преобразования
Фурье. Каждая ячейка соответствует
одному из
состояний.
Для того чтобы измерить
регистры
и
необходимо
нажать на одну из подсвеченных ячеек
регистров.
Выполним постквантовую обработку. Для этого рассчитаем значения параметров
и
согласно формулам:
Полученные значения округлить до ближайшего целого числа.
Проверим, что
.
– выполняется.
Рассчитаем
с помощью расширенного алгоритма
Евклида:
Проверка:
Зная
,
найдем значение дискретного логарифма
:
Выполним проверку:
,
Рассчитанное значение соответствует заданному, следовательно дискретный логарифм найден верно.
Вывод
В ходе выполнения лабораторной работы был изучен алгоритм дискретного логарифмирования Шора на основе применения симулятора квантовых вычислений.
Санкт-Петербург
2026

4
16
4