RC4算法

来源:互联网 发布:js 属性名 编辑:程序博客网 时间:2024/04/30 12:05

   由于单片机中不能使用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用来与明文异或产生密文或者与密文异或产生明文

 

原创粉丝点击