线性移位寄存器(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的内部状态更新和输出生成是一个循环过程,其核心步骤如下图所示:

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算法破解 | 更高,抗线性分析能力强 |
| 主要应用 | 伪随机数生成、校验、通信 | 安全强度要求更高的密码学应用 |
浙公网安备 33010602011771号