RSA算法

187 阅读1分钟

一、原理

RSA算法基于:加密和解密数据围绕模幂运算(即,计算a^b mod n)。


二、计算公钥和私钥

  1. 首先生成两个大素数,p和q,计算乘积n = pq
  2. 选择一个小的奇数e,它将成为公钥一部分,且gcd(e, (p-1)(q-1))= 1(gcd,最大公约数)
  3. 再计算d = e^(-1) mod (p-1)(q-1),即可得到私钥的一部分d。
  4. 此时公钥P = (e, n),私钥S = (d, n)
  5. 加密过程:c = m^e mod n
  6. 解密过程:d = c^d mod n

(第5步和第6步用到欧拉定理,(p-1)(q-1)是所有小于n且与n互素的值的个数,从而根据欧拉定理值,m^((p-1)(q-1)) = 1 mod n)而e * d = 1 mod ((p-1)(q-1)),从而得到m^(e*d) = m mod n