當前位置:成語大全網 - 書法字典 - Rsa加密和解密算法

Rsa加密和解密算法

這個算法出現在1978,是第壹個可以用於數據加密的算法。

它也可以用於數字簽名算法。易懂易操作,也很受歡迎。計算

該法律的名稱是以發明者的名字命名的:羅恩·裏維斯特、阿迪沙米爾和

倫納德·阿德曼.然而,RSA的安全性還沒有得到理論上的證明。

RSA的安全性依賴於大數的分解。公鑰和私鑰都是大素數。

(大於100位小數)。根據推測,從壹個密鑰和密文

推斷明文的難度相當於分解兩個大素數的乘積。

密鑰對的生成:選擇p和q兩個大素數,計算:

n = p * q

然後隨機選取加密密鑰E,需要E和(p-1) * (q-1)。

互質。最後,通過歐幾裏德算法計算解密密鑰d,其滿足以下要求

e * d = 1(mod(p-1)*(q-1))

其中n和d也互質。數字e的和

n是公鑰,d是私鑰。兩個素數P和Q不再需要,應該丟棄。

誰知道呢。加密信息M(二進制表示)時,先把M分成等長數據。

塊m1,m2,...,mi,塊長度s,其中2 s

密文應該是:

ci = mi^e(現代)(a)

解密時,進行以下計算:

mi = ci^d(現代)(b)

RSA可用於數字簽名,方案是用公式(a)和(b)簽名。

類型驗證。在具體操作中,考慮到安全性、M信息量大等因素。壹般來說,是第壹個

做哈希運算。

RSA的安全性。

RSA的安全性依賴於大數分解,但是否等價於大數分解壹直沒有搞清楚。

理論證明,因為沒有破解RSA的證明,所以需要分解大數。假設的存在

壹個不需要分解大數的算法,肯定可以修改成大數分解算法。目前,

RSA的壹些變體算法已被證明等價於大數分解。反正分解n是最明顯的

但是,攻擊方法。現在,人們已經能夠分解超過140個十進制素數。因此,

取決於具體的應用,模數n必須更大。

RSA的速度:

因為計算大數,RSA最快的情況比DES慢100倍,不管

無論是軟件實現還是硬件實現。速度壹直是RSA的短板。壹般來說,它只用於少量的數據

加密。

RSA的選擇密文攻擊:

RSA容易受到選擇性密文攻擊。攻擊者通常會偽裝某種信息。

(盲),由擁有私鑰的實體簽名。然後,經過計算,它可以得到它想要的字母。

休息。其實所有的攻擊都利用了同壹個弱點,就是有這樣壹個事實:權力保護。

帶輸入的乘法結構:

(XM )^d = X^d *M^d模型n

如前所述,這個固有的問題來自於公鑰密碼系統最有用的特性。

-每個人都可以使用公鑰。但是,這個問題無法從算法上解決。主要措施如下

二:壹個是采用好的公鑰協議,保證實體在工作過程中不與其他實體相關。

任意解密生成的信息,不要在自己壹無所知的信息上簽字;另壹個是從不。

在對陌生人發送的隨機文檔進行簽名時,首先使用單向hash函數。

哈希文檔或同時使用不同的簽名算法。中提到了幾種no。

同類型的攻擊方法。

RSA的共模攻擊。

如果系統中有模數,但不同的人E和D不同,系統就危險了。

是的。最常見的情況是相同的信息用不同的公鑰加密,這些公鑰是模塊化的,是相互的。

質量,那麽就可以在沒有私鑰的情況下恢復信息。設p為明文和兩個加密密鑰。

對於e1和e2,公模* * *為n,則:

C1 = P^e1模塊編號

C2 = P^e2現代

密碼分析者如果知道N,e1,e2,C1和C2,就可以得到P。

因為e1和e2互質,所以R和S可以用歐幾裏德算法求出,它滿足:

r * e1 + s * e2 = 1

假設R為負,需要用歐幾裏德算法計算C1 (-1),那麽

(c1^(-1))^(-r)* c2^s = p modn

除此之外,還有其他幾種利用共模進行攻擊的方式。簡而言之,如果我們知道給定的模數,

壹對e和d有利於攻擊者分解模數,也有利於攻擊者計算其他的。

成對的e’和d’而不需要分解模數。解決的辦法只有壹個,那就是不去享受。

模數n。

RSA的小指數攻擊。有所改善。

RSA速度的建議是使公鑰e取較小的值,這樣會使加密容易實現,速度加快。

已經改善了。但是這樣做是不安全的,處理的方法是對e和d取較大的值。

RSA算法是第壹個既能用於加密又能用於數字簽名的算法,也很容易理解和操作。

RSA是研究最廣泛的公鑰算法,從提出到現在已經將近二十年了。

這種攻擊的測試逐漸被人們所接受,並被普遍認為是目前最好的公鑰方案之壹。

RSA的安全性依賴於大數的因式分解,但並沒有從理論上證明RSA很難破譯。

度相當於大數分解的難度。即RSA的壹大缺陷是理論上無法把握其保密性。

怎麽可能,大多數密碼學的人傾向於認為因式分解不是NPC問題。

RSA的缺點主要包括:

a)生成密鑰很麻煩,受限於素數生成技術,很難壹次完成。

壹個秘密。b)數據包長度太長。為確保安全性,n至少應為600位。

以上,運算成本很高,特別是速度慢,比對稱密碼算法慢幾個數量級;

而且隨著大數分解技術的發展,這個長度還在增加,不利於數據格式的標準化。

目前,set(安全電子交易)協議要求CA采用2048位長度。

其他實體使用1024位的密鑰。