RC4加密
是一種對稱加密。
加密的密鑰流和明文一樣長
同樣的密鑰和同樣的長度能確定同一個密鑰流。
幾個關(guān)鍵的理解:
1、密鑰流:RC4算法的關(guān)鍵是根據(jù)明文和密鑰生成相應(yīng)的密鑰流败京,密鑰流的長度和明文的長度是對應(yīng)的,也就是說明文的長度是500字節(jié)梦染,那么密鑰流也是500字節(jié)赡麦。當(dāng)然,加密生成的密文也是500字節(jié)帕识,因?yàn)槊芪牡趇字節(jié)=明文第i字節(jié)^密鑰流第i字節(jié)泛粹;
2、狀態(tài)向量S:長度為256肮疗,S[0],S[1].....S[255]晶姊。每個單元都是一個字節(jié),算法運(yùn)行的任何時候伪货,S都包括0-255的8比特數(shù)的排列組合们衙,只不過值的位置發(fā)生了變換钾怔;
3、臨時向量T:長度也為256蒙挑,每個單元也是一個字節(jié)宗侦。如果密鑰的長度是256字節(jié),就直接把密鑰的值賦給T忆蚀,否則矾利,輪轉(zhuǎn)地將密鑰的每個字節(jié)賦給T;
4蜓谋、密鑰K:長度為1-256字節(jié),注意密鑰的長度 keylen 與明文長度炭分、密鑰流的長度沒有必然關(guān)系桃焕,通常密鑰的長度趣味16字節(jié)(128比特)。
RC4被用于為網(wǎng)絡(luò)瀏覽器和服務(wù)器間通信而制定的SSL/TLS(安全套接字協(xié)議/傳輸層安全協(xié)議)標(biāo)準(zhǔn)中捧毛,以及作為IEEE 801.11無線局域網(wǎng)標(biāo)準(zhǔn)一部分的WEP(Wired Equivalent Privacy)協(xié)議和新的WiFi受保護(hù)訪問協(xié)議(WAP)中
算法描述
算法描述:
1观堂、S和T的初始狀態(tài)
S中元素的值按升序被置為0-255,同時建立一個臨時向量T呀忧。將密鑰的值循環(huán)復(fù)制到T向量中师痕。
2、S的初始置換
用T產(chǎn)生S的初始置換而账,置換偽碼如下
j = 0;
for (i = 0 ; i < 256 ; i++){
j = (j + S[i] + T[i]) mod 256;
swap(S[i] , S[j]);
}
因?yàn)閷的操作僅是交換胰坟,S仍然包含所有值為0-255的元素。
3泞辐、密鑰流的生成
密鑰流生成偽碼如下
i , j = 0;
while (true){
i = (i + 1) mod 256;
j = (j + S[i]) mod 256;
swap(S[i] , S[j]);
t = (S[i] + S[j]) mod 256;
k = S[t];
}