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算法