15.6. Третья попытка
289
Пользователь Б
Пользователь А
s
минимальный
размер
p
N
a
R
0, ..., 2
256
-1
s, N
a
Выбрать
(p, q, g)
x
R
{1, ...,
q-
1}
(p, q, g), X := g
x
,
AUTH
B
Y := g
y
,
AUTH
A
y
R
{1, ...,
q-
1}
Проверить
(p, q, g), X,
AUTH
B
k
Y
x
k
X
y
Проверить
Y,
AUTH
A
Рис. 15.3.
Третья попытка согласования ключа
набор параметров алгоритма DH и случайный показатель степени
x
. После
этого он отсылает пользователю А параметры, значение
g
x
и свой аутенти-
фикатор. Пользователь А завершает протокол DH, отсылая пользователю Б
значение
Y
и свой аутентификатор.
Нам осталось решить еще одну проблему. Результат
k
имеет переменный
размер, что может быть весьма неудобно для других частей системы. Более
того,
k
вычисляется с использованием алгебраических выражений, а наличие
в криптографической системе какой-либо алгебраической структуры всегда
нас пугает. Разумеется, иногда без алгебраической структуры не обойтись,
но по мере возможности мы стараемся ее избегать.
Опасность использования алгебраической структуры состоит в том, что
злоумышленник может извлечь из нее что-нибудь полезное. Математический
аппарат — исключительно мощное средство атаки. За последние 20 лет мы
видели массу новых предложений криптографических систем с открытым
ключом. Практически все эти системы были успешно взломаны, и в боль-
шинстве случаев именно благодаря алгебраической структуре, которую они
содержали. Всегда избавляйтесь от алгебраической структуры, если это воз-
можно.
Очевидным решением данной
проблемы является хэширование получен-
ного ключа. Это превратит ключ в число фиксированной длины и уничтожит
всю оставшуюся алгебраическую структуру.