Файл: Р. Р. Фактиева должность, уч степень, звание подпись, дата инициалы, фамилия отчёт о лабораторной работе 2 шифр гаммирования по дисциплине Защита информации.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 150

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИфедеральное государственное автономное образовательное учреждение высшего образования«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»КАФЕДРА № 43ОТЧЁТ ЗАЩИЩЕН С ОЦЕНКОЙПРЕПОДАВАТЕЛЬ

кандидат тех. наук., доц.










Р. Р. Фактиева




должность, уч. степень, звание




подпись, дата




инициалы, фамилия




ОТЧЁТ О ЛАБОРАТОРНОЙ РАБОТЕ № 2

ШИФР ГАММИРОВАНИЯ

по дисциплине: Защита информации



РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР.

4931




09.04.2023




Д.С. Беляев










подпись, дата




инициалы, фамилия


















Санкт-Петербург
  1. Цель работы:

Освоение принципов шифрования гаммированием, изучение свойствгенератора псевдослучайных чисел, программная реализация метода гаммирования.Задание на лабораторную работу1. Выбрать в таблице 2.1 параметры генератора ПСЧ: A, C, T0, b в соответствии свариантом.2. Разработать программу шифрования и дешифрования текста.3. Произвести шифрование исходного текста

, получить шифрограмму, осуществить ее

дешифрование и сравнение с исходным текстом. Рекомендуется для представления

символов исходного текста использовать стандартную кодировку символов.

4. Произвести изменение одного или несколько параметров генератора случайных

чисел, осуществить получение шифрограммы и сравнение ее с предыдущим вариантом.

5. Результаты работы оформить в виде отчета.

Вариант 5


Номер варианта

Вид генератора ПСЧ

Количество разрядов b

5

Линейные конгруэнтные датчики ПС

7
  1. Описание используемого метода

Чтобы получить линейные последовательности элементов гаммы, длина которых непревышает размер шифруемых данных, используют датчики ПСЧ. Одним из хороших конгруэнтных генераторов является линейный конгруэнтный датчик ПСЧ. Он вырабатывает последовательности псевдослучайных чисел T(i), описываемые соотношениемгде A, C, M - константы, T0 - исходная величина, выбранная в качестве порождающего числа. Очевидно, что эти три величины и образуют ключ.Такой датчик ПСЧ генерирует псевдослучайные числа с определенным периодомповторения, зависящим от выбранных значений A и C. Значение M обычно устанавливаетсяравным 2b , где b -длина машинного слова в битах. Необходимо выбирать числа A и C так,чтобы период M был максимальным.Как показано Д.Кнуттом, линейный конгруэнтный датчик имеет максимальную длинуM тогда, когда C нечетное и A mod 4 = 1.В качестве примера использования линейного конгруэнтного датчика ПСЧ рассмотрим процесс шифрования исходного текста «абв». Пусть b = 5, т.е. для представления буквы исходного текста используется 5 двоичных разрядов. В соответствии с номером в алфавите буква «а» имеет двоичный код 00001; буква «б» имеет двоичный код 00010; буква «в» имеет двоичный код 00011. Исходный текст будет представлен в виде последовательности 00001 00010 00011.

Для формирования гаммы шифра выберем параметры датчика ПСЧ: A=5; C=3; T(0)=7; M=2b; b=5; M=25=32. Сформируем три псевдослучайных числа:T(1) = (5*7+3) mod 32 = 6 (00110);T(2) = (5*6+3) mod 32 = 1 (00001);T(3) = (5*1+3) mod 32 = 8 (01000).Полученная гамма шифра 00110 00001 01000. Зашифрованный текст получается путем наложения гаммы шифра на исходный текст (путем сложения по модулю 2):что соответствует шифрограмме «жвк», «ж» (седьмая буква в алфавите) имеет код 00111,«в» (третья буква в алфавите) имеет код 00011, «к» (одиннадцатая буква в алфавите) имеет код 01011.Дешифрование производится путем наложения той же гаммы на зашифрованныйтекст с помощью операции сложения по модулю 2. В результате получаем исходный текст «абв».
  1. Описание исходных данных

Параметры для программыA = 5, C = 3, T0 = 7, b = 11, M = 2b= 128На вход поступает строка, например: «Hello world!»
  1. Текст программы

#ПО ВАРИАНТУ# формировалие гаммы шифраT = 7A = 5C = 3# М это два в степени b=7M = 128#ЗАШИФРУЕМ# входное словоinput_str = input("Введите слово на английском:\n")print("Введённое слово:\n", input_str)# массив для кодированияmas_cod = []for word in input_str:mas_cod.append('{0:08b}'.format(ord(word)))# номера букв в английском алфавите в двоичном кодеprint("Двочный код букв в соответствии с их номером в таблице ASCII\n", mas_cod)# массив гамма шифраmas_gamma = []for n in range(len(mas_cod)):T = (A * T + C) % Mmas_gamma.append('{0:08b}'.format(T))print("Сформированнный гамма шифр\n",mas_gamma)mas = []for n in range(len(mas_cod)):a = mas_cod[n]b = mas_gamma[n]max_len = len(a)res = ''# Traverse the stringfor i in range(max_len):if a[i] == "1" and b[i] == "1":res += "0"if a[i] == "0" and b[i] == "0":res += "0"if a[i] == "1" and b[i] == "0":res += "1"if a[i] == "0" and b[i] == "1":res += "1"mas.append(res)print("после наложения гамма шифра на исходный текст\n", mas)output_str = ""mas_res = []for x in range(len(mas)):mas_res.append(chr(int(mas[x], 2)))output_str = ''.join(mas_res)print("Шифрограмма:\n",output_str)#РАСШИФРУЕМprint("РАСШИФРУЕМ")new_mas = []for n in range(len(mas_cod)):a = mas[n]b = mas_gamma[n]max_len = len(a)res = ''# Traverse the stringfor i in range(max_len):if a[i] == "1" and b[i] == "1":res += "0"if a[i] == "0" and b[i] == "0":

res += "0"

if a[i] == "1" and b[i] == "0":
res += "1"

if a[i] == "0" and b[i] == "1":
res += "1"

new_mas.append(res)
print("после наложения гамма шифра на зашифрованный текст\n", new_mas)

des_str = ""
mas_res = []
for x in range(len(new_mas)):
mas_res.append(chr(int(new_mas[x], 2)))

des_str = ''.join(mas_res)
print("Получаем исходный текст:\n",des_str)

  1. Результат работы программы

  1. Анализ результатов

Запустим для параметров A = 5, C = 3, T0 = 7, b = 11, M = 2b= 128Запустим для параметров A = 9, C = 4 , T0 = 3, b = 5, M = 2b= 32Шифрограмма изменилась в соответствии с изменением параметров модели при запуске, но это не повлияло на корректность работы программы.
  1. Выводы

Освоили принципы шифрования гаммированием, изучили свойствагенератора псевдослучайных чисел, написали программную реализацию метода гаммирования.