线性移位寄存器(线性移位寄存器的一元多项式表示) -澳客手机版
本文介绍线性移位寄存器(linear feedback shift register,lfsr)的原理、应用和实现方法,lfsr是一种简单的序列发生器,广泛应用于密码学和通信领域中。
1、什么是线性移位寄存器(lfsr)
线性移位寄存器是一种简单的寄存器,由若干个反馈位组成,每个反馈位都是上一个寄存器值的一部分,通过循环移位的方式产生一个序列。lfsr中每个反馈位对应的系数是二进制下的0或1,通过改变这些系数的值,可以产生不同的序列。
2、lfsr的原理
在lfsr中,寄存器的每一位都是一个二进制位,序列生成的规律由反馈多项式决定,反馈多项式的阶数就是寄存器的位数。下图是一个4位反馈多项式的lfsr:
lfsr的操作原理如下:
- 初始值存放在lfsr寄存器中,为n位二进制数。
- 执行n次移位操作,将最高位移出并存放于一个变量中。
- 将计算出的新数值存放回寄存器最低位(或最高位),以此类推。
- 通过变量的确定与新值相异或来生成序列。
3、lfsr的应用
lfsr主要用于序列加密、数字签名、随机数生成等领域,以及在通信系统中用于序列扩频、误码校验、同步控制等功能。
4、lfsr的实现方法
lfsr的实现方法包括:硬件电路实现和软件算法实现。
硬件实现时,可以使用寄存器和门电路构成一个lfsr模块。最简单的lfsr电路只需要若干个异或门和n个d触发器,组合成可向左或向右移位的寄存器即可。
软件算法实现时,可以使用c、c 等高级编程语言实现,通过位操作、循环嵌套等方式很容易编写出lfsr算法代码。
5、lfsr的发展
当前,lfsr已经演变成了更加复杂的变种。一种常用的变种是非线性移位寄存器(non-linear feedback shift register,nfsr),其有多个寄存器反馈到一个多工输入选择器中,多工输入选择器根据预定义的真值表选择具体的输入。
另一种变种是 galois lfsr,它和标准lfsr一样,只是在加法过程中使用的是异或运算,因此可以使用更加简单的电路实现,并且降低原理上容许最大序列重复次数,有利于数字通信领域中的实现应用。
总结:
线性移位寄存器是一种能够产生很长的、看起来很随机的“伪随机数列”的模块,由于其特殊的性质在密码学、通信领域中具有广泛应用。本文简单介绍了lfsr的原理、应用和实现方法,同时介绍了一些lfsr的变种。lfsr 算法的应用在极大程度上提高了密码技术和通讯技术的保密性和可靠性。
本文链接:http://www.xiawashuo.com/k/34346050.html
澳客手机版的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。