Составители:
Пример 6 [22]. Допустим, модуль N = 47, g = 23. Предположим, что
пользователи А и В выбрали свои секретные ключи: k
A
= 12, k
B
= 33.
Для того чтобы определить общий секретный ключ K, пользователи
на первом этапе вычисляют значения частных открытых ключей:
K
A
= g
k
A
(mod N)= 23
12
(mod 47)
= 27(mod 47), K
A
= 27,
K
B
= g
k
B
(mod N)= 23
33
(mod 47)= 33(mod 47), K
B
= 33.
На втором этапе пользователи А и В обмениваются своими
открытыми ключами K
A
и K
B
и вычисляют общий секретный ключ:
K = (K
B
)
k
A
(mod N)
=(K
A
)
k
B
(mod N),
K = 33
12
(mod 47) = 27
33
(mod 47) = 25(mod 47), K = 25.
Вычисленный ключ K может использоваться в качестве общего
секретного ключа для зашифрования сообщения M.
Для расшифрования криптограммы пользователи A и B вычисляют
секретный ключ, используя сравнение
K ⋅ K
*
≡ 1(mod N-1);
25 ⋅ K
*
≡ 1(mod 46) = 25⋅35 ≡ 1(mod 46), откуда K
*
= 35.
Таким образом, используя вычисленные ключи можно не только
зашифровать сообщение M (например, M=16) в криптограмму C
C = M
k
= 16
25
=21(mod 47), C = 21,
но и расшифровать его, используя преобразование
M = C
k
*
= 21
35
= 16(mod 47).
Таким образом, расшифрованное сообщение соответствует исходному
(M = 16).
Преимущество метода Диффи-Хеллмана по сравнению с методом RSA
заключается в том, что формирование общего секретного ключа
происходит в сотни раз быстрее.
Алгоритм Диффи-Хеллмана даёт возможность шифровать данные при
каждом сеансе связи на новых ключах, что позволяет не хранить
секреты на
дискетах или других носителях, так как любое хранение
секретов повышает вероятность попадания их в руки конкурентов или
противника.
149
Страницы
- « первая
- ‹ предыдущая
- …
- 145
- 146
- 147
- 148
- 149
- …
- следующая ›
- последняя »