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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

RSA的加解密原理

發布時間:2025/3/16 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RSA的加解密原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎轉載,但請指明出處:https://www.cnblogs.com/zhizaixingzou/p/10241100.html

?

RSA算法是三位數學家Rivest、Shamir和Adleman于1977年設計出來的,關于RSA算法的原理有文章已講得很清晰,請見:

http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html

http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html

?

1)生成密鑰對的過程

隨機選擇兩個不相等的質數p和q。

n=p*q。n的二進制表示的位數即密鑰長度。

φ(n)= φ(p)* φ(q)=(p-1)*(q-1)。此等式源自于兩個數論規律,其一互質的兩個數的積的歐拉函數值等于兩個數的歐拉函數值的積,其二質數的歐拉函數值比該質數少1。

隨機選擇一個整數e,滿足1< e < φ(n),且e與φ(n) 互質。

找到一個整數的,滿足ed ≡ 1 (mod φ(n))。

(n, e)即為公鑰,(n, d)即為私鑰。

?

2)加解密的過程

假設加密使用公鑰。發送方握有的公鑰是(n, e),要加密的是整數m。m必須小于n。

通過me ≡ c (mod n)得到的整數c就是密文。

接收方握有的私鑰是(n, d),他或她接收到了整數c。

通過cd ≡ m (mod n)得到的整數m就是發送方實際發送的明文。

?

加密實際上是針對小于n的整數來的,這是前提。

但如果n是1024位(128字節),那么m也可以足夠大,通常可以選擇64字節表示。也正因為如此,一段長消息,我們將它編碼為字節數組,然后每64字節成為一個整數,逐個整數加密,得到的密文整數也為固定個數的字節來表示,解密就按此固定字節數逐個完成后在拼接。

另外,之所以這樣加解密是成立的,在于me ≡ c (mod n)和cd ≡ m (mod n)互為充分必要條件,即互相可以推到出。顯然,反過來使用私鑰加密、公鑰解密也是成立的,它們的形式也具有完美的對稱性。

?

3)算法的安全性

密鑰對生成的過程中共出現5個數字p、q、n、e和d,它的安全性在于對d的保密:

ed ≡ 1 (mod φ(n))。要得到d,需要知道φ(n)。

φ(n)=(p-1)(q-1)。要得到φ(n),需要知道p和q。

n=pq。要得到p和q,需要對n進行質因數分解。

?

通過這個過程,提示我們要做到三點:

其一,妥善保管秘鑰,只能自己知道。

其二,對極大整數的質因數分解是足夠難的,這個依賴于數學規律的不被發現。而我們要做或者說能做的是滿足這個前提,即選取的p和q應該足夠大。

其三,在數學規律不被發現的情況下,也可以通過暴力破解(也就是指定n,不斷假設p,到q是整數且與p互質),為了增加破解的難度,也要求n=p*q足夠大。

總之,該算法被證明非??煽?#xff0c;而且密鑰越長則越難破解,常用1024位,更高等級的安全性要求中則使用2048位。

轉載于:https://www.cnblogs.com/zhizaixingzou/p/10241100.html

總結

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

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