-
RC4算法
鎖定
- 中文名
- RC4算法
- 提出者
- Ron Rivest
- 提出時間
- 1987年
- 性 質
- 加密的技術手段
RC4算法原理
之所以稱其為簇,是由於其核心部分的S-box長度可為任意,但一般為256字節。該算法的速度可以達到DES加密的10倍左右。
for (i=0; i<n; i++) {
s[i]=i;
}
j=0;
for (i=0; i<n; i++)
{
j=(j+s[i]+k[i])%n;
swap(s[i], s[j]);
}
在初始化的過程中,密鑰的主要功能是將S-box攪亂,i確保S-box的每個元素都得到處理,j保證S-box的攪亂是隨機的。而不同的S-box在經過偽隨機子密碼生成算法的處理後可以得到不同的子密鑰序列,並且,該序列是隨機的:
i=j=0;
while (明文未結束)
{
++i%=n;
j=(j+s)%n;
swap(s, s[j]);
sub_k=s((s+s[j])%n);
}
由於RC4算法加密是採用的xor,所以,一旦子密鑰序列出現了重複,密文就有可能被破解。關於如何破解xor加密,請參看Bruce Schneier的Applied Cryptography一書的1.4節Simple XOR。那麼,RC4算法生成的子密鑰序列是否會出現重複呢?經過我的測試,存在部分弱密鑰,使得子密鑰序列在不到100萬字節內就發生了完全的重複,如果是部分重複,則可能在不到10萬字節內就能發生重複,因此,推薦在使用RC4算法時,必須對加密密鑰進行測試,判斷其是否為弱密鑰。
RC4算法漏洞
以色列魏茨曼研究所和美國思科公司的研究者發現,在使用“有線等效保密規則”(WEP)的無線網絡中,在特定情況下,人們可以逆轉RC4算法的加密過程,獲取密鑰,從而將已加密的信息解密。實現這一過程並不複雜,只需要使用一台個人電腦對加密的數據進行分析,經過幾個小時的時間就可以破譯出信息的全部內容。
專家説,這並不表示所有使用RC4算法的軟件都容易泄密,但它意味着RC4算法並不像人們原先認為的那樣安全。這一發現可能促使人們重新設計無線通信網絡,並且使用新的加密算法。