18.5. Криптосистемы с открытым ключом

Вспомните персонаж из шпионского фильма: человек с запечатанным дипломатом, пристёгнутым наручником к запястью. Что в этом дипломате? Там не коды запуска ракет. Там — ключ, который расшифрует секретную информацию.

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

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

В 1976 году Диффи и Хеллман заложили основы для преодоления этой трудности, предложив понятие криптографии с открытым ключом. Вскоре последовала его первая практическая реализация, предложенная Райвестом, Шамиром и Адлманом.

Секретная связь по незащищенным каналам связи между двумя совершенно незнакомыми друг с другом сторонами наконец-то стала возможна.

Основное наблюдение, которое, собственно, и привело к криптографии с открытым ключом, заключалось в следующем — тот, кто зашифровывает сообщение, необязательно должен быть способен его расшифровывать. В таких системах каждый пользователь выбирает свой собственный секретный ключ, на основании которого получает пару алгоритмов. Затем он делает один из них доступным каждому из возможных корреспондентов, объявляя этот алгоритм своим открытым алгоритмом шифрования, в то время как другой, соответствующий первому и являющийся его личным алгоритмом расшифровки, хранит в строгом секрете. Это позволяет даже совершенно незнакомому, например, с абонентом сети по имени Натали, пользователю применять ее общедоступный алгоритм шифрования, чтобы зашифровать предназначенное для нее сообщение. Однако лишь сама Натали сможет расшифровать его после получения с помощью своего секретного алгоритма расшифровки.

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

Наиболее важными алгоритмами криптографических систем с открытым ключом являются: RSA и алгоритм Диффи-Хеллмана.

Рис. 4. Криптография с открытым ключом (шифрование)