线性移位寄存器(LFSR),非线性移位寄存器(NFSR)

一.LFSR

1 LFSR 基本概念与工作原理
线性反馈移位寄存器(LFSR)主要由一系列​​触发器(D触发器)​​(每个触发器存储一个比特,0或1)和一个​​线性反馈函数​​组成。这些触发器通常排列成一条链,因此得名“移位寄存器”。
LFSR的工作基于​​时钟脉冲​​。每个时钟周期,寄存器中的每个比特会向右移动一位。​​最右边触发器移出的比特​​作为输出序列的一部分。同时,​​最左边的触发器的输入​​由一个​​反馈函数​​计算得出,这个函数是当前寄存器中某些特定位置(称为“抽头”)比特的​​线性异或(XOR)组合​​。
反馈函数可以表示为:
f(a1,a2,...,a n)=c1a1⊕c2a2⊕...⊕cnan ​其中,ci是系数(取0或1),决定该抽头是否参与反馈计算,ai是寄存器第i位的值。
LFSR的内部状态更新和输出生成是一个循环过程,其核心步骤如下图所示:
image

2 反馈多项式与特征多项式
LFSR的反馈逻辑常用一个​​多项式​​(称为​​特征多项式​​)来表示:
P(x)=x^n+cn−1x^n−1+...+c1x+c0其中,xi的系数ci为1表示该抽头参与反馈(对应寄存器中的第 i位,注意索引方式可能不同,有时从0开始,有时从1开始),为0则不参与。

例如,一个3级的LFSR,若其反馈抽头在第1位(从1开始计数)和第3位,则其特征多项式可写为 P(x)=x^3 +x^1+1。

为了使LFSR能够产生​​最大长度序列(m序列),其周期达到2^n−1 (n为寄存器级数),其特征多项式必须是​​本原多项式​​。本原多项式是一个不可约多项式,且满足其周期为2^n−1。

​​3 m序列及其特性
当LFSR的反馈多项式是​​本原多项式​​,且初始状态非全零时,LFSR能够产生​​最大长度序列​​,即 ​​m序列​​。m序列具有以下良好的​​伪随机特性​​:

  • 平衡性​​:在一个完整周期内,“0”出现的次数为 2^(n−1) −1次,“1”出现的次数为 2^(n−1)次,两者数量几乎相等。
  • 游程特性​​:长度为 k( 1≤k≤n−1)的“0”游程和“1”游程数目相等,并且游程的长度每增加1,其数目就大约减少一半。
  • 自相关特性​​:m序列的自相关函数是二值的,具有非常好的自相关性。
    正是这些良好的统计特性,使得m序列在通信(如扩频通信、同步控制)、加密(作为伪随机数生成器的基础)和测试等领域有着广泛的应用。

4 LFSR的简单示例
假设我们有一个​​3级LFSR​​(3个寄存器),其​​反馈函数​​为 f=a1⊕a3(即抽头位置在第一位和第三位),​​初始状态​​设为 101(a1=1,a2=0,a3=1,这里a3是最右边一位,最先输出)。

下表逐步展示了该LFSR在时钟驱动下的状态变化和输出序列:

时钟周期 当前状态 (a1, a2, a3) 输出 (a3) 反馈计算 (a1 ⊕ a3) 新状态 (反馈位, a1, a2)
0 1 0 1 - - -
1 1 0 1 1 1 ⊕ 1 = 0 0 1 0
2 0 1 0 0 0 ⊕ 0 = 0 0 0 1
3 0 0 1 1 0 ⊕ 1 = 1 1 0 0
4 1 0 0 0 1 ⊕ 0 = 1 1 1 0
5 1 1 0 0 1 ⊕ 0 = 1 1 1 1
6 1 1 1 1 1 ⊕ 1 = 0 0 1 1
7 0 1 1 1 0 ⊕ 1 = 1 1 0 1

在此示例中,输出序列为 1 0 1 0 0 1 1 ...。因为这是3级LFSR,最大周期为 2^3−1=7。可以看到,在第7个时钟周期后,状态恢复到了初始状态 101(只是顺序上需要对应,初始是a1a2a3为101,第7个时钟后的新状态是a1a2a3为101),序列开始重复

5 LFSR的优缺点与应用注意
5.1 优点
​​实现简单​​:LFSR在硬件上只需简单的触发器和异或门,在软件上实现也很高效。
​​速度快​​:适合高速生成伪随机序列。
具有良好的统计特性​​:产生的m序列具有良好的平衡性、游程分布和自相关特性。
5.2 缺点与安全隐患
​​线性复杂度低​​:这是LFSR​​最致命的安全弱点​​。对于一个n级的LFSR,只需要知道其连续的2n个输出比特,就可以通过​​Berlekamp-Massey算法​​或求解线性方程组来​​破解其结构​​(即确定反馈多项式),从而预测整个输出序列。​​因此,绝不能直接将LFSR的输出作为密钥流用于加密。​

二.NFSR
1 基本概念
与LFSR的区别在于​​反馈函数的性质​​。LFSR使用​​线性函数​​(通常是异或运算 ⊕),而NFSR使用​​非线性函数​​(包含与、或、非等逻辑运算)

  • ​​代数表达​​:在代数表达上,异或门对应​​模2加法​​(+),而与门对应​​乘法​​()。线性反馈函数仅由加法构成,其表达式的最高项次数不会增长。而包含乘法操作的​​非线性反馈函数​*​,其反馈表达式的项次数可能会增长,并可能超过定义多项式的最高项。
  • 设计目标​​:NFSR通过非线性特性来增强密码学的安全性,目标是产生​​线性复杂度更高​​、​​更难以预测​​的序列,使其能够抵抗基于线性代数的密码分析攻击(如Berlekamp-Massey算法)

