王方鑫
摘 要:序列密碼是一種非常重要的對稱密碼體制,它一次只對單個字符進行加密解密變化。RC4是一個典型的基于非線性數組變換的序列密碼,它的優(yōu)點在于它在軟件中非常容易實現,并且運行速度快,錯誤傳播少,是一種值得推廣的序列密碼。
關鍵詞:RC4算法;序列密碼;安全性;對稱加密算法
序列密碼起源于Vernam密碼,1917年,G.Vernam提出了流密碼Vernam cipher,若密鑰流字符是隨機的,那么Vernam密碼成為一次一密,這種密碼在一定條件下是無條件安全的。當然序列密碼也存在缺陷,即密鑰的個數必須和明文的個數相同,密鑰的分配和管理十分的困難。1949年,Shannon信息論的提出為序列密碼奠定了理論基礎。序列密碼分為同步序列密碼SSC和自同步序列密碼SSSC。相比于分組密碼,序列密碼特殊在于它每次用一個密鑰加密一個比特,它的速度更快,占用硬件資源更少。
1 RC4算法簡介
RC4算法是由麻省理工學院的Rivest在1987年設計的一種流密碼,作為RSA的商業(yè)機密直到1994年才被匿名公布于Internet。RC4算法可能是世界上運用范圍最為廣泛的序列密碼,它是一個典型的基于非線性數組變換的序列密碼。RC4算法的密鑰長度可以改變,該算法以隨機置換作為基礎,生成一個極大周期密鑰流,且該算法的運行速度非???。
RC4目前應用范圍十分的廣泛,它被應用在SSL/TLS(安全套接字協(xié)議/傳輸層安全協(xié)議)標準中,以及作為無線局域網標準的一部分,還被應用在無線系統(tǒng)以保證無線鏈路的安全。從各種各樣的應用,我們可以看出來RC4算法是目前網絡通信的重要組成部分,這個算法非常的重要。
2 RC4算法步驟
RC4算法主要由四部分組成,分別是初始化、初始置換、密鑰流的生成、異或操作。
2.1 初始化
首先將S中的元素初始化,設為S[i]=i,i的取值從1到255,同時新建臨時數組T。這些操作如下:
2.2 初始置換
用臨時數組T產生S的初始置換,從S[0]到S[255],進行字節(jié)代換。這些操作如下:
如下圖所示S的初始置換如下:
S的初始置換圖
2.3 密鑰流的生成
最后利用PRGA生成密鑰流,從S中隨機選取一個元素并且輸出,并置換S以便下一次的選取。
3 RC4算法的安全性
(1)2001年,Fluhrer,Mantin,Shamir提出了在相關密鑰下的唯密文攻擊RC4,后來被Stubblefield用于WEP協(xié)議攻擊,需要大量的數據。
(2)2005年,Klein優(yōu)化了在相關密鑰下的唯密文攻擊RC4,Tews等用Klein攻擊,可以在一分鐘之內破解104位WEP協(xié)議。
4 RC4算法的優(yōu)點和缺點
4.1 RC4算法的優(yōu)點
(1)當RC4的密鑰長度超過128位時,目前不能破解。
(2)和RSA算法等相比,RC4算法速度比較快。
(3)RC4算法易于實現,方便軟件設計。
(4)RC4算法有較強的抗攻擊能力。
(5)RC4算法對硬件資源消耗低。
4.2 RC4算法的缺點
(1)WEP協(xié)議容易受到一種特殊的攻擊方式攻擊。
(2)需要事先秘密地傳遞密鑰。
5 結語
RC4是一個典型的基于非線性數組變換的序列密碼,它具有了很多優(yōu)點,比如實現方便、易于軟件設計、具有較強的抵抗攻擊的能力,目前來說,還沒有什么方法能攻破長度超過128位的RC4算法。RC4具有極高的社會使用價值和發(fā)展空間,值得進一步深入研究。
參考文獻:
[1]王茂森.RC4加密算法對無線網絡安全技術的影響探究[J].信息技術與信息化,2018(07):184-185.
[2]胡亮,遲令,袁巍,李宏圖,初劍鋒.RC4算法的密碼分析與改進[J].吉林大學學報(理學版),2012,50(03):511-516.
[3]谷利澤,鄭世慧,楊義先.現代密碼學教程[M].北京郵電大學出版社,2009.
[4]盧開澄.計算機密碼學[M].北京:清華大學出版社,2003.
[5]楊曉元.現代密碼學[M].西安:西安電子科技大學出版社,2009.
[6]楊波.現代密碼學(第二版)[M].北京:清華大學出版社,2007.