Для реализации схем ЭЦП требуется три следующих эффективно функционирующих алгоритма:
· Ak – алгоритм генерации секретного и открытого ключей для подписи сообщений и ее проверки;
· As – алгоритм генерации (проставления) подписи с использованием секретного ключа s;
· Ak– алгоритм проверки (верификации) подписи с использованием открытого ключа р.
Алгоритмы должны быть разработаны так, чтобы выполнялось основное принципиальное свойство, - свойство невозможности получения нарушителем (противником) алгоритма As из алгоритма Aр .
Ключ s хранится в секрете, а открытый ключ р делается общедоступным. Это делается, как правило, путем помещения открытых ключей пользователей в открытый сертифицированный справочник. Сертификация открытых ключей справочника выполняется некоторым дополнительным элементом, которому все абоненты доверяют обработку этих ключей. Обычно этот элемент называют Центром обеспечения безопасности – ЦОБ.
Непосредственно процесс подписи осуществляется посредством алгоритма As. В этом случае значение с = As (т) – есть подпись сообщения т, полученная при помощи алгоритма As и ключа s. Подпись с вместе с сообщением т передаются по каналам связи абоненту-получателю сообщений для верификации, т. е. для проверки действительно или ложно сообщение.
При введении в сообщение цифровой подписи можно использовать все методы шифрования, которые используются и при шифровании самих сообщений. При этом сама подпись получается в результате свертки сообщения в некоторую последовательность символов с помощью специальной функции, которая называется «хеш-функцией», а сам процесс свертки называется хешированием сообщений. Таким образом, каждое новое сообщение может иметь свою подпись. Вероятность совпадения значений хеш-функций двух различных документов должна быть очень малой.
При получении сообщения адресат расшифровывает подпись, вновь выполняет процедуру хеширования и при совпадении результата убеждается в подлинности передающего абонента.
Существует немало проблем, связанных с корректной организацией схем ЭЦП. Так, в случае, если подписываемое сообщение велико (большой текст, файл и т. д.), необходимо или разбивать это сообщение на блоки и подписывать каждый блок отдельно, или пользоваться эффективными безопасными хеш-функциями, которые позволяют сжимать информацию до приемлемого для ЭЦП размера. Кроме того, необходимо защищаться от задержки или переповтора сообщений, например, при помощи проставления на сообщения меток времени.
Хеш-функции отображают сообщения произвольной длины в сообщения фиксированной длины, называемые хеш-кодами.
Рассмотрим схему формирования цифровой подписи на применении криптоалгоритма RSA.
Пример 7.
Воспользуемся выше указанным словом БЕЗОПАСНОСТЬ и его уже генерированными открытым и секретным ключами: (29, 91) – открытый ключ, а (5, 91) - секретный ключ.
После того, как было осуществлено шифрование, производится хеширование блоков (букв) исходного сообщения:
Б Е З О П А С Н О С Т Ь
2 6 8 15 16 1 18 14 15 18 19 29
Применяется алгоритм: Hi = [(Hi-1 Mi)2] modn, гдеi = 1…k,
тогда при H0= 4 и Mi= {2, 6, 8, 15, 16, 1, 18, 14, 15, 18, 19, 29} получится:
H1 = [(H0 + M 1)2] mod n = ( 4 + 2)2 mod 91 = 36mod91 = 36
H2 = [(H1 + M 2)2] mod n = (36 + 6)2 mod 91 = 5184mod91 = 35
H3 = [(H2 + M 3)2] mod n = (35 + 8)2 mod 91 = 1849mod91 = 29
H4 = [(H3 + M 4)2] mod n = (29 + 15)2 mod 91 = 1936mod91 = 25
H5 = [(H4 + M 5)2] mod n = (25 + 16)2 mod 91 = 1681mod91 = 43
H6 = [(H5 + M 6)2] mod n = (43 + 1)2 mod 91 = 2025mod91 = 23
H7 = [(H6 + M7)2] mod n = (23 + 18)2 mod 91 = 1681mod91 = 43
H8 = [(H7 + M 8)2] mod n = (43 + 14)2 mod 91 = 3249mod91 = 64
H9 = [(H8 + M 9)2] mod n = (64 + 15)2 mod 91 = 6241mod91 = 53
H10 = [(H9 + M 10)2] mod n = (53 + 18)2 mod 91 = 5014mod91 = 36
H11 = [(H10 + M 11)2] mod n = (36 + 19)2 mod 91 = 3025mod91 = 22
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.