RSA 加密算法

2023-11-18
CTFCryptoRSA
步骤数学表示实现
选择质数p,qp,qgetPrime()
质数相乘n=p×qn=p\times qn = p * q
欧拉函数phi=(p1)×(q1)phi=(p-1)\times(q-1)phi = (p-1) * (q-1)
选择公钥1<e<phi1<e<phiee 不是 phiphi 的因子
计算私钥(d×e)modphi=1(d\times e)\mod phi=1d = inverse(e, phi)
加密e=memodne=m^e\mod nc = pow(m, e, n)
解密m=edmodnm=e^d\mod nm = pow(c, d, n)

其中,公钥对为 (e, n),私钥对为 (d, n),原文为 m,密文为 c。