Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Копия ЗАЧЁТКА 58.doc
Скачиваний:
63
Добавлен:
01.05.2015
Размер:
300.03 Кб
Скачать

Задача 2. Хеширование и цифровая подпись документов.

Используя данные задания 1.1, получить хеш – код m для сообщения М при помощи хеш-функции Н, взятой из рекомендаций МККТТ Х.509. Вектор инициализации Н0 выбрать равным нулю.

Вычислить цифровую подпись методом RSA под электронным документом М, используя рассчитанный хеш – код m и секретный ключ d.

Представить схему цифровой подписи с подробным описанием ее функционирования.

Хеш-функцию МККТТ Х.509 запишем следующим образом:

Hi=[(Hi-1  Mi)2] (mod n), где i=l,n, H0 – вектор инициализации, Мi123…,Мn - -длина блока.

Все блоки делят пополам и к каждой половине прибавляют равноценное количество единиц. С преобразованными таким образом блоками производят интеграционные действия.

Порядок вычисления хеш-кода:

а) Получить значение модуля: n=p*q=11*17=187

б) Представить сообщение в виде номеров букв русского алфавита в десятичном и двоичном видах:

Ч И С Л О

24 9 18 12 15

00011000 00001001 00010010 00001100 00001111

в) Разбить байт пополам, добавив в начало полубайта единицы и получить хешируемые блоки Мi:

M1

M2

M3

M4

M5

M6

M7

11110001

11111000

11110000

11111001

11110001

11110010

11110000

M8

M9

M10

11111100

11110000

11111111

г) Выполнить итеративные шаги:

Первая итерация

М1 

11110001

 

 Н0=0

00000000

 Н0  М1

11110001= 24110

 [(H0 M1)2] (mod187)

241 mod 187 = 54

 Н1

00110110

Вторая итерация

М2 

11111000

 

 Н1

00110110

 Н1  М2

11001110 = 20610

 [(H1 M2)2] (mod187)

206 mod 187 = 19

 Н2

00010011

Третья итерация

М3 

11110000

 

 Н2

00010011

 Н2  М3

11100011 = 22710

 [(H2 M3)2] (mod187)

227 mod 187 = 40

 Н3

00101000

Четвертая итерация

М4 

11111001

 

 Н3

00101000

 Н3  М4

11010001 = 20910

 [(H3 M4)2] (mod209)

209 mod 187 = 22

 Н4

00010110

Пятая итерация

М5 

11110001

 

 Н4

00010110

 Н4  М5

11100111 = 23110

 [(H4 M5)2] (mod187)

231 mod 187 = 44

 Н5

00101100

Шестая итерация

М6 

11110010

 

 Н5

00101100

 Н5  М6

11011110 = 22210

 [(H5 M6)2] (mod187)

222 mod 187 = 35

 Н6

00100011

Седьмая итерация

М7 

11110000

 

 Н6

00100011

 Н6  М7

11010011 = 21110

 [(H6 M7)2] (mod187)

211 mod 187 = 24

 Н7

00011000

Восьмая итерация

М8 

11111100

 

 Н7

00011000

 Н7  М8

11100100 = 22810

 [(H7 M8)2] (mod187)

228 mod 187 = 41

 Н8

00101001

Девятая итерация

М9 

11110000

 

 Н8

00101001

 Н8  М9

11011001 = 21710

 [(H8 M9)2] (mod187)

217 mod 187 = 30

 Н9

00011110

Десятая итерация

М10 

11111111

 

 Н9

00011110

 Н9  М10

11100001 = 22510

 [(H9 M10)2](mod187)

225 mod 187 = 38

 Н10

00100110

Таким образом, исходное сообщение ЧИСЛО имеет хэш – код m=38.

Для вычисления цифровой подписи используем следующую формулу:

S=md (mod n) = 387 mod 187 = 47

Пара (M, S) передается получателю как электронный документ М, подписанный цифровой подписью S, причем подпись S сформирована обладателем секретного ключа d.

Получив пару (M, S), получатель вычисляет хэш – код сообщения М двумя способами:

1) Восстанавливает хэш – код m’, применяя криптографическое преобразование подписи S с использованием открытого ключа e:

m’=Se (mod n) =4723 mod 187 = 38

2) Находит результат хеширования принятого сообщения с помощью той же хэш – функции: m=H(M) =38.

При равенстве вычисленных значений m’ и m получатель признает пару (M, S) подлинной.