日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

公钥密码--RSA

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 公钥密码--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”p?1,我們知道找兩個素數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)=(p?1)(q?1)
    • 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}(de?1(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}(de?1(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)m?mk?φ(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)mp?11(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=p?q,已知nnn,想要求解p,qp,qp,q。
  • 因為RSA的私鑰d≡e?1d\equiv e^{-1}de?1 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)=(p?1)(q?1),所以只要能由nnn分解出p,qp,qp,q,就可以計算出?(n)\phi(n)?(n),因為eee是公開的,從而可計算出ddd,求解明文mmm。

大整數素因子分解問題屬于NPNPNP復雜性類。

總結

以上是生活随笔為你收集整理的公钥密码--RSA的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。