OIB_4laba
.docxГУАП
КАФЕДРА №
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
|
|
|
|
Е.Д. Пойманова |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ |
ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ |
по курсу: ОСНОВЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ |
|
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. |
|
|
|
|
|
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2017
Цель работы
Освоение механизмов построения систем цифровой электронной подписи (ЭЦП) на основе открытых ключей системы Диффи-Хелмана.
Ход выполнения
Так как передаваемое сообщение может быть большой и непредсказуемой длины, то электронную цифровую подпись (далее – ЭЦП) ставят не на само сообщение, а на его хэш, который всегда фиксированной длины.
Для примера зашифруем сообщение «HELLO»
Параметры сообщения приведены в таблице 1
Сообщение |
Десятичный код символа |
Двоичный код символа |
H |
72 |
1001000 |
E |
69 |
1000101 |
L |
76 |
1001100 |
L |
76 |
1001100 |
O |
79 |
1001111 |
Таблица 1 – Параметры сообщения
Необходимо получить хэш данного сообщения. Пусть вектор инициализации H0=5110=001100112. Схема хэша приведена на рисунке 1.
Рисунок 1 – Схема хэша
Часть 1 – расчет параметров для ЭЦП
Процесс получения хэша представлен в таблице 2.
Таблица 2 – Процесс получения хэша
Число Н5=m=31 и будет являться хэшем сообщения «HELLO», на который будет накладываться ЭЦП.
Далее необходимо подобрать переменную k такую, чтобы выполнялось условие 1<k<p-1, причем k - взаимно простое с p-1. Два числа называются взаимно простыми, если их наибольший общий делитель – единица.
Вычисляем
Пусть p = 17
1<k<17-1
Взаимно простыми с числом 16 будут числа 1,3,5,7,9,11,13 и 15. Выберем число 7.
Итого k=7
Теперь необходимо вычислить первообразный корень по модулю p. Он находится при помощи формулы (g^l) !=1 mod(p) и функции Эйлера. Функция Эйлера от некоего числа равна количеству чисел, меньших данного и взаимно простых с ним.
l выбирается по формуле
1<=l<ф(p)
ф(p) = ф(17)=16.
Пусть тогда l=3
Теперь можно найти первообразный корень методом подбора
1^3 = 1 (mod17) условие не выполняется
2^3 = 1 (mod17) условие не выполняется
3^3 = 6 (mod17) условие выполняется
4^3 = 1 (mod17) условие не выполняется
5^3 = 6 (mod17) условие выполняется
Пусть g=5.
Первообразный корень по модулю 17 найден
Теперь надо вычислить число r=(g^k)mod(p)
r=(5^7)mod17 = 10
Итого r=10
Далее найдем переменную S
S=(m-x*r)*k^(-1) mod(p-1)
x-случайное число от 1 до 17.
Пусть х = 1
S = (31-1*10)/7 mod(16)=3
Полученные параметры (r,S) являются электронной подписью сообщения.
Также необходимо рассчитать y = g^x mod p.
y = 5^1 mod 17 = 5
y = 5
Часть 2 – проверка подлинности ЭЦП
Проверяем верность выражений:
0 < r < p и 0 < S < p-1
0 < 10 < 17 и 0 < 5 < 16
Оба условия выполнены, поэтому решаем уравнение проверки:
gm (mod p) = yr rs (mod p)
5^31 mod 17 = (5^10)*(10^3)mod 17
7 = 7
Тождественность выполняется, что свидетельствует о том, что сообщение не было прочитано третьей стороной или изменено.
Все рассчитанные параметры приведены в таблицах 3 и 4:
Исходные данные
p |
g |
x |
y |
17 |
5 |
1 |
5 |
Результаты вычислений (по модулю p)
m |
k |
r |
s |
gm |
yr |
rs |
yr rs |
31 |
7 |
10 |
3 |
7 |
9 |
14 |
7 |
Выводы
В результате выполнения лабораторной работы были отработаны навыки хэширования сообщений с последующим наложением на них ЭЦП, а также проверки полученного сообщения на подлинность.