Как и создатели трёхпроходных протоколов из раздела 11.2, авторы следующих алгоритмов считали их не просто математическими конструкциями, обеспечивающие некоторую элементарную операцию (например, шифрование с открытым ключом), но пытались вокруг одной-двух математических конструкций построить законченную систему распространения ключей. Некоторые из этих конструкций, преобразовавшись, используются до настоящего времени (например, протокол Диффи-Хеллмана), некоторые – остались только в истории криптографии и защиты информации.
Позже в 1990-х годах будут разделены математические асимметричные примитивы (шифрование и электронная подпись) и протоколы, эти примитивы использующие, что будет продемонстрировано в разделе 11.5.
Первый алгоритм с открытым ключом был предложен Диффи и Хеллманом в работе 1976 года «Новые направления в криптографии» (англ. Bailey Whitfield Diffie, Martin Edward Hellman, ``New directions in cryptography'', [30]). Данный протокол, который также можно назвать схемой Диффи — Хеллмана, стал первым, позволивший уменьшить требования к каналу связи для установления защищённого соединения без предварительного обмена ключами.
Протокол позволяет двум сторонам создать общий сеансовый ключ используя такой канал связи, который может прослушивать злоумышленник, но в предположении, что последний не может менять содержимое сообщений.
Пусть $p$ – большое простое число, $g$ – примитивный элемент группы ${{\mathbb{Z}}}_p^*$, $y = g^x \bmod p$, причём $p, y, g$ известны заранее. Функцию $y=g^{x} \bmod p$ считаем однонаправленной, то есть вычисление функции при известном значении аргумента является лёгкой задачей, а её обращение (нахождение аргумента) при известном значении функции – трудной.
Протокол обмена состоит из следующих действий.
Таким способом создан общий секретный сеансовый ключ $K$. За счёт случайного выбора значений $a$ и $b$ в каждом новом сеансе будет получен новой сеансовый ключ.
Протокол обеспечивает только генерацию сеансового ключа. Выбор нового «мастер»-ключа любой из сторон гарантирует (с вероятностью $1 - 1/p$) для неё формирование нового сеансового ключа (цель G10). В отсутствие третей доверенной стороны протокол не обеспечивает аутентификацию сторон (цель G1), а из-за отсутствия проходов с подтверждением владения ключом отсутствует аутентификация ключа (цель G8). Так как протокол не использует длительные «мастер»-ключи, можно говорить о том, что он обладает свойством совершенной прямой секретности (цель G9).
Протокол можно использовать только с такими каналами связи, в которые не может вмешаться активный криптоаналитик. В противном случае протокол становится уязвим к простой атаке «человек посередине».
В результате Алиса и Боб получили новые сеансовые ключи, но «защищённый» канал связи установили не с друг с другом, а со злоумышленником, который теперь имеет возможность ретранслировать или изменять все передаваемые сообщения между Алисой и Бобом.
Протокол Диффи — Хеллмана отличается от большей части протоколов распространения ключей из-за того, что не использует другие криптографические примитивы (функции шифрования, электронно-цифровой подписи или хеширования), но сам по себе является в некотором смысле криптографическим примитивом для построения более сложных протоколов. Он обеспечивает генерацию случайного числа в распределённой системе без доверенного центра. Причём ни одна из сторон не может заставить другую сторону использовать старый сессионный ключ, в отличие от, например, протокола Yahalom из раздела 11.1.2.
Протокол можно изменить таким образом, чтобы вместо мультипликативной группы простого умножения использовать аддитивную группу сложения точек эллиптической кривой (см. раздел 16.7). В этом случае стороны по прежнему будут выбирать некоторые случайные целые числа, но не возводить генератор-число в степень, а умножать генератор-точку на загаданное число.
В качестве нового сессионного ключа стороны могут выбрать, например, первую координату найденной точки $K$.
Протокол Эль-Гамаля (рис. 11.16, [35, 36]) за счёт предварительного распространения открытого ключа одной из сторон обеспечивает аутентификацию ключа для этой стороны. Можно гарантировать, что только владелец соответствующего закрытого ключа сможет вычислить сеансовый ключ. Однако подтверждение факта получение ключа (выполнение целей G1 и G8) не является частью протокола.
Протокол не обеспечивает гарантию выбора нового сессионного ключа в каждом сеансе протокола (G10), а использование «мастер»-ключа $K_B$ для передачи сеансового ключа позволяет злоумышленнику вычислить все сессионные ключи из прошлых сеансов при компрометации закрытого ключа $b$ (цель G9).
В 1986 году Ц. Мацумото (англ. Tsutomu Matsumoto), И. Такашима (англ. Youichi Takashima) и Х. Имаи (англ. Hideki Imai) предложили несколько алгоритмов, позже названных семейством протоколов MTI ([68]). За счёт предварительного распространения открытых ключей обоих сторон они обеспечивали неявную аутентификацию ключа (цель G7). То есть сессионный ключ гарантированно мог получить только владельцы соответствующих открытых ключей. Мы рассмотрим одного из представителей данного семейства – протокол MTI/A(0) (рис. 11.17).
Предварительно стороны договорились об общих параметрах системы $p$ и $g$, где $p$ – большое простое число, а $g$ – примитивный элемент поля ${{\mathbb{Z}}}_p^*$.
Каждая из сторон (Алиса и Боб) сгенерировала пару из закрытого и открытого ключей:
Если открытые ключи $K_A$ и $K_B$ соответствуют своим закрытым ключам $a$ и $b$, то вычисленные участниками сессионные ключи совпадают:
Из-за сложности задачи дискретного логарифмирования злоумышленник не сможет получить $a, R_A$ или $b, R_B$ из передаваемых сообщений, а предварительная публикация открытых ключей гарантирует, что сессионный ключ получат только легальные пользователи. Случайный выбор $R_A$ и $R_B$ гарантирует, что обе стороны могут быть уверены в создании нового сессионного ключа в каждом сеансе протокола.
Как и другие представители криптосистем-протоколов, MTI не разрабатывался с учётом возможности компрометации закрытых «мастер»-ключей $a$ и $b$ (цель G9).
Протокол STS (англ. Station-to-Station, [32]) предназначен для систем мобильной связи. Он использует идеи протокола Диффи — Хеллмана и криптосистемы RSA. Особенностью протокола является использование механизма электронной подписи для взаимной аутентификации сторон.
Предварительно стороны договорились об общих параметрах системы $p$ и $g$, где $p$ – большое простое число, а $g$ – примитивный элемент поля ${{\mathbb{Z}}}_p^*$.
Каждая из сторон $A$ и $B$ обладает долговременной парой ключей: закрытым ключом для расшифрования и создания электронной подписи $K_{\text{private}}$ и открытым ключом для шифрования и проверки подписи $K_{\text{public}}$.
Где $\text{Verify}_A(\dots)$ это функция проверки электронной подписи на открытом ключе $K_{A, \text{public}}$, а $D_A$ – функция расшифрования с использованием закрытого ключа $K_{A, \text{private}}$.
Протокол состоит из четырёх проходов, три из которых включают передачу сообщений (рис. 11.18, [133]).
Протокол обеспечивает гарантию формирования новых ключей (G10), но не совершенную прямую секретность (G9).
Как показала атака Лоу 1996 года ([64], рис. 11.19), протокол не может гарантировать аутентификацию субъектов (цель G1), ключей (G7) и подтверждение владения сессионным ключом (G8). Хотя злоумышленник не может получить доступ к новому сессионному ключу, если протокол использовать только для аутентификации субъектов, Алиса может принять злоумышленника за Боба.
После успешного завершения протокола Алиса уверена, что общается с Бобом.
Как и все остальные «криптосистемы-протоколы», протокол Station-to-Station основывается на некотором внешнем источнике информации об открытых ключах участников, не подвергая сомнению корректность и надёжность этого источника. Что, в общем случае, неверно. Если информацию о ключах участников нужно получать извне при каждом сеансе протокола (например, если участников много, и запомнить ключи всех возможности нет), то канал получения открытых ключей будет основной целью активного криптоаналитика для рассмотренных протоколов. Как от этого защититься с использованием примитивов асимметричной криптографии – в разделе 11.5.