古詩詞大全網 - 個性簽名 - RSA算法的缺點

RSA算法的缺點

1)產生密鑰很麻煩,受到素數產生技術的限制,因而難以做到壹次壹密。

2)安全性,RSA的安全性依賴於大數的因子分解,但並沒有從理論上證明破譯RSA的難度與大數分解難度等價,而且密碼學界多數人士傾向於因子分解不是NP問題。現今,人們已能分解140多個十進制位的大素數,這就要求使用更長的密鑰,速度更慢;另外,人們正在積極尋找攻擊RSA的方法,如選擇密文攻擊,壹般攻擊者是將某壹信息作壹下偽裝(Blind),讓擁有私鑰的實體簽署。然後,經過計算就可得到它所想要的信息。實際上,攻擊利用的都是同壹個弱點,即存在這樣壹個事實:乘冪保留了輸入的乘法結構:

(XM)d = Xd *Md mod n

前面已經提到,這個固有的問題來自於公鑰密碼系統的最有用的特征--每個人都能使用公鑰。但從算法上無法解決這壹問題,主要措施有兩條:壹條是采用好的公鑰協議,保證工作過程中實體不對其他實體任意產生的信息解密,不對自己壹無所知的信息簽名;另壹條是決不對陌生人送來的隨機文檔簽名,簽名時首先使用One-Way Hash Function對文檔作HASH處理,或同時使用不同的簽名算法。除了利用公***模數,人們還嘗試壹些利用解密指數或φ(n)等等攻擊.

3)速度太慢,由於RSA 的分組長度太大,為保證安全性,n 至少也要 600 bits以上,使運算代價很高,尤其是速度較慢,較對稱密碼算法慢幾個數量級;且隨著大數分解技術的發展,這個長度還在增加,不利於數據格式的標準化。SET(Secure Electronic Transaction)協議中要求CA采用2048比特長的密鑰,其他實體使用1024比特的密鑰。為了速度問題,人們廣泛使用單,公鑰密碼結合使用的方法,優缺點互補:單鑰密碼加密速度快,人們用它來加密較長的文件,然後用RSA來給文件密鑰加密,極好的解決了單鑰密碼的密鑰分發問題。