RC5加密算法簡介及其安全性分析

RC5密碼是一種非??焖偾液唵蔚乃惴?,由塊尺寸、輪數(shù)和密鑰長度參數(shù)化。這些參數(shù)能被調整以滿足不同的安全目的、性能和出口能力。

RC5加密算法有以下四種形式,第一種是原始的RC5塊加密,RC5密碼使用固定的輸入長度,使用一個依賴密鑰的轉換產生一個固定長度的輸出塊。第二種是RC5-CBC,是RC5的塊密碼鏈接模式。它能處理長度是RC5塊尺寸倍數(shù)的消息。第三種是RC5-CBC-Pad,處理任意長度的明文,盡管密文將比明文長但長度至多長一個RC5塊。RC5-CTS密碼是RC5加密算法的密文挪用模式,處理任意長度的明文且密文的長度匹配明文的長度。

RC5加密算法流程
符號簡介
參數(shù)變量
RC5是參數(shù)變量的分組算法,實際上是由三個參數(shù)確定的一個加密算法族。一個特定的RC5可以表示為RC5-w/r/b。其中這三個參數(shù)w、f和b分別按照下表所列定義。
RC5加密算法簡介及其安全性分析

RC5字運算部件
RC5由三部分組成,分別為混合密鑰生成過程、加密過程和解密過程。在這兩種算法中,共使用了六種基本運算:
(1)?2w加法運算,表示為“+”;
(2)模2w減法運算,表示為“-”;
(3)?位異或運算,表示為∧;
(4)環(huán)左移,字a循環(huán)左移b比特表示為“a<<<b”;
(5)?環(huán)右移,字a循環(huán)右移b比特表示為“a>>>b”。

運算過程
混合密鑰生成過程
S[0]=Pw
for i=1to t-1do
S[i]=S[i-1]+Qw
輸入比特數(shù)大小為8,密鑰長度為b的用戶密鑰K[0]至K[b-1]轉換K[0]至K[b-1]為數(shù)組長度為c,比特數(shù)為w的L[]數(shù)組
i=j=0x=y=0
do3xmax(t,c)times:
S[i]=(S[i]+x+y)<<<3;X=S[i];i=(i+1)mod tL
[j]=(L[j]+x+y)<<<(x,y);X=L[j];j=(j+1)mod C
其中c=[b×8/w],方括號表示上取整運算,t=2r+2,當w分別為16、32、64時,常數(shù)Pw、Qw分別如下表所列:
RC5加密算法簡介及其安全性分析

RC5加密算法過程
Input(A,B)
A=A+S(0)B=B+S[1]
for i=1to r do
A=((A+B)<<<B)+S[2i]
B=((B+A)<<<A)+S[2i+1]
Output(A,B)
其中初始的A、B分別為要加密的兩個比特數(shù)為w的數(shù)據,最終的A、B分別為加密好的兩個比特數(shù)為w的數(shù)據。

RC5解密算法過程
Input(A,B)
for i=r down to1do
B=((B-S[2i+1])>>>A)+A
A=((A-S[2i])>>>B)+B
A=A-S[0]B=B-S[1]
Output(A,B)
其中初始A、B中的數(shù)據就是已經加密了的比特數(shù)為w的數(shù)據,最終的A、B中的數(shù)據為解密后的比特數(shù)為w的數(shù)據。

RC5加密算法安全性分析
RC5密碼相對來說是比較新的,所以鑒定的評論仍在進行。然而,密碼的簡單結構使它易于分析而且有希望更容易地評定它的強度。迄今為止的評論是有前途的。早期的結果暗示12輪64位塊大小的RC5將有足夠的能力抗拒線性和差分密碼分析。128位的塊版本還未像64位的塊版本進行多次研究。但是明顯的,16輪是一個合適的最小值。更大的安全可以通過增加輪數(shù)獲得,其代價是減少密碼的吞吐量。