Основы криптографии

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



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

Обычно целая сеть пользователей согласовывает используемую криптосистему. У каждого из них есть открытый и закрытый ключ, открытые ключи помещаются в общедоступной базе данных . Теперь протокол выглядит еще проще:

  1. A извлекает открытый ключ B из базы данных.
  2. A шифрует свое сообщение с помощью открытого ключа B и посылает его B.
  3. B расшифровывает сообщение А с помощью своего закрытого ключа.

В первом протоколе B должен был послать А ее открытый ключ прежде, чем она могла отправить ему сообщение. Второй протокол больше похож на обычную почту. B не участвует в протоколе до тех пор, пока он не начнет читать сообщение. Достаточно хорошим примером использования системы с открытым ключом является популярная система RSA.

Цифровые подписи

Рукописные подписи издавна используются как доказательство авторства документа или, по крайней мере, согласия с ним. Что же так притягательно в подписи?

  • Подпись достоверна. Она убеждает получателя документа в том, что подписавший сознательно подписал документ.
  • Подпись неподдельна. Она доказывает, что именно подписавший, и никто иной, сознательно подписал документ.
  • Подпись не может быть использована повторно. Она является частью документа, жулик не сможет перенести подпись на другой документ.
  • Подписанный документ нельзя изменить. После того, как документ подписан, его невозможно изменить.
  • От подписи не возможно отречься. Подпись и документ материальны. Подписавший не сможет впоследствии утверждать, что он не подписывал документ.

В действительности, ни одно из этих утверждений не является полностью справедливым . Подписи можно подделать, свести с одного листа бумаги на другой, документы могут быть изменены после подписания.

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

Подпись документа с помощью симметричных криптосистем и посредника

A хочет подписать цифровое сообщение и отправить его B. Она может это сделать с помощью C и симметричной криптосистемы.

С -посредник, которому доверяют. Он может связываться и с А, и с B (и со всеми другими желающими подписывать цифровые документы). Он выдает секретный ключ, КА,- А и другой секретный ключ, Кв, - B. Эти ключи определяются задолго до начала действия протокола и могут быть использованы многократно для многих подписей.

  1. A шифрует свое сообщение B ключом КА и посылает его С.
  2. С, зная ключ КА, расшифровывает сообщение.
  3. С добавляет к расшифрованному сообщению утверждение, что он получил это сообщение от А, и шифрует это новое сообщение ключом Кв.
  4. С посылает новое сообщение B.
  5. B расшифровывает сообщение ключом Кв. Он может прочитать и сообщение А и подтверждение С, что сообщение отправлено именно A.

Откуда С узнает, что сообщение пришло именно от A, а не от какого-то самозванца ? Он делает этот вывод из шифрования сообщения.

Также ли это хорошо, как подпись на бумаге? Посмотрим на требуемые свойства:

  • Эта подпись достоверна. С - это заслуживающий доверия посредник, и С знает, что сообщение получено от A. Подтверждение С служит доказательством для B.
  • Эта подпись неподдельна. Только A (и С, но ему все верят) знает КА, поэтому только A могла послать С сообщение, зашифрованное ключом КА. Если кто-нибудь попытается выдать себя за А, С сразу заметит это на этапе (2) и не заверит подлинность.
  • Эту подпись нельзя использовать повторно. Если B попытается взять подтверждение С и присоединить его к другому сообщению, A закричит "Караул!" Посредник (С или кто-то совсем другой, имеющий доступ к той же информации) попросит B предъявить его сообщение и шифрованное сообщение A. Затем посредник зашифрует сообщение ключом КА и увидит, что оно не соответствует шифрованному сообщению, переданному B. B, конечно же, не сможет создать правильное шифрованное сообщение, потому что он не знает ключа КА.
  • Подписанный документ нельзя изменить. Если B попытается, получив документ, изменить его, С обнаружит мошенничество уже описанным способом.
  • От подписи невозможно отказаться. Если впоследствии A заявит, что он никогда не посылал сообщение, то подтверждение С докажет обратное.

Если B захочет показать D документ, подписанный А, он не сможет раскрыть ей свой секретный ключ. Ему придется снова обратиться к С:

  1. B берет сообщение и утверждение С, что сообщение получено от A, шифрует их ключом Кв и посылает обратно С.
  2. С расшифровывает полученный пакет с помощью ключа Кв.
  3. С проверяет свою базу данных и подтверждает, что отправителем оригинального сообщения была A.
  4. С шифрует полученный от B пакет ключом Kc, который он выделил дл