Home Categories Archives Friends GitHub

RSA加密算法

CTF, Crypto, RSA CTF, Crypto, RSA

步骤 数学表示 实现
选择质数 p,qp,q getPrime()
质数相乘 n=p×qn=p\times q n = 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=1 d = inverse(e, phi)
加密 e=memodne=m^e\mod n c = pow(m, e, n)
解密 m=edmodnm=e^d\mod n m = pow(c, d, n)

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