Вычисления цифровой подписи
Выполнение интеративных шагов
Понятия хеширования и цифровая подпись документов
Хеширование (иногда «хэширование», англ. hashing) — преобразование по определённому алгоритму входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциямиили функциями свёртки, а их результаты называют хешем, хеш-кодом, хеш-суммой или сводкой сообщения (англ. message digest).
Режим шифрования — Режим шифрования метод применения блочного шифра, позволяющий преобразовать последовательность блоков открытых данных в последовательность блоков зашифрованных данных. При этом для шифрования одного блока могут использоваться данные другого
Вектор инициализации - случайное число, которое регулярно обновляется, передается по каналу управления и используется для инициализации алгоритма шифрования.
Используя данные задания 1.1, получить хеш – код m для сообщения М при помощи хеш – функции Н, взятой из рекомендаций МККТТ Х.509. Вектор инициализации Н0 выбрать равным нулю.
Вычислить цифровую подпись методом RSA под электронным документом М, используя рассчитанный хеш – код m и секретный ключ d.
Представить схему цифровой подписи с подробным описанием ее функционирования.
Хеш – функцию МККТТ Х.509 запишем следующим образом:
Hi = [( Hi -1 Å Mi )2] ( mod n ), где i = l , n , H 0 – вектор инициализации, М i =М1,М2,М3…,М 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, просмотров: 233.