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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

RSA加密算法

發(fā)布時間:2024/9/19 综合教程 49 生活家
生活随笔 收集整理的這篇文章主要介紹了 RSA加密算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.什么是RSA

  RSA是一種公鑰加密算法,可用于公鑰加密和數(shù)字簽名

2.RSA加密

RSA加密過程可用下面的公式表達

密文=(明文^E) mod N

RSA的密文等于明文代表數(shù)字的E次方除以N 的余數(shù)

整個過程十分簡單,只要知道E,N就能對明文進行加密。所以E,N的組合就是公鑰。寫成“公鑰是{E,N}”

3.RSA解密過程

RSA解密也十分簡單可用下面公式表達:

明文=(密文^D)mod N

所以D,N代表私鑰(由于N是公鑰的一部分,所以也可用說D是私鑰)

下面就介紹如何生成E,D,N

4.密鑰對生產(chǎn)

RSA密鑰生成的步驟:

  (1)求N

  (2)求L (L是僅在生成密鑰對的過程中使用的數(shù))、

  (3)求E

  (4)求D

1.求N

  首先找到兩個很大的素數(shù)p,q

N=p*q  (如果p,q太小密碼會變得很容易破譯)

2.求L

L是p-1,q-1的最小公倍數(shù)用lcm(p-1,q-1)表示

L=lcm(p-1,q-1)

3.求E

E是一個比1大,比L小的數(shù)。此外,E和L互質(zhì)(最大公約數(shù)為1)

1<E<L
gcd(E,L)=1

找出gcd(E,L)=1的數(shù),還要使用偽隨機數(shù)生成器,生成大于1,小于L的E。再判斷gcd(E,L)是否等于1.可用歐幾里得輾轉(zhuǎn)相除法求最大公約數(shù)

滿足gcd(E,L)是為了保證一定存在解密所需要的D

求出E,N就生成了公鑰

4.求D

數(shù)D由E計算得到。D、E、L之間必須存在下列關(guān)系:

1<D<L
E*D mod L=1

求出D 就是擁有了私鑰

5.實踐

準備兩個質(zhì)數(shù)p=17,q=19

N=17*19=323

L=lcm(17-1,19-1)=lcm(16,18)=144

有g(shù)cd(E,L)=1 可用得到E=5,7,11,13,17.……

E的選擇有很多,這里選5,所以公鑰是{E=5,N=323}

D*Emod L=1 E=5 可用找到D=29

所以私鑰為{D=29,N=323}

1.加密

  要加密的明文必須是小于N的數(shù)

  假設(shè)明文為123

  密文=123^5 mod 323=225

2.解密

  明文=225^29 mod 323=123

總結(jié)

以上是生活随笔為你收集整理的RSA加密算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。