反馈移位寄存器
移位寄存器是流密码产生**流的一个主要组成部分。GF(2)上一个n级反馈移位寄存器由n个二元存储器与一个反馈函数f(a1,a2,…,an)组成,如下图所示:
在任意时刻,这些级的内容构成该反馈移位寄存器的状态,每一状态对应于GF(2)上的一个n维向量,共有2的n次方种可能的状态。每一时刻的状态可用n维向量(a1,a2,…,an)表示,其中ai是第i级存储器的内容。
反馈函数初始状态由用户确定。反馈函数f(a1,a2,…,an)是n元布尔函数,即函数的自变量和因变量只取0和1这两个可能的值。函数中的运算有逻辑与、逻辑或、逻辑补等运算。
线性反馈移位寄存器LFSR(linear feedback shift register)
LFSR的反馈函数的一般形式为:
线性反馈移位寄存器实现起来简单,速度快,而且有较为成功的理论,成为构造**流生成器的最重要的部件之一。
我们总是假定c1,c2,…,cn中至少有一个不为0,否则f(a1,a2,…,an)=0,总是假定cn=1。
LFSR的性质:
- LFSR输出序列的性质:完全由其反馈函数确定
- n级LFSR状态数:最多有(2^n)个
- n级LFSR的状态周期:<=(2^n)-1
- 输出序列的周期=状态周期,<=(2^n)-1
选择合适的反馈函数可使序列的周期达到最大值(2^n)-1,周期达到最大值的序列称为m序列。