2 工作原理
NFSR由一系列触发器(位)组成,每个触发器存储一个二进制数(0或1)。其工作由时钟脉冲控制,每个周期包含几个关键步骤,其内部状态更新和输出生成是一个循环过程.

  • 反馈函数是核心​​:反馈函数的设计决定了输出序列的随机性和周期等特性。一个简单的非线性反馈函数示例可能是 f=a0⊕(a1⋅a2)⊕a3,其中 ⋅表示逻辑“与”操作。
  • ​​初始状态(种子)​​:在开始移位之前,需要给每个寄存器赋予一个初始值,这个初始状态通常由​​密钥​​和​​初始向量(IV)​​ 生成。​​不同的种子会产生完全不同的输出序列​​。

3 NFSR 的类型与结构
NFSR主要有两种实现结构,其状态转移矩阵的特性也不同:

特性 Fibonacci型NFSR Galois型NFSR
​​反馈结构​​ 非线性反馈函数仅作用于寄存器的某些​​抽头位​​,计算结果​​直接反馈到最左端​​ 非线性反馈可以同时作用于​​多个级​​,并将计算结果反馈到寄存器​​中间的不同位置​​
​​​​研究与应用 较常见,许多经典流密码算法采用此结构 研究相对更复杂,其​​圈结构​​(状态循环)和​​可观测性​​是流密码领域的难题

4 示例
假设我们有一个​​4级NFSR​​,其​​非线性反馈函数​​为:f(a0,a1,a2,a3)=a0⊕(a1⋅a2)⊕a3
其中,a0是最左端位,a3是最右端位(最先输出)。符号 ⊕表示异或(XOR)运算,⋅表示逻辑与(AND)运算。
给定​​初始状态​​为 [1, 0, 1, 1](即 a0=1,a1=0,a2=1,a3=1)。
我们来逐步计算它在前几个时钟周期内的状态变化和输出:

时钟周期 当前状态 (a₀, a₁, a₂, a₃) 输出 (a₃) 反馈计算 (f = a₀ ⊕ (a₁ · a₂) ⊕ a₃) 新状态 (反馈位, a₀, a₁, a₂)
0 1 0 1 1
1 1 0 1 1 1 1 ⊕ (0 · 1) ⊕ 1 = 1 ⊕ 0 ⊕ 1 = ​​0​ 0 1 0 1
2 0 1 0 1 1 0 ⊕ (1 · 0) ⊕ 1 = 0 ⊕ 0 ⊕ 1 = ​​1​ 1 0 1 0
3 1 0 1 0 0 1 ⊕ (0 · 1) ⊕ 0 = 1 ⊕ 0 ⊕ 0 = ​​1​​ 1 1 0 1
4 1 1 0 1 1 1 ⊕ (1 · 0) ⊕ 1 = 1 ⊕ 0 ⊕ 1 = ​​0​​​ 0 1 1 0
  • ​​输出序列​​:从前4个时钟周期得到的输出序列是 1, 1, 0, 1(从周期1开始)。
  • 非线性效应​​:由于反馈函数中包含了“与”运算,使得状态更新不再是简单的线性组合,输出的序列会比LFSR产生的序列复杂得多,更难以通过线性分析的方法进行预测和破解

5 NFSR 的优缺点与应用
5.1 优点与价值

  • 安全性高​​:非线性反馈使得输出序列的​​线性复杂度​​远高于同级LFSR,能有效抵抗​​线性密码分析​​。
  • 伪随机性好​​:能够产生​​de Bruijn序列​​等复杂序列,具有极大的周期和良好的统计特性。
  • 硬件友好​​:与LFSR一样,NFSR也​​非常适合硬件实现​​,在资源受限的环境(如物联网设备)中具有应用价值。

5.2 缺点与挑战

  • 数学分析困难​​:非线性反馈函数的复杂性导致其​​数学理论不如LFSR完善​​。分析和验证其周期、序列的随机性等性质更为困难。
  • 设计难度大​​:设计一个具有良好的伪随机特性、极大周期和高线性复杂度的NFSR需要更深入的知识。反馈函数选择不当可能导致短周期、不平衡等弱序列
  • 可能面临新型攻击​​:虽然非线性增强了对抗线性分析的能力,但若设计不当,其本身可能存在其他弱点,例如容易受到​​代数攻击​​、​​差分攻击​​等

三.NFSR 与 LFSR 的对比

特性 线性反馈移位寄存器 (LFSR) 非线性反馈移位寄存器 (NFSR)
反馈函数​ 线性​​(通常仅为异或 ⊕) 非线性​​(包含与、或、非等运算)
代数表达​ 线性方程,次数不会增长 非线性方程,次数可能增长
输出序列​ ​m序列(最大长度序列) de Bruijn序列等非线性序列
线性复杂度​ 相对较低,为n级 显著更高​​,可接近周期长度
数学理论​​ 非常完善​​,易于分析和设计 相对不成熟​​,分析更困难
安全性​ 较低​​,易被B-M算法破解 更高​​,抗线性分析能力强
主要应用​ 伪随机数生成、校验、通信 安全强度要求更高的密码学应用
posted on 2025-09-17 15:23  Ctrl+C人生  阅读(167)  评论(0)    收藏  举报