RC4加密關鍵變量及算法特點原理詳解
什么是RC4
RC4加密算法是大名鼎鼎的RSA三人組中的頭號人物Ron Rivest在1987年設計的密鑰長度可變的流加密算法簇。RC4算法是一種在電子信息領域加密的技術手段,用于無線通信網絡,是一種電子密碼,只有經過授權的用戶才能享受該服務。
RC4 流密碼是使用最廣泛的流密碼之一,它通過算法一次一個字節(jié)地加密消息,簡單并且操作速度快。 RC4是一種在電子信息領域加密的技術手段,用于無線通信網絡,是一種電子密碼,只有經過授權的用戶才能享受該服務,使用 64 位或 128 位密鑰大小。它通常用于安全套接層 (SSL)、傳輸層安全 (TLS) 等應用,也用于 IEEE 802.11 無線 LAN 標準。
RC4加密是一種典型的對稱加密算法。
RC4算法特點
(1)、算法簡潔易于軟件實現,加密速度快,安全性比較高;
(2)、密鑰長度可變,一般用256個字節(jié)。
RC4加密的幾個關鍵變量
1、密鑰流:RC4算法的關鍵是根據明文和密鑰生成相應的密鑰流,密鑰流的長度和明文的長度是對應的,也就是說明文的長度是500字節(jié),那么密鑰流也是500字節(jié)。當然,加密生成的密文也是500字節(jié),因為密文第i字節(jié)=明文第i字節(jié)^密鑰流第i字節(jié);
2、狀態(tài)向量S:長度為256,S[0],S[1].....S[255]。每個單元都是一個字節(jié),算法運行的任何時候,S都包括0-255的8比特數的排列組合,只不過值的位置發(fā)生了變換;
3、臨時向量T:長度也為256,每個單元也是一個字節(jié)。如果密鑰的長度是256字節(jié),就直接把密鑰的值賦給T,否則,輪轉地將密鑰的每個字節(jié)賦給T;
4、密鑰K:長度為1-256字節(jié),注意密鑰的長度keylen 與明文長度、密鑰流的長度沒有必然關系,通常密鑰的長度取為16字節(jié)(128比特)。
RC4加密原理
1、初始化S和T
for i=0 to 255 do S[i] =i; T[i]=K[ imodkeylen ];
2、初始排列S
for i=0 to 255 do j= ( j+S[i]+T[i])mod256; swap(S[i],S[j]);
3、產生密鑰流
for r=0 to len do //r為明文長度,r字節(jié) i=(i+1) mod 256; j=(j+S[i])mod 256; swap(S[i],S[j]); t=(S[i]+S[j])mod 256; k[r]=S[t];
通過知道RC4加密的原理,可以根據具體情境寫出加密或者解密的腳本
以上就是RC4加密關鍵變量及算法特點原理詳解的詳細內容,更多關于RC4加密關鍵變量算法的資料請關注腳本之家其它相關文章!
相關文章
關于加密解密 Base64 and URL and Hex Encoding and Decoding
關于加密解密 Base64 and URL and Hex Encoding and Decoding...2007-03-03