因為網頁顯示的不太好,有的需要顯示例如 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...