Протокол Ди́ффи — Хе́ллмана — криптографический протокол, позволяющий двум и более сторонам получить общий секретный ключ, используя незащищенный от прослушивания канал связи. Полученный ключ используется для шифрования дальнейшего обмена с помощью алгоритмов симметричного шифрования.
Допустим Client задаёт 2 числа (6, 91) , одно из них (91, оно же P) должно быть не меньше 1024 бит, лучше 4096 бит (для примера будут маленькие числа и рандомное, его мы не отправляем на сервер): 6 (g), 91 (p), 7 (рандомное число на стороне клиента). Server создаст рандомное число 3.
Client: g ** 7 % p = 20 (отправляем число 20 серверу и G, P)
Server: g ** 3 % p = 34 (отправляем число 34 клиенту)
Client: 34 ** 7 % p = 83 (никуда не отправляем)
Server: 20 ** 3 % p = 83 (никуда не отправляем)
Теперь мы можем использовать число 83 для создания симметричного ключа шифрования, также при первом подключении к серверу мы можем получить public.key, чтобы зашифровать наши циферки и расшифровать уже на сервере с помощью private.key.
Т.e мы сначала шифруем пакеты ассиметричным шифрованием, создаем симметричные ключи и переходим уже на симметричное шифрование, вот вам пример гибридного шифрования.
Алгоритм Диффи-Хеллмана
- MrkoSter
- Site Admin
- Сообщения: 78
- Зарегистрирован: 21 июн 2021, 13:21