非线性序列
密钥流生成器可分解为驱动子系统和非线性组合子系统,驱动子系统常用一个或多个线性反馈移位寄存器来实现,非线性组合子系统用非线性组合函数F来实现。为了使密钥流生成器输出的二元序列尽可能复杂,也应保证其周期尽可能大、线性复杂度和不可预测性尽可能高。
采用多个LFSR来构造驱动部分的非线性序列生成器,那么我们也把每个LFSR的输出序列称为驱动序列,显然密钥流生成器的周期不大于各驱动序列的乘积。因此提高输出序列的线性复杂度应从极大化其周期开始。
Geffe序列生成器
Geffe序列生成器由3个LFSR组成,其中LFSR2作为控制生成器使用,如图:
当LFSR输出1时,LFSR2与LFSR1相连接;当LFSR2输出为0时,LFSR2与LFSR3相连接。
输出序列可以表示为:
J-K触发器
J-K触发器如图: