iffie-Hellman算法代码
时间: 2023-12-27 18:02:21 浏览: 22
以下是Python实现的Diffie-Hellman算法代码:
```python
# Diffie-Hellman算法
import random
# 生成公共参数 p 和 g
def generate_params():
p = 23
g = 5
return p, g
# 生成私钥 a
def generate_private_key():
private_key = random.randint(2, 10)
return private_key
# 计算公钥 A
def generate_public_key(g, a, p):
A = pow(g, a, p)
return A
# 计算共享密钥
def generate_shared_secret_key(B, a, p):
shared_secret_key = pow(B, a, p)
return shared_secret_key
# 主函数
if __name__ == '__main__':
# 生成公共参数
p, g = generate_params()
print("公共参数p为:", p)
print("公共参数g为:", g)
# 甲方生成私钥和公钥
a = generate_private_key()
A = generate_public_key(g, a, p)
print("甲方私钥为:", a)
print("甲方公钥为:", A)
# 乙方生成私钥和公钥
b = generate_private_key()
B = generate_public_key(g, b, p)
print("乙方私钥为:", b)
print("乙方公钥为:", B)
# 甲方计算共享密钥
shared_secret_key_A = generate_shared_secret_key(B, a, p)
print("甲方共享密钥为:", shared_secret_key_A)
# 乙方计算共享密钥
shared_secret_key_B = generate_shared_secret_key(A, b, p)
print("乙方共享密钥为:", shared_secret_key_B)
```
该代码实现了Diffie-Hellman算法的基本流程,包括生成公共参数、生成私钥和公钥、计算共享密钥等步骤。其中,私钥和公钥的生成过程使用了随机数函数,计算共享密钥的过程使用了Python内置的pow函数。