自同步流密码具有如下特点:
1.自同步
因解密当前密文字只依赖于固定个数的之前的密文字,因此,当密文字被插入或删除,同步性被破坏时,自同步流密码可以自动重新无误的解密,仅有确定数量的明文字符不可被恢复。
2.有限的错误传播
加入一个自同步流密码的状态依靠于f个之前的密文字符。在传输中,当1个单独的密文字符受到改动时,不超过会有f个随后的密文字符解密出现错误,然后再恢复无误解密。
3.对主动攻击检测困难
相比于同步特性,自同步特性使主动攻击者发起的对密文字符的插入、删除、重放等攻击只有很有限的影响,无误的解密可以很快自动重建。因此,自同步流密码体制对这些攻击的检测更加困难,可能需用一些附加的技术来为数据提供源认证并确保其完整性。有限的错误传播特性使主动攻击者随意改动密文字符均会产生一些密文字符的解密出错。
4.明文统计扩散
每个明文字符均会影响它之后的密文,就是明文的统计学特点被拓展至密文中。因此,自同步流密码体制在抵制用明文冗余度发起的攻击要比同步流密码厉害。
在实际应用中的密钥流生成器通常含驱动与非线性组合2个部分。以上所讲等同于密钥流生成器的驱动部分,实际是一个伪随机数生成器,给非线性组合部分给出周期长、统计特性好的伪随机序列。非线性部分把各时刻的驱动部分的输出作为输入进行非线性组合得到相应时刻的密钥值。目前的密钥流生成器大都基于线性移位寄存器。线性移位寄存器的理论已完善,m序列的随机性良好,且结构简单、易实现和运行速度快。密钥流生成器设计的重难点是非线性组合部分,在二元情况下,非线性组合部分能借布尔函数表达。最常用的密钥流生成器主要有:基于线性反馈移位寄存器的前馈序列产生器、非线性组合序列产生器、钟控序列产生器等。
通常来说,要使密钥流的安全性越高,设计密钥流生成器就越复杂。在密钥流生成器的设计中,除了密钥流的安全性需求外,还要考虑到密钥的易于分配、保管和更换、实现的难度与速度等问题。