logo
MethodFull

Передача информации с использованием криптографии с открытыми клю­чами

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

В 1976 году Уитфилд Диффи и Мартин Хеллман навсегда изменили эту парадигму криптографии. (NSA заявило, что знало о такой возможности еще в 1966 году, но доказательств не представило.) Они описали криптографию с открытыми ключами, используя два различных ключа – один открытый и один закрытый. Определение закрытого ключа по открытому требует огромных вычислительных затрат. Кто угодно, используя открытый ключ может зашифровать сообщение, но не расшифровать его. Расшифровать сообщение может только владелец закрытого ключа. Это похоже на превращение криптографического сейфа в почтовый ящик. Шифрование с открытым ключом аналогично опусканию письма в почтовый ящик, любой может сделать это, опустив письмо в прорезь почтового ящика. Дешифрирование с закрытым ключом напоминает извлечение почты из почтового ящика. Обычно это гораздо сложнее – вам может понадобиться сварочный агрегат. Однако, если вы знаете секрет (у вас есть ключ от почтового ящика), вы без труда достанете вашу почту.

Математической основой процесса являются ранее обсуждавшиеся однонаправленные хэш-функции с люком. Шифрование выполняется в прямом направлении. Указания по шифрованию открыты, каждый может зашифровать сообщение. Дешифрирование выполняется в обратном направлении. Оно настолько трудоемко, что, не зная секрета, даже на мощных компьютерах за тысячи (и миллионы) лет невозможно расшифровать сообщение. Секретом, или люком, и служит закрытый ключ, он делает дешифрирование таким же простым, как и шифрование. Вот как, используя криптографию с открытыми ключами, Василиса может послать сообщение Ивану:

  1. Василиса и Иван согласовывают криптосистему с открытыми ключами;

  2. Иван посылает Василисе свой открытый ключ;

  3. Василиса шифрует свое сообщение и отправляет его Ивану;

  4. Иван расшифровывает сообщение Василисы с помощью своего закрытого ключа.

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

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

  1. Василиса извлекает открытый ключ Ивана из базы данных;

  2. Василиса шифрует свое сообщение с помощью открытого ключа Ивана и посылает его Ивану;

  3. Иван расшифровывает сообщение Василисы с помощью своего закрытого ключа.

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