rc4是面向位元組的序列密碼,乙個明文的位元組(8位元)與乙個金鑰的位元組進行異或就生成了乙個密文的位元組。乙個可以在金鑰流中生成一位元組的金鑰,包含從1到256位元組的任何位置。rc4演算法的結構非常簡單,由兩部分組成:金鑰排程演算法ksa和偽隨機金鑰序列生成演算法prga。
(1)金鑰排程演算法ksa(key scheduling algorithm)中,由輸入的隨機金鑰k(典型長度為64或128位元)生成乙個元素0,1.….n-1組成的初始排列s,n一般為256;ksa的演算法如圖1所示。
(2)prga(pseudo-randomoeneration-algorithm偽隨機金鑰序列生成演算法),prga藉由ksa產生的s生成偽隨機金鑰序列zi]。prga的演算法如圖2所示。
(3)加解密序列z輸出後,用z與明文位元組進行逐位異或從而加密,解密過程則反之。
演算法引數
在演算法中,所涉及到的引數為256位元組的初始狀態si]和金鑰位元組k[i]。
演算法流程
根據在上文中敘述的有關演算法的執行原理及加解密流程,我們給出了其用c語言實現的源**,相關的加密流程圖如圖3所示:
RC4演算法實現
1 金鑰流 rc4演算法的關鍵是根據明文和金鑰生成相應的金鑰流,金鑰流的長度和明文的長度是對應的,也就是說明文的長度是500位元組,那麼金鑰流也是500位元組。當然,加密生成的密文也是500位元組,因為密文第i位元組 明文第i位元組 金鑰流第i位元組 2 狀態向量s 長度為256,s 0 s 1 s...
RC4演算法實現
1 金鑰流 rc4演算法的關鍵是根據明文和金鑰生成相應的金鑰流,金鑰流的長度和明文的長度是對應的,也就是說明文的長度是500位元組,那麼金鑰流也是500位元組。當然,加密生成的密文也是500位元組,因為密文第i位元組 明文第i位元組 金鑰流第i位元組 2 狀態向量s 長度為256,s 0 s 1 s...
RC4加密演算法
rc4於1987年提出,和des演算法一樣,是一種對稱加密演算法,也就是說使用的金鑰為單鑰 或稱為私鑰 但不同於des的是,rc4不是對明文進行分組處理,而是位元組流的方式依次加密明文中的每乙個位元組,解密的時候也是依次對密文中的每乙個位元組進行解密。rc4演算法的特點是演算法簡單,執行速度快,而且...