Алгоритм обмена ключами Diffie-Hellman запатентован в Соединенных Штатах [718] и Канаде [719]. Группа, называющаяся Public Key Partners (PKP, Партнеры по открытым ключам), получила вместе с другими патентами в области криптографии с открытыми ключами получила лицензию на этот патент (см. раздел 25.5). Срок действия патента США истекает 29 апреля 1997 года.
22.2 Протокол "точка-точка"
Обмен ключами Diffie-Hellman чувствителен к вскрытию "человек в середине". Одним из способов предотвратить это, является необходимость для Алисы и Боба подписывать сообщения, которые они посылают друг другу [500].
Этот протокол предполагает, что у Алисы есть сертифицированный открытый ключ Боба, а у Боба есть се р-тифицированный открытый ключ Алисы. Эти сертификаты подписаны некоторым заслуживающим доверия органом власти, непосредственно не участвующим в протоколе. Вот как Алиса и Боб генерируют секретный ключА:.
(1) Алиса генерирует случайное число х и посылает его Бобу.
(2) Боб генерирует случайное число у. Используя протокол Diffie-Hellman, он вычисляет общий ключ к на базе х и у. Он подписывает х и у и шифрует подпись ключом к. Затем он посылает получившееся вместе с у Алисе.
у,Ек{$в{х,у))
(3) Алиса также вычисляет к. Она расшифровывает оставшуюся часть сообщения Боба и проверяет его под
пись. Затем она посылает Бобу подписанное сообщение, состоящее из х и у, зашифрованных общим клю
чом £.
Ek(SA(x,y))
(4) Боб расшифровывает сообщение и проверяет подпись Алисы.
22.3 Трехпроходный протокол Шамира
Этот изобретенный Ади Шамиром но никогда не опубликованный протокол позволяет Алисе и Бобу безопасно обмениваться информацией, не используя предварительного обмена ни секретными, ни открытыми кл ю-чами [1008]. Он предполагает использование коммутативного симметричного шифра, для которого:
ЕА(ЕВ(Р)) = ЕВ(ЕА(Р))
Секретный ключ Алисы - А, а Боба - В. Алиса хочет послать сообщение М Бобу. Вто этот протокол.
(1) Алиса шифрует М своим ключом и посылает его Бобу d = ЕА(М)
(2) Боб шифрует d своим ключом и посылает Алисе С2 = ЕВ(ЕА(М))
(3) Алиса расшифровывает С2 своим ключом и посылает Бобу С3 = DA(EB(EA(M))) = DA(EA(EB(M))) = ЕВ(М)
(4) Боб расшифровывает С3 своим ключом, получая М.
Коммутативны и обладают совершенной безопасностью одноразовые блокноты, но с этим протоколом они работать не будут. При использовании одноразового блокнота три шифротекста будут выглядеть следующим образом be:
d= M@A
С2 =М®А®В
С3 =М®В
Ева, записав эти три сообщения, которыми обмениваются Алиса и Боб, просто выполнит XOR всех этих шифротекстов и восстановит сообщение:
С1®С2®С3 =(М®А)®(М®А®В)®(М®В) =М
Очевидно, что такой способ работать не будет.
Шамир (и независимо Джим Омура (Jim Omura)) описал похожий на RSA алгоритм шифрования, который будет работать с этим протоколом. Пусть/; будет большим большим простым числом, причем множитель р-1 является большим простым. Выберем ключ шифрования е, взаимно простой с р-1. Вычислим d, для которого выполняется de = 1 (mod/; - 1). Для шифрования сообщения вычисляем
C^Afmod p
Для дешифрирования сообщения вычисляем M = C"mod/>
По видимому, у Евы нет способа получить М, не решив проблему дискретного логарифма, но это никогда не было доказано.
Как и Diffie-Hellman, этот протокол позволяет Алисе начать секретный обмен информацией с Бобом, не зная ни одного из его ключей. При использовании алгоритма с открытым ключом Алиса должна знать открытый ключ Боба. Применяя трехпроходный алгоритм Шамира, она просто посылает Бобу шифротекст сообщения . То же действие с помощью алгоритма с открытым ключом выглядит следующим образом :
(1) Алиса запрашивает у Боба (или у KDC) его открытый ключ.
(2) Боб (или KDC) посылает Алисе свой открытый ключ.
(3) Алиса шифрует М открытым ключом Боба и посылает его Бобу.
Трехпроходный алгоритм Шамира не может устоять перед вскрытием "человек в середине" .
22.4 COMSET
COMSET (COMmunications SETup, установление связи) это протокол одновременной идентификации и обмена ключом, разработанный для проекта RIPE [1305] (см. раздел 25.7). С помощью криптографии с открытыми ключами он позволяет Алисе и Бобу идентифицировать друг друга, при этом обмениваясь секретным кл ю-чом.
Математической основой COMSET служит схема Rabin [1283] (см. раздел 19.5). Сама схема впервые была предложена в [224]. См. подробности в [1305].
22.5 Обмен зашифрованными ключами
Протокол обмена зашифрованными ключами (Encrypted Key Exchange, EKE) был разработан Стивом Бел-ловином (Steve Bellovin) и Майклом Мерриттом (Michael Merritt) [109]. Он обеспечивает безопасность и проверку подлинности в компьютерных сетях, по новому используя и симметричную криптографию, и криптогр а-фию с открытыми ключами: общий секретный ключ используется для шифрования генерированного случайным образом открытого ключа.