溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

RSA算法

發(fā)布時間:2020-08-25 05:52:47 來源:網(wǎng)絡(luò) 閱讀:521 作者:vampiredx 欄目:安全技術(shù)

RSA是(Rivest Shamir and Adleman)的縮寫,Ron Rivest, AdiShamir Leonard Adleman這仨哥們挺NB的,20多年前創(chuàng)造了這個算法,現(xiàn)在也已經(jīng)廣泛使用了。

這是一種公鑰的加密算法,加密和解密是互逆的。如果用公鑰加密,私鑰解密,可實現(xiàn)保密通信;如果用私鑰加密,公鑰解密,可實現(xiàn)數(shù)字簽名。下面說一下算法:

1、首先選擇兩個大素數(shù)pq

都要大于10^100,因為小素數(shù)很容分解

2、令n=p*qz=(p-1)*(q-1)   

這部沒什么可解釋的

3、選擇d,要求dz互質(zhì)。         

只要是互質(zhì)數(shù)都行

4、選擇e,要求e*d=1 (mod z)    

一說這個mod就煩人了,這里的mod的意思是數(shù)學(xué)符號,并非編程的mod,好比a=b (mod c),意思是ab除以c后,余數(shù)相同。

5、明文P被分為k位的塊,k要滿足2^k<n的最大整數(shù),于是0<=p<n。

這不沒什么可說的。

 

下面是加密和解密過程,先說公鑰加密,私鑰解密的過程:

1、公鑰加密用到en這兩個數(shù)。C=P^e (mod n)

C是加密后的密文,P是明文,en就是算出來的數(shù)字了,但是這里的mod是電腦編程里的運算符,意思是取余數(shù)。

    解密用到d,nP=C^d (mod n)

    這樣明文P就出來了。

2、私鑰用到dn這兩個數(shù)。C=P^d (mod n)

    解密用到e,n這兩個數(shù)。P=C^e (mod n)

 

可以代兩個簡單的2位素數(shù)來試試,不過你會發(fā)現(xiàn),pq很容易就被推算出來了,所以為什么說要大素數(shù)的原因就在這里。因為安全性是基于大素數(shù)分解的困難性,如果***者要分解200位的數(shù),需要40億年;500位的數(shù),需要10^25年。這就是為什么RSA的重大缺陷是無法從理論上把握它的保密性能如何。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI