【密码学】一文读懂线性反馈移位寄存器

简介: 在正式介绍线性反馈移位寄存器(LFSR)之前,先来看一个小故事,相传在遥远的古代,住着4个奇怪的人。

线性反馈移位寄存器


DB_}PH5SMUFMM{7~}BTE[)C.jpg线性反馈移位寄存器

在正式介绍线性反馈移位寄存器(LFSR)之前,先来看一个小故事,相传在遥远的古代,住着4个奇怪的人。

AX$9VDI[F`M`%[[]5J6V3BK.jpg四个奇怪的人

上图表示了他们居住的相对的位置,上面说到他们是奇怪的人,这里来简单说一下,他们每天出门的人有一个简单的规律:

  1. 李四明天是否出门取决于张三昨天是否出门
  2. 王五明天是否出门取决于李四昨天有没有出门
  3. 赵六明天是否出门取决于王五有没有出门
  4. 张三明天是否出门呢? 可不是取决于赵六有没有出门,而是有王五和赵六共同决定的,如果王五和赵六其中有且只有一个人昨天出门了,张三才出门,也就是说只有王五昨天出门而赵六不出门,或者,赵六昨天出门而王五昨天没出门,张三才出门。

于是,咱们假设王五昨天出门了,来看一下接下来几天这四个人的出门情况。

NVTB@Z(J~XFKM%N[WMM]@)V.png出门情况

简单解释一下前面几天的出门情况,后面类似就不挨个去描述一遍了。

  • 第一天: 这个是基本的假设,只有王五出门,这个就是假设,没有原因,任性
  • 第二天: 由于昨天王五出门了,所以第二天赵六出门,并且根据第四条, 王五出门并且赵六没出门,因此张三这一天出门
  • 第三天: 由于张三昨天出门了,因此今天李四出门,而由于赵六昨天出门了,并且王五昨天没出门,因此张三今天依然出门
  • 第四天: 由于张三昨天出门了,因此李四今天出门,而由于李四昨天也出门了,所以王五今天出门

好了,后面几天读者自行推导一下吧,这里我就不描述了,规则是一致的。

接下来,我们来看一下,赵六这几天的出门情况。

image.gifwatermark

好了,故事讲完了,在这里问一下各位读者,有没有发现赵六出门有什么规律呢?

这个问题,等我讲完这一篇文章之后再做解答,大家也可以暂停思考一下。


反馈移位寄存器(FSR)

FSR的构造比较简单,包含一个指定大小的寄存器,里面有一些比特构成,以及一个更新反馈函数(f), 每次执行,通过f函数并产生一个新的比特。假设FSR的初始状态是, 它的下一个状态是由左移一个比特之后,最后侧空位有f()补充得到,这里左移出去的那一个比特就是输出的比特,通用公式如下:

@ZCL~6F%O}UBFQ[MOSZ13ET.png

这么描述,可能读者不太理解,来看一个具体的例子吧,假设咱们有一个初始的4bit的寄存器, 然后f函数就定义为每个bit进行异或,也就是, 然后下一个输出状态也就是1000, 下一个周期, 接下来的状态输出为0001, 然后重复上述的步骤,整体过程如下:

  1. 1100
  2. 1000
  3. 0001
  4. 0011
  5. 0110
  6. 1100

我们发现,经过5次迭代更新,这个状态又回到了最原始的状态,这就接下来,这个也就会按照5为周期来重复这个操作。

FT~RFSFEBYV$0Z_N`NMHN%6.pngFRS图示

这里FSR就基本介绍完了,接下来介绍一下本篇文章的主角LFSR(线性反馈移位寄存器)了。


线性反馈移位寄存器(LFSR)

线性反馈移位寄存器是具有线性反馈函数的FSR, 也就是说,反馈函数仅仅是当前状态的某些比特位异或,上面介绍的那个FSR实际上就是一个线性反馈移位寄存器,通过数学可以证明,LFSR是会有周期的,影响LFSR周期的关键因素是那些比特进行了异或,这里采用线性反馈移位寄存器的好处是可以通过数学的方法去挑选特殊的比特位置进行异或,使得寄存器的周期达到最大也就是。

你们看这个寄存器只有0/1这两种状态的长度组合,它像不像之前我们提到的有限域GF(), 因此我们可以用域当中的多项式来表示反馈函数,假设最右边比特的位置记为1, 最左边比特的位置记为n, 将位置信息可以转换为多项式其中项存在当且仅当该比特参与反馈函数的计算,如果要想使得LFSR出现它的最大周期,这要求这个多项式是本原的,在这里不过多介绍本原多项式的概念了,有兴趣的读者可以自行查阅相关资料。

好了,简单介绍了LFSR的概念,我们来回到文章刚开始所介绍的小故事,实际上这4个人实际上构成了一个4位的LFSR。

image.gif文章开始的例子

8MNF{R5M{XFTJN0Q$XQ971G.png

这里参与异或的实际上也就是后面两个比特,然后到了现在,就可以回答在文章故事结束之后提出的问题了,赵六的出行规律是什么,这里上图这个反馈寄存器的周期实际上是15, 因此在15以内,实际上赵六出行是没有规律的,哈哈。


总结

本文简单介绍了一下线性反馈移位寄存器的相关知识,由于这个产生的随机比特是具有周期性的,因此在密码学当中并不安全,输出序列和寄存器状态之间可以建立简单的方程,从而利用线性代数的知识求解,但是如果多个不同长度的线性反馈移位寄存器组合或者在里面添加非线性反馈移位寄存器,那么这个安全性就会达到要求,不少密码体制也是这么设计的。

个人水平有限,讲解过程当中如果有哪些疏漏或者错误的地方,还请各位读者指正。


相关文章
|
存储 供应链 算法
《数学模型(第五版)》学习笔记(2)第3章 简单的优化模型 第4章 数学规划模型
《数学模型(第五版)》学习笔记(2)第3章 简单的优化模型 第4章 数学规划模型
158 1
【密码学】一文读懂SHAMIR门限方案
【密码学】一文读懂SHAMIR门限方案
1338 0
【密码学】一文读懂SHAMIR门限方案
|
1月前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
233 1
|
5月前
|
机器学习/深度学习 自然语言处理 运维
深度探索变分自编码器:理论与应用代码之韵:探索编程艺术的无限可能
【5月更文挑战第31天】 在深度学习的众多架构中,变分自编码器(Variational Autoencoder, VAE)以其对数据生成和潜在空间建模的强大能力而脱颖而出。本文将深入探讨VAE的核心原理,包括其概率生成模型、变分推断以及重参数化技巧,并剖析其在多个领域的实际应用案例。通过细致的技术解析与实例演示,我们旨在为读者提供一个关于VAE的全面视角,同时探讨当前的研究动态及未来发展趋势。
|
人工智能 算法
蛮力法设计技术
实验内容: 1.算法设计 2.程序设计 3.复杂度分析 4.实验结果 5.实验总结:
88 0
|
算法 数据安全/隐私保护
【密码学】一文读懂ZUC算法
这次在来聊一个国产密码, 祖冲之算法(ZUC)是中华人民共和国政府采用的一种序列密码标准,由国家密码管理局于2012年3月21日发布,相关标准为“GM/T 0001-2016 祖冲之序列密码算法”,2016年10月成为中国国家密码标准(GB/T 33133-2016)。
1635 0
【密码学】一文读懂ZUC算法
|
数据安全/隐私保护
混沌理论作业简析——两人一组_图像加密解密小游戏
混沌理论作业简析——两人一组_图像加密解密小游戏
138 0
混沌理论作业简析——两人一组_图像加密解密小游戏
|
机器学习/深度学习 算法 Windows
【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★
【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★
189 0
【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★
|
算法
【计算理论】图灵机 ( 非确定性图灵机 -> 确定性图灵机 | 模仿过程示例 | 算法的数学模型 )
【计算理论】图灵机 ( 非确定性图灵机 -> 确定性图灵机 | 模仿过程示例 | 算法的数学模型 )
329 0
【计算理论】图灵机 ( 非确定性图灵机 -> 确定性图灵机 | 模仿过程示例 | 算法的数学模型 )