RSA加密

利用大整数分解的困难性

  • 公钥(加密):(e,n)\left(e,n\right)

  • 私钥(解密):(d,n)\left(d,n\right)

n=pqn=p\cdot qppqq为两个大素数

(e,φ(n))=1\left(e,\varphi\left(n\right)\right)=1

ed1(modφ(n))e\cdot d\equiv 1\left(\mod \varphi\left(n\right)\right)

  • 加密

    E(P)=CPe(modn)E\left(P\right)=C\equiv P^e\left(\mod n\right)

    • 准备好p,qp,q,计算n=pq,φ(n)n=p\cdot q,\varphi\left(n\right)

    • 假设一个与φ(n)\varphi\left(n\right)互质的ee,求出dd

    • 使用公钥加密信息mmmec(modn)m^e\equiv c\left(\mod n\right)

  • 解密

    D(C)=Cd(Pe)dPedD\left(C\right)=C^d\equiv {\left(P^e\right)}^{d}\equiv P^{e\cdot d}

    Pkφ(n)+1(Pφ(n))PP(modn)\equiv P^{k\cdot\varphi\left(n\right)+1}\equiv\left(P^{\varphi\left(n\right)}\right)P\equiv P\left(\mod n\right)

    • 求解cd(modn)c^d\left(\mod n\right)

最后更新于