
RSA的安全性是依據數論中大整數分解的困難性的假定,之所以為假定是由於至今還未能證明分解大整數就是NP問題,或許存在大整數分解的多項式時間分解算法,但至今人們沒有發現任何有用的大整數分解算法。
由於人類計算能力的不斷提高,之前不可能分解的大數已被成功分解。關於大整數的威脅除了人類的計算能力外,還來自分解算法的進一步改進。跟着硬件資源的开展和因數分解算法的不斷改進,為保證RSA公開密鑰密碼系統的安全性,最實踐的做法是不斷增加模r的位數。因此在運用RSA算法時對其密鑰的選取要特別注意其大小。
RSA的缺點主要有:
(1)產生密鑰很費事,遭到素數產生技術的束縛,因此難以做到一次一密。
(2)分組長度太大,為保證安全性,n至少也要600bit以上,使運算代價很高,尤其是速度較慢,較對稱密碼算法慢幾個數量級;且跟着大數分解技術的召开,這個長度還在增加,不利於數據格式的標準化。現在,SET協議中要求CA選用2048bit長的密鑰,其他實體運用1024bit的密鑰。
(3)RSA的速度由於進行的都是大數計算,使得RSA最快的情況也比DES慢100倍,無論是軟件仍是硬件實現,速度不断是RSA的缺點。一般來說只用於少量數據加密。RSA與DES的優缺點正好互補。RSA的密鑰很長,加密速度慢,而選用DES,正好彌補了RSA的缺點。即DES用於明文加密,RSA用於DES密鑰的加密。由於DES加密速度快,適合加密較長的報文;而RSA可解決DES密鑰分配的問題。
