RSA加密示例

2021-07-09 12:20:56 字數 2115 閱讀 4828

因為網頁顯示的不太好,有的需要顯示例如 x 的平方,但網頁顯示不出來。                                       

rsa是完整的加密系統,它支援公鑰

/私鑰對的生成、加密以及數字簽名。

carol 

為了加密訊息以傳送給

bob 

,bob 

首先必須生成乙個金鑰對,並和 

carol 

共享公鑰。公鑰由兩個數字組成:模數 

n 和公共指數

e 。私鑰也由兩個數字組成:相同的模數 

n 和私有指數 

d 。通過隨機選擇兩個大的質數 

p 和 

q ,並把它們一起相乘,就可以建立模數。所選擇的指數 

e 必須與 

( q - 1 ) × ( p - 1 ) 互質 

(也就是說,

e 與這個數必須不具有相同的因數

)。質數 

d 必須滿足等式 

d × e mod [ ( p - 1 ) × ( q - 1 ) ] = 1 。然後,如果 

carol 

的明文是 

m ,那麼,她就能夠通過計算 

c = me mod n ,把它加密成密文 c 。

bob 

通過計算 

m = cd mod n 就可以恢復明文。

第一步 bob 

選擇大的質數 

p 和 

q ,並使它們相乘,從而得到 n 。

第二步 bob 

選擇乙個公共質數 

e ,它與 

( p - 1 ) × ( q - 1 ) 是互質數。

第三步 bob 

計算私有質數 

d = e-1 mod [ ( p - 1 ) × ( q - 1 ) ] 。

第四步 bob 

與 carol 

共享金鑰,數字 

n 和 e 。

第五步 carol 

使用 c = me mod n 把

m加密成 

c ,並把 

c 傳送給 

bob 。

第六步 bob 

使用 m = cd mod n 把 

c 解密成 m 。

rsa 加密示例

這裡有乙個 rsa 

機密的示例,同樣為了簡潔起見,在這個例子中使用的數字都很小。

bob 選擇了質數 

p = 5 

和 q = 11 

,然後把這兩個數字相乘,從而得到模數 

n = 55 。

bob 計算出 

f( n ) = ( p - 1 ) × ( q - 1 ) = 4 × 10 = 40

bob 選擇乙個數字 e ,

e 與 

40 是互質數。

40的質因數是 2、

2、2、

5和1,所以 

bob 

選擇的私有指數 

e = 3 。

bob 選擇了乙個公共指數 

d = 3-1 mod 40 。這個模數反函式實際上是非常困難的,但是對於所用的這些小數字,可以看到 

27 × 3 mod 40 = 81 mod 40 = 1 。所以 

d = 27 。

現在 bob 

的公鑰就是數對 

( 3 , 55 ) 

,其私鑰就是數對 

( 27 , 55 ) 

。bob 

把自己的公鑰傳送給 

carol 。

carol 的訊息 

m = 25 

。它把該訊息加密成密文 

c = 253 mod 55 = 15625 mod 55 = 5。

carol 

把結果傳送給 

bob 。

bob 使用 

m = 527 mod 55 = 7450 580 596 923 828 125 mod 55 = 25 對密文進行解密,這就是 

carol 

的原始訊息。

rsa加密演算法使用示例分享

複製 如下 產生私鑰和公鑰 system.security.cryptography.rsacryptoserviceprovider myrsa new rsacryptoserviceprovider 得到私鑰主要儲存了rsaparameters中的8各引數 privatekey myrsa.t...

PHP web開發中RSA加密解密簡單示例

前言 rsa演算法可以說是大名鼎鼎,廣泛應用於非對稱加密和數字簽名認證!感興趣的朋友完全可以深入的學習一下rsa演算法並嘗試 實現,相信一定可以極大的提高 能力,個人也是計畫著要抽時間好好研究學習一下。本文的目的只是示例如何應用大神的 實現前端js層面的rsa加密和後端php層面的rsa解密,快速上...

C 非對稱加密,RSA加解密示例

引入dll bouncycastle.crypto 金鑰實體 金鑰實體 public class rsakey 私鑰 public string privatekey rsa加密和解密 using system using system.collections.generic using syste...