序列密码
序列密码
序列密码所使用的加解密器是模2加法器,所以序列密码工程的实现很方便。
关键在于产生密钥序列算法。 (通过种子密钥 产生 无限长度的伪随机序列)
这个密钥序列算求要求能良好随机性,不可预测性的伪随机序列。
随机要求:
周期为r的0-1序列的随机性公设如下:
1)当r为奇数,要求0出现的次数和1出现的次数相等;当r为偶数,要求0出现的次数比1出现的次数多一次或者少一次。
2)在长度为r的周期内,长为1的游程的个数为游程总数的1/2,长为2的游程的个数占游程总数的1/22,…长为c的游程的个数占总游程的1/2c.而且.对于任意长度,0的游程个数和1的游程个数相等。
注:称二元序列中连续i个1组成的子序列为长度等于i的1游程,连续i个0组成的子序列为长度等于i的0游程。
例:011011101中,4个游程长度为1,1个游程长度为2,1个游程长度为4。
3)异相自相关函数是一个常数
设一个周期为r的序列:a1,a2,a3...,ar,ar+1,ar+2...
将序列平移T位得到另外一个序列:aT,aT+1,...ar+T,ar+t+1...
若ai=ai+T,则称对应的第i位相等。
设两个序列相同位的个数为n,不同位的个数为d,则R(T)=(n-d)/r为自相关函数
同步流密码:在同步流密码中,密/明文符号是独立的,一个错误传输只会影响一个符号,不会影响后面的符号
缺点:一旦接收端和发送端的种子密钥和内部状态不同步,解密就会失败,两者必须立即借助外界手段重新建立同步。(所以在大规模民用上比较困难)
自同步流密码
优点:即使接收端和发送端不同步,只要接收端能连续地正确地接收到n个密文符号(n为寄存器长度),就能重新建立同步。因此自同步流密码具有优先的差错传播,且分析较同步流密码的分析困难得多。
例子:一段声音 突然中断 或者 一张图片 出现马赛克
CFB模式是自同步流密码 ; OFB模式和CTR模式是同步流密码