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

Автор: Пользователь скрыл имя, 17 Ноября 2012 в 11:53, реферат

Описание работы

Контрольные суммы, контроль CRC, хэширование и цифровая подпись – базовые средства аутентификации при цифровой передаче данных. Представьте себе ситуацию: вам отправили по электронной почте документ с конфиденциальной информацией по финансированию на будущий год. Вам необходима абсолютная уверенность в том, что полученный файл совершено идентичен оригиналу и содержащиеся в нем цифры не были изменены "в пути". Пара скорректированных значений могут стоить вашей фирме круглой суммы. Подозрение, что документ "в пути" был подделан появляется если некоторые цифры не сходятся, а электронная передача велась через внешнюю почтовую систему.

Работа содержит 1 файл

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

— 105.00 Кб (Скачать)

     после вызова MD5Final() */

     } MD5_CTX;

 

 

Цифровая подпись и криптосистемы  с ключом общего пользования.

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

Смысл ключа  и пароля примерно одинаков. Допустим, Том желает, чтобы Сэм мог отправить ему зашифрованный документ, и оба они не хотели бы рисковать, передавая пароль или ключ по линиям связи, так как в этом случае он может быть кем-то перехвачен. Тогда Том может передать Сэму свой ключ общего пользования (схема 1).

Используя этот ключ, Сэм шифрует документ и отправляет его Тому. Том дешифрует документ с помощью своего личного ключа. Это единственный ключ, с помощью  которого можно восстановить документ, зашифрованный с применением ключа общего пользования, принадлежащего Тому. Тот факт, что ключ общего пользования Тома может стать кому-то известен, не имеет особого значения, потому что он абсолютно бесполезен для расшифровки документа. А личный ключ, известный одному лишь Тому, по открытым линиям связи не передавался; теоретически том хранит его только в собственной памяти и наоборот, работа других криптосистем с ключом общего пользования строится на обратном принципе: Сэм шифрует документ с помощью своего личного ключа и передает свой ключ общего пользования Тому, с помощью которого тот мог бы расшифровать этот документ. Существующие ныне криптосистемы с ключом общего пользования, такие, например, как система RSA (сокращение, составленное из первых букв фамилий трех создателей этого алгоритма), широко используются.

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

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 двоичных разрядов.

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

 

 

 

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

 

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

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

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

Дополнительные  сведения об особенностях контроля CRC и как программно реализовать  его алгоритм, можно найти в  книге W. David Schwaderer "C Programmer's Guide to NetBIOS" (1988, Howard W.Sams & Company) и в книге Joe Campbell "C Programmer's Guide to Serial Communications" (1987, Howard W.Sams & Company)


Информация о работе Цифровая подпись