密碼學原理 流密碼和RC4演算法

2021-10-10 00:24:57 字數 940 閱讀 2297

金鑰輸入到乙個偽隨機數發生器,該偽隨機數發生器產生一串隨機的8位數,輸出的金鑰流和明文流的每個位元組進行對位異或運算,得到乙個位元組,解密時使用相同的偽隨機序列。

設計流密碼需要注意:

分組密碼的優點是可以重複使用金鑰,但如果流密碼對兩個文明用相同金鑰加密,那麼密文分析就相當容易。

rc4是ron rivest為rsa公司在2023年設計的一種流密碼,金鑰長度可變,面向位元組操作。分析顯示該密碼的週期很可能大於

下面為流密碼rc4的金鑰生成過程。

初始狀態的時候,s為0到255的填充,t為金鑰k(長度為keylen)的重複填充。

對已經初始填充的s進行初始化置換,置換過程為交換第i個位與第j個位,演算法為

j=0;

for i=0 to 255 do

j=(j+s[i]+t[i]) mod 256;

swap(s[i],t[i]);

完成s的初始化置換後,輸入的金鑰就不再使用,取代的是s。

金鑰流的生成過程如上圖所示,其演算法為

加密的時候,將k的值與明文的下乙個位元組異或,解密時,將k的值與密文的下乙個位元組異或。

流密碼(序列密碼)與Rc4演算法

流密碼 序列密碼 與rc4演算法 rc4是一種序列密碼,它是一種可變金鑰長度 面向位元組操作的序列密碼,乙個明文位元組與乙個金鑰位元組相異或產生乙個密文位元組。演算法原理 對於n 8位長的字,即以乙個位元組為單位,此時n 256,用從1到256個位元組的可變長度金鑰初始化乙個256個位元組的狀態向量...

流密碼加密(RC4和LFSR)

演算法思想 1 先初始化狀態向量s 256個位元組,用來作為金鑰流生成的種子1 按照公升序,給每個位元組賦值0,1,2,3,4,5,6 254,255。2 初始金鑰 由使用者輸入 長度任意。如果輸入長度小於256個位元組,則進行輪轉,直到填滿。例如輸入金鑰的是1,2,3,4,5,那麼填入的是1,2,...

流密碼 python實現RC4加密

1 理解流密碼的基本思想 2 掌握rc4加密演算法的加解密過程和實現方法 3 採用自己熟悉的程式語言實現rc4密碼演算法。給定金鑰abcde,試對明文 shenzhen university 加密 注 明文包括空格,但不包括引號 rc4的python實現 defs box r s盒 s x for ...