天天看點

RSA算法簡述

簡述

RSA公開密鑰密碼體制是一種使用不同的加密密鑰與解密密鑰,“由已知加密密鑰推導出解密密鑰在計算上是不可行的”密碼體制 [2] 。

在公開密鑰密碼體制中,加密密鑰(即公開密鑰)PK是公開資訊,而解密密鑰(即秘密密鑰)SK是需要保密的。加密算法E和解密算法D也都是公開的。雖然解密密鑰SK是由公開密鑰PK決定的,但卻不能根據PK計算出SK 。

正是基于這種理論,1978年出現了著名的RSA算法,它通常是先生成一對RSA密鑰,其中之一是保密密鑰,由使用者儲存;另一個為公開密鑰,可對外公開,甚至可在網絡伺服器中注冊。為提高保密強度,RSA密鑰至少為500位長,一般推薦使用1024位。這就使加密的計算量很大。為減少計算量,在傳送資訊時,常采用傳統加密方法與公開密鑰加密方法相結合的方式,即資訊采用改進的DES或IDEA對話密鑰加密,然後使用RSA密鑰加密對話密鑰和資訊摘要。對方收到資訊後,用不同的密鑰解密并可核對資訊摘要 。

RSA是被研究得最廣泛的公鑰算法,從提出到現在已近三十年,經曆了各種GJ的考驗,逐漸為人們接受,普遍認為是目前最優秀的公鑰方案之一。1983年麻省理工學院在美國為RSA算法申請了專利 [3] 。

RSA允許你選擇公鑰的大小。512位的密鑰被視為不安全的;768位的密鑰不用擔心受到除了國家安全管理(NSA)外的其他事物的危害;1024位的密鑰幾乎是安全的。RSA在一些主要産品内部都有嵌入,像 Windows、網景 Navigator、 Quicken和 Lotus Notes 。

安全性編輯

RSA的安全性依賴于大數分解,但是否等同于大數分解一直未能得到理論上的證明,也并沒有從理論上證明破譯。RSA的難度與大數分解難度等價。因為沒有證明PJRSA就一定需要做大數分解。假設存在一種無須分解大數的算法,那它肯定可以修改成為大數分解算法,即RSA的重大缺陷是無法從理論上把握它的保密性能如何,而且密碼學界多數人士傾向于因子分解不是NPC問題 。

目前,RSA的一些變種算法已被證明等價于大數分解。不管怎樣,分解n是最顯然的GJ方法。現在,人們已能分解140多個十進制位的大素數。是以,模數n必須選大些,視具體适用情況而定 。

RSA算法的保密強度随其密鑰的長度增加而增強。但是,密鑰越長,其加解密所耗用的時間也越長。是以,要根據所保護資訊的敏感程度與GJ者PJ所要花費的代價值不值得以及系統所要求的反應時間來綜合考慮,尤其對于商業資訊領域更是如此 。

52tangzong

dW0yd5gvzeUgn1De/vLc4GTu6wLTOqlgdfAmbLfjatpq0lmeuvwRm3EQ5LF1yp2tMuanbSoXOvGyddX+cLuGfs3shZwzRRVTUG61MS7CXXFBQvLaOzRgxlti2DjrrrKf/nampVO0cGT4I+Gmf7IQvwd1GyuV1FPDPIy4gPMxeLXCSHQfPf3rWVjALMJijz8WVnSVaMgCD9AmI8N1CTqrn3exqzoHL5bmKTkRsE2aVfNj+TKQlS9h+lR4ayZcynWtOzj8hYxZvRiuQ15Ro5nwuXJ1rjS2ohSBwwLI/JOFJU4u3vWvpBOcX4VzbEmyr+4CiIb67fX6GFJK7GD4tjxbHQ==

52tangzong

算法GJ編輯

RSA的選擇密碼GJ

RSA的小指數GJ

繼續閱讀