我是靠谱客的博主 清爽鸵鸟,最近开发中收集的这篇文章主要介绍基于移位寄存器的序列密码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

深入浅出密码学2.3

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

一个LFSR由若干时钟储存元件(触发器)和一个反馈路径组成。储存元件的数目给出了LFSR的度。反馈网络计算移位寄存器中某些触发器的XOR和,并将其作为上一个触发器的输入。

简单LFSR

例如一个度m=3,有三个触发器FF2、FF1、FF0。且反馈路径如图:在这里插入图片描述
内部状态由si表示,在每个时钟滴答内,内部状态位会向右移动一位。最右边的状态位为当前输出位。最左边的状态位则是在反馈路径中计算的,它是前面时钟周期中一些触发器值的XOR和。

由实例得出,度为3的LFSR输出的周期长度为7,且当初始状态位为s0,s1,s2时,有si+3≡si+1+si mod 2。

LFSR的数字描述

度为m,初始值为sm-1,…,s0、反馈系数为pi的通用LFSR(线性反馈移位寄存器)形式为:在这里插入图片描述
此LFSR拥有m个触发器和m个可能的反馈位置,反馈路径的活跃取决于反馈系数p。

当pi=1时开关被关闭,那么反馈就是活跃的,而如果pi=0时开关打开,此时触发器的输出就不会被反馈。

假设某个LFSR初始加载的值为s0,…,sm-1,则LFSR的下一个输出位sm=sm-1pm-1+sm-2pm-2+…+s0p0 mod 2。

定理:度为m的LFSR可以产生的最大序列长度为2m-1。

因为一个m位状态向量只能得到2m-1个非零状态,所以在出现重复之前的最长序列长度位为2m-1。

注意,必须排除所有为零的状态。如果一个LFSR全零,它就会陷入这个状态,也就是之后的数也都是0了。

只有特定位置(p0,…,pm-1)才能得到最大长度的LFSR。

最后

以上就是清爽鸵鸟为你收集整理的基于移位寄存器的序列密码的全部内容,希望文章能够帮你解决基于移位寄存器的序列密码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部