Расширенный Diffie-Hellman
Diffie-Hellman также работает в коммутативных кольцах [1253]. З. Шмули (Z. Shmuley) и Кевин МакКерли (Kevin McCurley) изучили вариант алгоритма, в котором модуль является составным числом [1441, 1038]. В.С. Миллер (V. S. Miller) и Нил Коблиц (Neal Koblitz) расширили этот алгоритм, используя эллиптические кривые [1095, 867]. Тахер ЭльДжамаль (Taher ElGamal) использовал основополагающую идею для разработки алгоритма шифрования и цифровой подписи (см. раздел 19.6).
Этот алгоритм также работает в поле Галуа GF(2k) [1442, 1038]. В ряде реализаций используется именно этот подход [884, 1631, 1632], так как вычисления выполняются намного быстрее. Но и криптоаналитические вычисления выполняются намного быстрее, поэтому важно тщательно выбирать поле, достаточно большое, чтобы обеспечить нужную безопасность.
Hughes
Этот вариант алгоритма Diffie-Hellman позволяет Алисе генерировать ключ и послать его Бобу [745].
(1) Алиса выбирает случайное большое целое число x и генерирует
k = gxmod n
(2) Боб выбирает случайное большое целое число y и посылает Алисе
Y= gymod n
(3) Алиса посылает Бобу
X= Yxmod n
(4) Боб вычисляет
z = y-1
k'= Xzmod n
Если все выполнено правильно, k = k'.
Преимуществом этого протокола над Diffie-Hellman состоит в том, что kможно вычислить заранее, до взаимодействия, и Алиса может шифровать сообщения с помощью kзадолго до установления соединения с Бобом. Она может послать сообщение сразу множеству людей, а передать ключ позднее каждому по отдельности.
Обмен ключом без обмена ключом
Если у вас сообщество пользователей, каждый может опубликовать открытый ключ, X= gxmod n, в общей базе данных. Если Алиса захочет установить связь с Бобом, ей понадобится только получить открытый ключ Боба и генерировать их общий секретный ключ. Она может зашифровать сообщение этим ключом и послать его Бобу. Боб извлечет открытый ключ Алисы и вычислит общий секретный ключ.
Каждая пара пользователей может использовать уникальный секретный ключ, не требуется никаких предварительных обменов данными между пользователями. Открытые ключи должны пройти сертификацию, чтобы предотвратить мошеннические вскрытия, и должны регулярно меняться, но в любом случае это очень умная идея
Патенты
Алгоритм обмена ключами Diffie-Hellman запатентован в Соединенных Штатах [718] и Канаде [719]. Группа, называющаяся Public Key Partners (PKP, Партнеры по открытым ключам), получила вместе с другими патентами в области криптографии с открытыми ключами получила лицензию на этот патент (см. раздел 25.5). Срок действия патента США истекает 29 апреля 1997 года.
Протокол "точка-точка"
Обмен ключами Diffie-Hellman чувствителен к вскрытию "человек в середине". Одним из способов предотвратить это, является необходимость для Алисы и Боба подписывать сообщения, которые они посылают друг другу [500].
Этот протокол предполагает, что у Алисы есть сертифицированный открытый ключ Боба, а у Боба есть сертифицированный открытый ключ Алисы. Эти сертификаты подписаны некоторым заслуживающим доверия органом власти, непосредственно не участвующим в протоколе. Вот как Алиса и Боб генерируют секретный ключ k.
(1) Алиса генерирует случайное число x и посылает его Бобу.
(2) Боб генерирует случайное число y. Используя протокол Diffie-Hellman, он вычисляет общий ключ kна базе xи y. Он подписывает xи y и шифрует подпись ключом k. Затем он посылает получившееся вместе с y Алисе.
y,Ek(SB(x,y))
(3) Алиса также вычисляет k. Она расшифровывает оставшуюся часть сообщения Боба и проверяет его подпись. Затем она посылает Бобу подписанное сообщение, состоящее из xи y, зашифрованных общим ключом k.
Ek(SA(x,y))
(4) Боб расшифровывает сообщение и проверяет подпись Алисы.
Дата добавления: 2021-01-26; просмотров: 340;