Алгоритм шифрования. Деление по модулю
Читаю как работает аглоритм шифрования с открытым ключем
Алгоритм Диффи-Хеллмана работает следующим образом.
Предположим, что двум абонентам ( P1 и P2 ) требуется установить между собой безопасное соединение, для которого необходимо согласовать ключ шифрования.
1. P1 и P2 принимают к использованию два больших целых числа a и b, причем 1 < a < b.
2. P1 выбирает случайное число i и вычисляет I = a^i mod b. P1 передает I абоненту P2.
3. P2 выбирает случайное число j и вычисляет J = a^j mod b. P2 передает J абоненту P1.
4. P1 вычисляет k1 = J^i mod b.
5. P2 вычисляет k2 = I^j mod b.
6. Имеем k1 = k2 = a^ (i*j) mod b, следовательно, k1 и k2 являются секретными ключами, предназначенными для использования при передаче других данных.
Вроде все понятно, но на шаге 4 вычисляется k1: k1 = J^i mod b, где J = a^j mod b,
следовательно есть какое-то правило, по которому (a^j mod b)^i mod b = a^ (i*j) mod b?
6 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів