easy_RSA
下载打开附件:
在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17 求解出d
解法1:根据RSA写解密脚本
p=473398607161
q=4511491
e=17
# 扩展欧几里得算法
def extended_euclidean(a, b):
if b == 0:
return a, 1, 0
gcd, x1, y1 = extended_euclidean(b, a % b)
x = y1
y = x1 - (a // b) * y1
return gcd, x, y
def calculate_private_key(p, q, e):
phi = (p - 1) * (q - 1)
gcd, x, y = extended_euclidean(e, phi)
if gcd != 1:
raise ValueError("e and phi(n) are not coprime")
d = x % phi
if d < 0:
d += phi
return d
d = calculate_private_key(p, q, e)
print(f"私钥 d 是: {d}")
-------------------------------------------
私钥 d 是: 125631357777427553
解法2:使用工具 RSA-Tool 2 by tE!,