Основные современные криптографические методы защиты электронной документации. Методы кодирования и шифрования в криптографии, страница 26

Для реализации схем ЭЦП требуется три следующих эффективно функционирующих алгоритма:

·  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