Elgamal 加密算法和 Diffie-Hellman 密钥交换协议详解
Elgamal 加密算法和 Diffie-Hellman 密钥交换协议详解
Elgamal 加密算法
- 密钥生成: 选择一个大素数 p 和一个原根 g,私钥为一个随机整数 x,公钥为 y=g^x mod p。
- 加密: 随机选择一个整数 k,计算 C1=g^k mod p,C2=m*y^k mod p,其中 m 为明文。
- 解密: 计算 C1^x mod p 得到 C1 的 x 次方,再用 C2 乘以 C1 的 x 次方的逆元,即 C2*(C1^x)^-1 mod p,得到明文 m。
Diffie-Hellman 密钥交换协议
- 密钥生成: 选择一个大素数 p 和一个原根 g,私钥为一个随机整数 x,公钥为 y=g^x mod p。
- 密钥交换: (1) A 选择一个随机整数 a,计算 A=y^a mod p,并将 A 发送给 B。 (2) B 选择一个随机整数 b,计算 B=y^b mod p,并将 B 发送给 A。 (3) A 计算 K=B^a mod p,B 计算 K=A^b mod p,得到的 K 就是双方共享的密钥。
- 密钥使用: 双方使用共享密钥 K 进行加密和解密。
原文地址: https://www.cveoy.top/t/topic/ofIE 著作权归作者所有。请勿转载和采集!