Если между Алисой и Бобом существует канал связи, недоступный для модификации злоумышленником (то есть когда применима модель только пассивного криптоаналитика), то даже без предварительного обмена секретными ключами или другой информацией можно воспользоваться идеями, использованными ранее в криптографии на открытых ключах. После описания RSA в 1978 году, в 1980 Ади Шамир предложил использовать криптосистемы, основанные на коммутативных операциях, для передачи информации без предварительного обмена секретными ключами. Если предположить, что передаваемой информацией является выработанный одной из сторон секретный сеансовый ключ, то в общем виде мы получаем следующий трёхпроходной протокол.
Предварительно:
Протокол состоит из трёх проходов с передачей сообщений (отсюда и название) и одного заключительного, на котором Боб вычисляет сеансовый ключ. Диаграмма последовательности протокола изображена на рис. 11.11.
В результате работы протокола стороны получают общий секретный ключ $K$.
Общим недостатком всех подобных протоколов является отсутствие аутентификации сторон. Конечно, в случае пассивного криптоаналитика это не требуется, но в реальной жизни всё-таки нужно рассматривать все возможные модели (в том числе активного криптоаналитика) и использовать такие протоколы, которые предполагают взаимную аутентификацию сторон.
Также, в отличие, например, от схемы Диффи — Хеллмана, рассмотренной в разделе 11.3.1, новый ключ выбирается инициатором сеанса. Это позволяет инициатору, исходя не из лучших побуждений, заставить второго участника использовать устаревший сеансовый ключ.
Если говорить в терминах свойств безопасности, то все представители данного класса протоколов декларируют только аутентификацию ключа (G7). В отличие от схемы Диффи — Хеллмана, трёхпроходные протоколы не требуют выбора новых «мастер»-ключей для каждого сеанса протокола, из-за чего нельзя гарантировать ни совершенную прямую секретность (G9), ни формирование новых ключей (G10).
Приведём пример протокола на основе функции XOR (побитовое сложение по модулю 2). Хотя данная функция может использоваться как фундамент для построения систем совершенной криптостойкости (см. главу 4), для трёхпроходного протокола это неудачный выбор. Продемонстрируем это далее.
Пусть перед началом протокола обе стороны имеют свои секретные ключи $K_A$ и $K_B$, представляющие собой случайные двоичные последовательности с равномерным распределением символов. Функция шифрования определяется как $E_i( X ) = X \oplus K_i$, где $X$ это сообщение, а $K_i$ – секретный ключ. Очевидно, что:
Протокол состоит из следующих проходов и действий.
По окончании сеанса протокола Алиса и Боб знают общий сеансовый ключ $K$.
Предложенный выбор коммутативной функции шифрования совершенной секретности является неудачным, так из переданных сообщений криптоаналитик может тривиально определить ключ $K$. Предположим, что криптоаналитик перехватил все три сообщения:
Сложение по модулю 2 всех трёх сообщений даёт ключ $K$. Поэтому такая система шифрования не применяется.
Теперь приведём протокол надёжной передачи секретного ключа, основанный на экспоненциальной (коммутативной) функции шифрования. Стойкость этого протокола связана с трудностью задачи вычисления дискретного логарифма: при известных значениях $y, g, p$, найти $x$ из уравнения $y = g^x \bmod p$.
Стороны предварительно договариваются о большом простом числе $p \sim 2^{1024}$. Каждая из сторон выбирает себе по секретному ключу $a$ и $b$. Эти ключи меньше и взаимно просты с $p-1$. Также стороны приготовили по специальному числу $a'$ и $b'$, которые позволяют им расшифровать сообщение, зашифрованное своим ключом:
Последнее выражение верно по следствию из малой теоремы Ферма. Операции шифрования и расшифрования определяются следующим образом:
По окончании сеанса протокола Алиса и Боб знают общий сеансовый ключ $K$.
Предположим, что криптоаналитик перехватил три сообщения:
Чтобы найти ключ $K$, криптоаналитику надо решить систему из этих трёх уравнений, что имеет очень большую вычислительную сложность, неприемлемую с практической точки зрения, если все три числа $a, b, ab$ достаточно велики. Предположим, что $a$ (или $b$) мало. Тогда, вычисляя последовательные степени $y_3$ (или $y_1$), можно найти $a$ (или $b$), сравнивая результат с $y_2$. Зная $a$, легко найти $a^{-1}\mod(p-1)$ и $K=(y_1)^{a^{-1}}\mod p$.
В 1982 году Джеймс Мэсси и Джим Омура заявили патент (англ. James Massey, Jim K. Omura, [67]), улучшающий (по их мнению) бесключевой протокол Шамира. В качестве операции шифрования вместо возведения в степень в мультипликативной группе ${{\mathbb{Z}}}_p^*$ они предложили использовать возведение в степень в поле Галуа ${{\mathbb{GF}}(2^n)}$. Секретный ключ каждой стороны (для Алисы – $a$) должен удовлетворять условиям:
В остальном протокол выглядит аналогично.