【摘要】本文主要討論DES加密算法和RSA算法兩大加密算法類中的兩個算法的性能比較和改進,以決定用哪一種算法作為本VoIP系統的加密算法的基礎算法。
【關鍵詞】VOIP系統加密算法比較
一、安全性
DES密碼安全性是不依賴于算法保密的,它的安全性僅以加密密鑰的保密為首要條件,因此DES算法具有極高安全性。到目前為止,除了用窮舉試驗法對DES算法進行攻擊外,還沒有發現更為有效的辦法。而56位長的密鑰的窮舉試驗空間為256,這意味著如果一臺計算機的速度是每一秒種檢測一百萬個密鑰,則它搜索完全部密鑰就需要將近2285年,所以這是不可能實現的,即使破解了也沒什么意義了。
這里有點值得注意,就是由上述DES算法介紹我們可以看到:DES算法中只用到64位密鑰中的56位,而第8、16、24、32、40、48、56、64位這8個位并未參與DES運算,就這一點,向我們提出了一個在設置密碼時的要求,即DES的密碼是基于除了8、16、24、32、40、48、56、64位以外的其它56位的組合變化后的256位才得以保證的。因此,在實際應用中,我們設置密碼時,我們應避開使用第8、16、24、32、40、48、56、64位作為有效密碼數據位,而使用其它的56位作為有效密碼數據位,才能保證DES算法的密碼安全可靠地發揮作用。
總體上說DES算法的安全性是依賴于密碼的保密,而并不依賴算法的公開。因此它的安全性是得到保障的。
目前RSA的安全性依賴于大數分解,因此全球曾一度掀起一股尋找大質數熱潮,但是到目前為此它的安全性是否等同于大數分解一直未能得到理論上的證明,而且也沒有證明破解RSA就一定需要作大數分解。
現在假設存在一種無須分解大數的算法,那它肯定可以被修改成為大數分解算法。目前,相關RSA的一些變種算法已被證明等價于大數分解。不管怎樣,分解n是最顯然的一種比較明確的攻擊方法。現在,人們已能夠分解多個十進制位的大素數。因此,為了確保RSA算法在實際應用中的安全有保障,在模數n的選擇方面,應該選大一些,當然這也要因具體適用情況而定。
二、復雜度
DES加密算法沒有大量的復雜數學計算(沒有如乘、帶進位的加、模等),在加/解密過程和密鑰生成過程中僅有相關的邏輯運算和查表運算,因此它的程序實現復雜度并不高,實現也相對容易。而且目前由于基礎DES算法已經成熟,在計算機的各個應用方面都有涉足,各種實現方式也層出不窮,因此這種加密算法的復雜度幾乎為零,只在實際應用中,對基礎算法進行相應擴展就可以了。
RSA的安全性理論上依賴于大數的因子分解,但從來都沒有從理論上證明破譯RSA的難度與大數因子分解的難度等價。而且要產生RSA算法所使用的大質數也是一項頗具挑戰的工作,因此在實際應用中,RSA加密算法相對還是比較復雜的。這種算法第一要受到產生密鑰的問題,由于受到素數產生技術的限制,因而難以做到一次一密,這給算法的實現已經帶來了難度。而且RSA算法對數據的分組也有要求,分組必須保證長度,那么這種算法的最大的一個問題是為大數據加密時,會嚴重消耗計算機的系統內存,而且由于加密的安全性考慮,n也要求足夠大,這勢必加大實現過程中需要更多的計算機系統內存,因此實現RSA算法就要特別小心地控制內存的使用以及合理、及時的釋放。
三、性能
目前DES加密算法大都采用流水線結構或者狀態機結構對數據進行加、解密,就目前情況來說,狀態機結構占的計算機的系統資源相對比較少,但是運算速度相對比較慢,而流水線結構占用的計算機的系統相對比較多,而運算速度卻很快。
RSA算法要求數據分組的長度足夠大,這就增加了系統的負擔,而且為保證安全性,質數n至少也要600 bits以上,使運算代價進一步增高,這兩個原因造成RSA算法速度尤其地慢,較對稱密碼算法甚至會慢上幾個數量級。且隨著大數分解技術的發展,為了保證加密的安全性,勢必要增加n的長度,這樣一來就不利于數據格式的標準化。
參考文獻
[1] Jonathan Davidson, James Peters, Manoj Bhatia, et al. VoIP技術構架[M].第二版.高艷譯.北京:人民郵電出版社, 2008年4月.
[2]沈鑫剡.多媒體傳輸網絡與VoIP系統設計[M].北京:人民郵電出版社,2005年3月.
[3]白華斌,李哲. VoIP的發展及其應用[J].中國多媒體通信,2009年,5期:16-20.