由于单片机中不能使用random()函数,所以使用了线性同余算法产生伪随机数列,然后就可使用该数列,进行RC4算法数据加密,具体加密算法还在研究之用,具体内容下次补上.
.......
简述:
该算法以OFB方式工作:密匙序列和明文相互独立。它有一个8*8的S盒:S0,S1,S2,....,S255。所有项都是数字0到255的置换,并且这个置换是一个可变长度密匙的函数。
加密过程:
1.初始化S盒:
首先进行线性填充:S0=0,S1=1,...,S255=255。然后用密匙填充另一个256个字节的数组,不断重复密匙直至填充到整个数组
中:K0,K1,...,K255。将指针j设为0。然后:
对于i=0至255
j=(j+Si+Ki) mod 256
交换Si和Sj
2.生成密文:
有两个计数器:i和j,初值为0.
要产生一个随机字节,需要按下列步骤进行:
i=(i+1) mod 256
j=(j+Si) mod 256
交换Si和Sj
t=(Si+Sj) mod 256
K=St
字节K用来与明文异或产生密文或者与密文异或产生明文