Лабораторные и практики / 08_ЛР / 08_ЛР
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
_____________________________________________________________________________
Кафедра информационной безопасности телекоммуникационных систем
Дисциплина «Основы криптографии с открытыми ключами»
Лабораторная работа 8
«Изучение криптосистемы МАК-ЭЛИС»
Выполнила: студ. гр. .
. .
Проверил: проф. Яковлев В.А..
Санкт-Петербург
2021
Цель лабораторной работы
Изучить преобразования, выполняемые при шифровании и дешифровании сообщений в системе Мак-Элис, а также простейшие попытки ее взлома.
Ход работы
Генерирование порождающей матрицы
Выбираем следующие параметры криптосистемы Мак-Элис:
Длина кодового слова: бита
Длина информационного сообщения: бит
Число исправляемых ошибок:
Неприводимый полином:
Минимальное кодовое расстояние:
Генерируем порождающую матрицу в программе MAGMA.exe:
Рисунок 1. Генерация порождающей матрицы.
Рисунок 2. Сгенерированная матрица.
Генерация ключей
;
.
Запускаем программу McEliece.exe. Загружаем сгенерированную ранее порождающую матрицу G:
Рисунок 3. Загрузка порождающей матрицы G.
Генерируем не сингулярную (невырожденную) матрицу S:
Рисунок 4. Генерация матрицы S.
Генерируем перестановочную матрицу P:
Рисунок 5. Генерация матрицы P.
Получаем произведение матриц G*P:
Рисунок 6. Произведение G*P.
Рисунок 7. Проверка произведения матриц G и P.
Вычисляем матрицу путем произведения матриц S и (G*P):
Рисунок 8. Вычисление матрицы .
Рисунок 9. Проверка произведения матриц S и (G*P).
Шифрование
Выбираем сообщение в виде двоичной последовательности длиной k = 17 бит:
Сообщение: 00111001010100101
Переходим во вкладку «Шифрование». Вводим сообщение, генерируем случайный двоичный вектор Z длины n, и веса (т.е. числа единиц в нём) не более , вычисляем произведение сообщения и матрицы (S*G*P): . Вычисляем криптограмму .
Рисунок 10. Шифрование сообщения.
Полученная криптограмма: 10111100001110010101100110101001
Дешифрование
Переходим во вкладку «Дешифрование». Вычисляем вектор , а также получаем матрицу, обратную P:
Рисунок 11. Вычисление вектора .
Путем вычитания двоичного вектора ошибок Z исправим не более ошибок в , что даст некоторый двоичный вектор длины k:
Рисунок 12. Исправление ошибок в .
Восстанавливаем сообщение как , а также получаем матрицу, обратную S:
Рисунок 13. Восстановление сообщения.
Восстановленное сообщение: 00111001010100101
Исходное сообщение: 00111001010100101
Видим, что расшифрованное сообщение такое же, как двоичная последовательность, зашифрованное ранее.
Криптоанализ
Переходим во вкладку «Криптоанализ» и нажимаем кнопку «Атака»:
Рисунок 14. Атака на криптосистему.
Для рассматриваемого примера атака прошла успешно. Видно, что полученное сообщение совпадает с сообщением, которое зашифровывали ранее.
Рассчитаем вероятности успеха атаки на КС Мас-Элис при длине кодового слова n = 32 и различном количестве информационных символов k:
Вероятность атаки:
При k = 22:
При t = 1:
При t = 2:
При k = 17:
При t = 1:
При t = 2:
При t = 3:
При k = 12:
При t = 1:
При t = 2:
При t = 3:
При t = 4:
При k = 7:
При t = 1:
При t = 2:
При t = 3:
При t = 4:
При t = 5:
Таблица 1. Вероятности успеха криптоатаки при различном количестве искусственно вводимых ошибок.
-
k
t
1
2
3
4
5
22
0,313
0,091
–
–
–
17
0,469
0,212
0,092
–
–
12
0,625
0,383
0,230
0,135
–
7
0,781
0,605
0,464
0,352
0,264
График 1. Зависимость вероятности успеха криптоатаки от количества информационных символов.
Из диаграммы видно, что при увеличении длины информационного сообщения k вероятность успешного проведения криптоатаки снижается.
Вывод
В ходе выполнения данной лабораторной работы были изучены преобразования, выполняемые при шифровании и дешифровании сообщений в системе Мак-Элис, а также разобран простейший способ атаки на неё.