Алгоритмы шифрования данных
КОНТРОЛЬНАЯ
РАБОТА
по курсу «ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ»
Задания на контрольную работу
Задание №1. Шифр Цезаря.
Используя шифр Цезаря, зашифруйте свои данные:
Фамилию Имя Отчество.
Задание №2. Алгоритм шифрования ГОСТ 28147-89.
Выполните первый цикл алгоритма шифрования ГОСТ
28147 89 в режиме простой замены. Для получения 64 бит исходного текста
используйте 8 первых букв из своих данных: Фамилии Имени Отчества. Для
получения ключа (256 бит) используют текст, состоящий из 32 букв. Фразу придумайте
сами (не такую, как в примере). Первый подключ содержит первые 4 буквы.
Задание №3. Алгоритм шифрования RSA.
Сгенерируйте открытый и закрытый ключи в
алгоритме шифрования RSA,
выбрав простые числа p
и q из первой сотни
(не такие, как в примере). Зашифруйте сообщение, состоящее из ваших инициалов:
ФИО.
Задание №4. Функция хеширования.
Найдите хеш-образ своей Фамилии, используя
хеш-функцию
,
где n = pq, p, q взять из
Задания №3.
Задание №5. Электронная цифровая
подпись.
Используя хеш-образ своей Фамилии,
вычислите электронную цифровую подпись по схеме RSA.
Задание №1. Шифр Цезаря. Используя шифр Цезаря,
зашифруйте свои данные: Фамилию Имя Отчество
Используем алфавит, содержащий 33 буквы и
пробел, стоящий после буквы Я:
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯпробел
Ключом в шифре Цезаря возьмем число 4. Каждая
буква в исходном тексте сдвигается по алфавиту на 4 позиции. Таким образом,
получаем:
Задание №2. Алгоритм шифрования ГОСТ 28147-89.
Выполните первый цикл алгоритма шифрования ГОСТ
28147-89 в режиме простой замены (Приложение А). Для получения 64 бит исходного
текста используйте 8 первых букв из своих данных: Фамилии Имени Отчества. Для
получения ключа (256 бит) используют текст, состоящий из 32 букв. Первый
подключ содержит первые 4 буквы.
Исходные данные для шифрования: МАХНАЧ А
Для ключа возьмем последовательность состоящую
из 32 букв (любая фраза, состоящая из 32 букв):
ПРОВерка работоспособности сейфа
Для первого подключа Х используем первые 4 буквы
ключа: ПРОВ.
Переводим исходный текст и первый подключ в
двоичную последовательность (см. Приложение Б):
Исходный текст:
M
|
11001100
|
А
|
11000000
|
X
|
11010101
|
Н
|
11001101
|
А
|
11000000
|
Ч
|
11010111
|
пробел
|
00100000
|
А
|
11000000
|
Первый подключ X0
П
|
11001111
|
Р
|
11010000
|
О
|
11001110
|
В
|
11000010
|
Таким образом, первые 64 бита определяют входную
последовательность
L0: 11001100
11000000 11010101 11001101 - исх. стар. Биты
R0: 11000000
11010111 00100000 11000000 - исх. млад. биты
следующие 32 бита определяют первый подключ
Х0: 11001111 11010000 11001110 11000010 -
ключ
Этап I.
Найдем значение функции преобразования f(R0,X0)
(см. Приложение А)
Шаг 1). Вычисление суммы R0
и X0 по mod
232 (арифметическое сложение)
R0: 1100 0000
1101 0111 0010 0000 1100 0000
Х0: 1100 1111 1101 0000 1100 1110 1100 0010
0000 1010 0111 1110 1111 1000 0010
ШагH
2). Преобразование в блоке подстановки
Результат суммирования R0+X0
0000 1010 0111 1110 1111 1000 0010
преобразуем в блоке подстановки (см. Приложение
В). Для каждого 4-битного блока вычислим его адрес в таблице подстановки. Номер
блока соответствует номеру столбца, десятичное значение блока соответствует
номеру строки в таблице. Таким образом, 5-тый блок (1011) заменяется
заполнением 11-ой строки и пятого столбца в таблице подстановки (1110).
номера блоков:
7 6 5 4 3 2 1
0000 1010 0111 1110 1111 1000 0010
соответствующие номера строк в таблице
подстановки:
Заполнение
13 8 14 5 11 2 9
Результат (перевод заполнения в двоичную систему
счисления):
1101 1000 1110 0101 1011 0010 1001
Шаг3). Циклический сдвиг результата Шага 2 на 11
бит влево
0010 1101 1001 0100 1001 0110 1100
Таким образом, нашли значение функции f
(R0,X0).
Этап II.
Вычисляем R1= f(R0,X0)
ÅL0
Логическое сложение с исключением.
L0: 1100 1100 1100
0000 1101 0101 1100 1101
f(R0,X0):
0111 0010 1101 1001 0100 1001 0110 1100
R1: 1011 1110 0001
1001 1001 1100 1010 0001
Задание №3. Алгоритм шифрования RSA
Сгенерируйте открытый и закрытый ключи в
алгоритме шифрования RSA,
выбрав простые числа p
и q из первой сотни.
Зашифруйте сообщение, состоящее из ваших инициалов: ФИО.
Шаг1. Генерация ключей.
Выберем два простых числа р = 5 и q
= 19 Тогда
n = pq=5*19
= 95
и функция Эйлера
j(n)
= (p-1)(q-1)
= 4*18 = 72
Закрытый ключ d
выбираем из условий d < j(n)
и d взаимно просто с j(n),
т.е. d и j(n)
не имеют общих делителей. Пусть d
= 31.
Открытый ключ e
выбираем из условий e<j(n)
и de = 1(mod
j(n)):
e<72, 31e
=1 (mod 72).
Напомним, что операция mod
- это получение остатка от целочисленного деления.
Условие 31e
=1 (mod 72)
означает, что число 31e-1
должно делиться на 72 без остатка. Таким образом, для определения e
нужно подобрать такое число k,
что 31e-1 = 72 k.
При k=3
получаем 31e=216+1 или e=7.
В нашем примере
(7, 95) - открытый ключ,
( 31, 95) - секретный ключ.
Шаг 2.
Шифрование.
Представим шифруемое сообщение «МАС» как
последовательность целых чисел (порядковые номера букв в алфавите). Пусть буква
«М» соответствует числу 14, буква «А» - числу 1 и буква «С» - числу 19.
Зашифруем сообщение, используя открытый ключ (7,
95):
С1 = (147) mod
95= 79
С2 = (17) mod
95= 1
С3 = (197) mod
95= 19
Таким образом, исходному сообщению (14, 1, 19)
соответствует криптограмма (79, 1, 19).
Шаг3. Расшифрование
Расшифруем сообщение (79, 1, 19), пользуясь
секретным ключом (31,95):
М1
= ( 7931) mod 95 =14
М2
= (131) mod 95 = 1
МЗ
= ( 1931) mod 95 =19
В результате расшифрования было получено
исходное сообщение (14, 1, 19), то есть "МАС".
двоичный
хеширование шифрование алгоритм
Задание №4. Функция хеширования
Найти хеш-образ своей Фамилии, используя
хеш-функцию
где n = pq, p, q взять из
Задания №3.
Хешируемое сообщение «МАХНАЧ».
Выберем два простых числа р = 5 и q
= 19. Тогда
n = pq=5*19
= 95
Вектор инициализации H0
выберем равным 8 (выбираем случайным образом). Слово «МАХНАЧ» можно представить
последовательностью чисел (14,1,23,15,1,25) по номерам букв в алфавите. Таким
образом,
=95, H0=8, M1=14,
M2=1, M3=23, M4=15, M5=1, M6=25.
Используя формулу
,
получим хеш-образ сообщения
«МАХНАЧ»:
H1=(H0+M1)2 mod
n = ( 8 + 14)2 mod 95 =
484 mod 95 =92=(H1+M2)2
mod n = (153 + 16)2 mod 95 =
100 mod 95 = 53=(H2+M3)2
mod n = (156 + 9)2 mod 95 =
784 mod 95 = 244=(H3+M4)2
mod n = ( 55 + 10)2 mod 95 =
1521 mod 95 = 15=(H4+M5)2
mod n = ( 26 + 15)2 mod 95 =
4 mod 95 = 46=(H5+M6)2
mod n = (199 + 1)2
mod 95 = 841 mod 95 = 81
В итоге получаем хеш-образ сообщения
«МАХНАЧ», равный 81.
Задание №5. Электронная цифровая подпись. Используя
хеш-образ своей Фамилии, вычислите электронную цифровую подпись по схеме RSA
Пусть хеш-образ Фамилии равен 81, а закрытый
ключ алгоритма RSA
равен (31, 95). Тогда электронная цифровая подпись сообщения, состоящего из
Фамилии, вычисляется по правилу
s = 8131 mod
95 = 57.
Для проверки ЭЦП, используя открытый ключ (121,
247), найдем
H = 577 mod
95 = 81.
Поскольку хеш-образ сообщения совпадает с
найденным значением H, то подпись
признается подлинной.