现代密码学第五讲(一):流密码 下载本文

RC4算法

索引i加1后,j的下一个值为:

j=(5+S(1)+K(1)) mod 8=(5+1+6) mod 8=4

即将S数据表的S(1)和S(4)互换:

S5041223314056677当该循环执行完后,数据表S就被随机化:S5041027314653627RC4算法

伪随机数生成算法PRGA

这样数据表S就可以用来生成随机的密钥流序列。从j=0和i=0开始,RC4如下计算第一个密钥字:

i=(i+1) mod 8=(0+1) mod 8 =1

j=(j+s(i)) mod 8=(0+s(1)) mod 8=(0+4) mod 8=4

swap S(1)和S(4)

S5011027344653627RC4算法

然后如下计算t和k:

?t=(S(j)+S(i)) mod 8=(S(4)+S(1)) mod 8=(1+4) mod 8=5?k=S(t)=S(5)=6

第一个密钥字为6,其二进制表示为110。反复进行该过程,直到生成的二进制的数量等于明文位的数量。

主要知识点小结

???

?

流密码(序列密码)的思想起源流密码的分类

基于移位寄存器的流密码算法RC4算法