Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OIB_4laba

.docx
Скачиваний:
27
Добавлен:
06.06.2018
Размер:
176.4 Кб
Скачать

ГУАП

КАФЕДРА №

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

Е.Д. Пойманова

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

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

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

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ

ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ

по курсу: ОСНОВЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

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

СТУДЕНТ ГР.

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

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

Санкт-Петербург 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

Выводы

В результате выполнения лабораторной работы были отработаны навыки хэширования сообщений с последующим наложением на них ЭЦП, а также проверки полученного сообщения на подлинность.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]