Понятия хеширования и цифровая подпись документов.
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Вычисления цифровой подписи

Выполнение интеративных шагов

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

Хеширование (иногда «хэширование», англ. hashing) — преобразование по определённому алгоритму входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциямиили функциями свёртки, а их результаты называют хешем, хеш-кодом, хеш-суммой или сводкой сообщения (англ. message digest).

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

Вектор инициализации - случайное число, которое регулярно обновляется, передается по каналу управления и используется для инициализации алгоритма шифрования.

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

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

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

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

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

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

Необходимо получить хеш – код сообщения ПРЕДЕЛ при помощи хеш функции Х.509 с параметрами p=3, q=11.

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

а) получить значение модуля: n=pq= 3*11=33;

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

 

П Р Е Д Е Л

16 17 6 5 6 12

00010000,  00010001,  00000110, 00000101, 00000110, 0001100 :

 

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

 

M 1 M 2 M 3 M 4 M5 M6
11110001 11110000 11110001 11110001 11110000 11110110
M 7 M 8 M 9 M 10 M 11 M 12
11110000 11110101 11110000 11110110 11110000 11111100

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

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

М1

11110001

Å

 

Н0=0

00000000

Н0 Å М1

11110001=24110

[(H0Å M1)2] (mod 33)

2412 mod 33 = 10

Н1

1010=00001010

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

М2

11110000

Å

 

Н1

00001010

Н1 Å М2

11111010=25010

[(H1Å M2)2] (mod 33)

2502 mod 33 = 19

Н2

00010011

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

М3

11110001

Å

 

Н2

00010011

Н2 Å М3

11100010=22610

[(H2Å M3)2] (mod 33)

2262 mod 33 = 28

Н3

000 11100

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

М4

11110001

Å

 

Н3

00011100

Н3 Å М4

11101101=23710

[(H3Å M4)2] (mod 33)

2372 mod 33 = 6

Н4

00000110

 

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

 

М5

11110000

Å

 

Н4

00000110

Н4 Å М5

11110110=24610

[(H4 Å M5)2] (mod 33)

2462 mod 33 = 15

Н5

0000 1111

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

М6

11110110

Å

 

Н5

00001111

Н5 Å М6

11111001=24910

[(H5Å M6)2] (mod 33)

2492 mod 33 =18

Н6

000 10010

 

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

М7

11110000

Å

 

Н6

00010010

Н6 Å М7

11100010 = 22610

[(H6Å M7)2] (mod 33)

2262 mod 33 = 28

Н7

000 11100

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

М8

11110101

Å

 

Н7

00011100

Н7 Å М8

11101001= 233

[(H7Å M8)2] (mod 33)

2332 mod 33 = 2

Н8

00000010

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

М9

11110000

Å

 

Н8

00000010

Н8 Å М9

11110010 = 24210

[(H8Å M9)2] (mod 33)

2422 mod 33 = 11

Н9

00001011

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

М10

11110110

Å

 

Н9

00001011

Н9 Å М10

11111101 = 253

[(H9Å M10)2] (mod 33)

2532 mod 33 = 22

Н10

00010110

 

 

Одиннадцатая итерация

М11

11110000

Å

 

Н10

00010110

Н10 Å М11

11100110 =23010

[(H10ÅM11)2] (mod 33)

2302 mod 33 = 32

Н11

00 100000

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

М12

11111100

Å

 

Н11

00100000

Н11 Å М12

11011100 = 22010

[(H11ÅM12)2] (mod 33)

2202 mod 33 = 22

Н12

00010110

 

Таким образом, исходное сообщение ПРЕДЕЛ имеет хеш – код m =22.

Вычисления цифровой подписи

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

S=md (mod n) = 223 mod 33 = 22

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

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

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

m’=Se (mod n) =227 mod 33 = 22

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

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

Контрольные вопросы

1. Изложите принципиальную схему организации секретной связи с использованием системы шифрования с открытым ключом.

2. Изложите принципиальную схему организации обмена документами, заверенными цифровой подписью.

3. Перечислите основные требования, предъявляемые к хеш-функции, пригодной для использования при вычислении цифровой подписи документа.

4. Каким образом с помощью криптосистемы RSA можно организовать передачу шифрованных сообщений, подлинность которых подтверждена цифровой подписью? Приведите примеры.
Расчетно-графическое задание № 2


Дата: 2019-11-01, просмотров: 198.