RC4加密演算法 解析及程式碼
阿新 • • 發佈:2019-02-20
原文:http://www.aslike.net/showart.asp?id=147
RC4加密演算法是大名鼎鼎的RSA三人組中的頭號人物Ron Rivest在1987年設計的金鑰長度可變的流加密演算法簇。之所以稱其為簇,是由於其核心部分的S-box長度可為任意,但一般為256位元組。該演算法的速度可以達到DES加密的10倍左右,且具有很高級別的非線性。RC4起初是用於保護商業機密的。但是在1994年9月,它的演算法被髮布在網際網路上,也就不再有什麼商業機密了。RC4也被叫做ARC4(Alleged
RC4——所謂的RC4),因為RSA從來就沒有正式釋出過這個演算法。
漏洞
由於RC4演算法加密是採用的xor,所以,一旦子金鑰序列出現了重複,密文就有可能被破解。關於如何破解xor加密,請參看Bruce Schneier的Applied Cryptography一書的1.4節Simple XOR,在此我就不細說了。那麼,RC4演算法生成的子金鑰序列是否會出現重複呢?由於存在部分弱金鑰,使得子金鑰序列在不到100萬字節內就發生了完全的重複,如果是部分重複,則可能在不到10萬字節內就能發生重複,因此,推薦在使用RC4演算法時,必須對加密金鑰進行測試,判斷其是否為弱金鑰。其不足主要體現於,在無線網路中IV(初始化向量)不變性漏洞。
而且,根據目前的分析結果,沒有任何的分析對於金鑰長度達到128位的RC4有效,所以,RC4是目前最安全的加密演算法之一,大家可以放心使用!