Цифровая подпись

Как же осуществляется цифровая подпись? Рассмотрим еще один пример. Допустим, Сэм собирается отправить Тому контракт или номер своей кредитной карточки в цифровом виде. Для подтверждения подлинности этих документов Тому необходима цифровая подпись Сема. Сначала Сэм отправляет свой документ. Затем использует алгоритм хэширования для вычисления идентификатора этого документа, шифрует хэшированное значение с помощью своего личного ключа и отправляет его Тому. Это и есть цифровая подпись Сэма. Том с помощью того же алгоритма хэширования сначала вычисляет идентификатор принятого документа. Затем он расшифровывает значение, которое получил от Сэма, используя предоставленный Сэмом ключ общего пользования. Если два значения хэширования совпали, Том не только узнает, что этот документ подлинный, но и то, что подпись Сэма действительна. Понятно, что проведение коммерческих транзакций по такому сценарию значительно безопаснее, чем с использованием подписи от руки на бумаге, которую можно подделать. А если сведения, передаваемые Сэмом Тому, конфиденциальны (например, содержат номер кредитной карточки), то и их можно зашифровать так, чтобы прочитать их смог только Том.

Message Digest и цифровые сигнатуры

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

MessageDigest является компактной (128 бит) "перегонкой" вашего сообщения, подобно концепции контрольной суммы. Вы также можете представить MessageDigest как "отпечаток" сообщения. MessageDigest представляет ваше сообщение таким образом, что если это сообщение будет изменено каким-либо образом, то из изменившегося сообщения будет подсчитано отличное от первоначального MessageDigest. Это дает возможность обнаружения любых изменений, сделанных взломщиком. MessageDigest вычисляется, используя криптографически устойчивую однонаправленную хэш-функцию сообщения. Подбор сообщения, которое произведет идентичное MessageDigest является с вычислительной точки зрения неосуществимо для взломщика. В этом отношении МessageDigest намного лучше, чем контрольная сумма (т.к. легче подобрать разные сообщения, которые будут иметь одинаковые контрольные суммы). Невозможно получить исходное сообщение по его MessageDigest. Одного только MessageDigest не достаточно для аутентификации сообщения. Алгоритм MD опубликован, и не требует знания секретных ключей для вычислений. Если мы просто будем прикреплять MessageDigest к сообщению, то взломщик сможет изменить сообщение, вычислить его MessageDigest, прикрепить MessageDigest к измененному сообщению и отправить дальше. Для обеспечения реальной аутентификации отправитель шифрует (подписывает) MessageDigest своим секретным ключом.

MessageDigest вычисляется из сообщения отправителем. Секретный ключ отправителя используется для зашифровки MessageDigest и некоторого временного отпечатка (timestamp), формируя цифровую сигнатуру, или сертификат сигнатуры. Отправитель посылает цифровую сигнатуру перед сообщением. Получатель получает сообщение и цифровую сигнатуру, восстанавливает исходное MessageDigest из цифровой сигнатуры при помощи расшифровки открытым ключом отправителя, заново вычисляет MessageDigest сообщения и производит сравнение с полученным от отправителя MessageDigest. Если они равны, то над сообщением не было произведено никаких изменений.

Потенциальный взломщик должен либо произвести некоторое сообщение, которое порождает идентичное MessageDigest (что неосуществимо), или он должен создать новую цифровую сигнатуру от измененного MessageDigest (что также неосуществимо без знания секретного ключа отправителя).

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

Использование MessageDigest для формирования цифровых сигнатур имеет и другие преимущества кроме существенной быстроты, чем непосредственное подписывание полного сообщения секретным ключом. Message Digest позволяет сигнатурам быть cтандартной функцией небольшой фиксированной длины, вне зависимости от размеров действительного сообщения. Также позволяет контролировать целостность сообщения автоматически, способом подобным использованию контрольной суммы, позволяет сигнатуре храниться отдельно от сообщения, возможно в некотором публичном архиве, без разоблачения секретной информации о действительном сообщении, т.к. никто не сможет извлечь сообщение из его MessageDigest.

Схема. Система цифровой подписи.

1. Сэм обрабатывает по специальному алгоритму документ, который собирается отправить Тому, в результате получает некоторый параметр, рассчитанный на основании содержимого документа. Обычно это занимает значительно меньше места, чем исходный документ - параметр 128 или 160 двоичных разрядов.

2. Затем Сэм с помощью своего личного ключа шифрует полученный параметр. Итоговое значение служит цифровой подписью Сэма.

3. Сэм отправляет Тому документ и свою цифровую подпись.

4. Том пропускает документ, полученный от Тома, через тот же алгоритм, которым пользовался Том.

5. Затем Том дешифрует цифровую подпись, полученную от Сэма, пользуясь предоставленным Сэмом ключом общего пользования.

6. Том сравнивает значение параметра, полученного при выполнении операции 4, с расшифрованным значением цифровой подписи. Если эти значения совпадают, значит, подпись подлинная и документ "в пути" не подвергся изменениям. В противном случае, либо документ искажен, либо подпись подделана, либо и то и другое.

Вероятнее всего именно по такой, или подобной схеме будут вестись дела через Internet или любую другую информационную службу. Этот алгоритм послужил основой проекта государственного стандарта США - Digital Signature Standard (DSS). В нем применяются: алгоритм Secure Hash Algorith для расчета параметров хэширования и криптосистема с ключом общего пользования, известная под названием Digital Signature Algorith (DSA) и предназначенная для получения цифровой подписи по параметрам хэширования. Ряд пунктов проекта DSS подверглись критике, однако многие из замечаний исходили от групп, финансово заинтересованных в отклонении данного проекта.

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

Дополнительная литература

Для получения более подробной информации о функциях хэширования, криптосистемах с ключом общего пользования и общих положениях цифровой аутентификации данных можно рекомендовать прекрасную книгу Bruce Schneier "Applied Cryptography: Protocols, Algoriths, and Source Code in C" (1995, John Wiley & Sons). Недавно вышедшее ее второе издание - наиболее авторитетная работа подобного рода; в ней содержится обилие полезной информации, включая детальные описания алгоритмов, их математические выкладки и методы "вскрытия".


Страница: