Шифрование как таковое не является прямой функцией алгоритма Диффи-Хеллмана. Его основная цель — безопасный обмен криптографическими ключами по открытому каналу. Далее этот общий секретный ключ может быть использован для симметричного шифрования данных.
Процесс обмена ключами выглядит так:
p
и базовом числе g
(генераторе циклической группы Zₚ*). g
должно быть примитивным корнем по модулю p
.a
, Боб выбирает b
. a
и b
держатся в секрете.A = g^a mod p
.B = g^b mod p
.A
и B
являются публичными ключами и могут быть безопасно отправлены по открытому каналу.B
от Боба и вычисляет общий секретный ключ S = B^a mod p
.A
от Алисы и вычисляет общий секретный ключ S = A^b mod p
.Математически (g^b mod p)^a mod p = g^(b*a) mod p
и (g^a mod p)^b mod p = g^(a*b) mod p
. Поскольку a*b = b*a
, обе стороны вычисляют одинаковое значение S
, которое становится их общим секретным ключом.
python
Шифрование как таковое не является прямой функцией алгоритма Диффи-Хеллмана. Его основная цель — безопасный обмен криптографическими ключами по открытому каналу. Далее этот общий секретный ключ может быть использован для симметричного шифрования данных.
Процесс обмена ключами выглядит так:
p
и базовом числе g
(генераторе циклической группы Zₚ*). g
должно быть примитивным корнем по модулю p
.a
, Боб выбирает b
. a
и b
держатся в секрете.A = g^a mod p
.B = g^b mod p
.A
и B
являются публичными ключами и могут быть безопасно отправлены по открытому каналу.B
от Боба и вычисляет общий секретный ключ S = B^a mod p
.A
от Алисы и вычисляет общий секретный ключ S = A^b mod p
.Математически (g^b mod p)^a mod p = g^(b*a) mod p
и (g^a mod p)^b mod p = g^(a*b) mod p
. Поскольку a*b = b*a
, обе стороны вычисляют одинаковое значение S
, которое становится их общим секретным ключом.
python
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.