欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

公钥密码--RSA

发布时间:2025/3/21 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 公钥密码--RSA 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

公钥密码--RSA

  • 加密方案
  • 正确性
  • 安全性

博主是初学公钥密码,本意是想整理一些经典的密码系统,加深记忆也方便日后查找;整理成一个系列公钥密码,方便检索。
如果有错,欢迎指正。

RSA非对称加密算法是由Rivest,Shamir,Adleman三人在1978年的“A Method for Obtaining Digital Signatures and Public-Key Cryptosystems”一文中提出,Euler’s Theorem、Fermat Little Theorem、循环群都和RSA公钥密码系统有关。RSA的思想是公钥加密,私钥解密

常用符号

  • pkpkpk:公钥public key
  • sksksk:私钥secret key
  • mmm:明文message
  • ccc:密文ciphertext

加密方案

密钥

  • pk(n,e)(n,e)(n,e)
    • n:根据φ(mn)=φ(m)φ(n)φ(mn)=φ(m)φ(n)φ(mn)=φ(m)φ(n),且素数ppp的既约剩余系个数为“p−1”“p-1”p1,我们知道找两个素数p,qp,qp,q,相乘得到n=pqn=pqn=pq,那么φ(n)=φ(pq)=φ(p)φ(q)=(p−1)(q−1)\varphi(n)=\varphi(pq)=\varphi(p)\varphi(q)=(p-1)(q-1)φ(n)=φ(pq)=φ(p)φ(q)=(p1)(q1)
    • e:随机选取整数1<e<φ(n)1<e<\varphi(n)1<e<φ(n),使得(e,φ(n))=1(e,\varphi(n))=1(e,φ(n))=1
  • skddd
    • dd≡e−1(d\equiv e^{-1}(de1(mod φ(n))\varphi(n))φ(n))

加密

c≡me(c\equiv m^e(cme(mod n)n)n)

解密

m≡cd(m\equiv c^d(mcd(mod n)n)n)

正确性

d≡e−1(d\equiv e^{-1}(de1(mod φ(n))→ed≡1(\varphi(n))\\ \rightarrow ed\equiv 1(φ(n))ed1(mod φ(n))→ed=1+k⋅φ(n)\varphi(n))\\ \rightarrow ed=1+k·\varphi(n)φ(n))ed=1+kφ(n)

cd(c^d(cd(mod n)≡(me)d(n)\\ \equiv(m^e)^d(n)(me)d(mod n)≡med(n)\\ \equiv m^{ed}(n)med(mod n)≡m1+k⋅φ(n)(n)\\ \equiv m^{1+k·\varphi(n)}(n)m1+kφ(n)(mod n)≡m⋅mk⋅φ(n)(n)\\ \equiv m·m^{k·\varphi(n)}(n)mmkφ(n)(mod n)≡m⋅(mφ(n))k(n)\\ \equiv m·(m^{\varphi(n)})^k(n)m(mφ(n))k(mod n)n)n)

  • (m,n)=1(m,n)=1(m,n)=1,则根据欧拉定理知mφ(n)≡1(m^{\varphi(n)}\equiv 1(mφ(n)1(mod n)→m⋅(mφ(n))k≡m(n)\rightarrow m·(m^{\varphi(n)})^k\equiv m(n)m(mφ(n))km(mod n)n)n)
  • (m,n)≠1(m,n)\neq 1(m,n)=1,因为p,qp,qp,q是素数,则根据费马小定理知mp≡m(\\ m^p\equiv m(mpm(mod p)→mp−1≡1(p)\\ \rightarrow m^{p-1}\equiv 1(p)mp11(mod p)→mφ(p)≡1(p)\\ \rightarrow m^{\varphi(p)}\equiv 1(p)mφ(p)1(mod p)→(mφ(p))φ(q)⋅k≡1(p)\\ \rightarrow (m^{\varphi(p)})^{\varphi(q)·k}\equiv 1(p)(mφ(p))φ(q)k1(mod p)→mk⋅φ(n)≡1(p)\\ \rightarrow m^{k·\varphi(n)}\equiv 1(p)mkφ(n)1(mod p)→m⋅(mφ(n))k≡m(p)\\ \rightarrow m·(m^{\varphi(n)})^k\equiv m(p)m(mφ(n))km(mod n)n)n)

所以cd≡m(c^d\equiv m(cdm(mod n)n)n)

安全性

RSA的安全性基于大整数素因子分解的困难假设

  • 大整数素因子分解问题:p,qp,qp,q为大素数,n=p⋅qn=p\cdot qn=pq,已知nnn,想要求解p,qp,qp,q
  • 因为RSA的私钥d≡e−1d\equiv e^{-1}de1 mod ϕ(n)\phi(n)ϕ(n)ϕ(n)=ϕ(p)ϕ(q)=(p−1)(q−1)\phi(n)=\phi(p)\phi(q)=(p-1)(q-1)ϕ(n)=ϕ(p)ϕ(q)=(p1)(q1),所以只要能由nnn分解出p,qp,qp,q,就可以计算出ϕ(n)\phi(n)ϕ(n),因为eee是公开的,从而可计算出ddd,求解明文mmm

大整数素因子分解问题属于NPNPNP复杂性类。

总结

以上是生活随笔为你收集整理的公钥密码--RSA的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。