4.2线性反馈移位寄存器序列

合集下载

中衡EDA实验线性反馈移位寄存器的【设计明细】

中衡EDA实验线性反馈移位寄存器的【设计明细】

**学院
本科实验报告
(2011-2012学年下学期)
课程名称:
任课教员:
系:
专业:
二0一一年
《》课程实验报告
实验项目名称:线性反馈移位寄存器设计
系:专业:指导教员:
姓名:学号:成绩:
同组姓名:
实验地点:实验室实验日期:
线性反馈移位寄存器的设计一、实验目的和要求
学习线性反馈移位寄存器的设计、分析和测试方法。

二、实验内容和原理
(1)实验内容
按图设计一个,使之生成多项式430
++。

x x x
(2)实验原理
即线性反馈移位寄存器,它由寄存器加上生成,不同的决定了不同的生成多项式。

三、操作方法与实验步骤
1、分析线性反馈移位寄存器的工作原理,设计基本框架。

2、在Ⅱ中建立线性反馈移位寄存器工程,进行程序编写、调试、编译、仿真。

四、实验数据记录与处理
五、实验结果与分析
本实验需注意理清各端口的关系,正确选择端口类型。

六、心得与体会
通过此次实验,我学会线性反馈移位寄存器在实际中的应用,可以较清楚的控制各个端口之间的关系,程序代码清晰明了。

七、程序代码
( );
[3:0]Q;
, ;
;
([2] [0]); ([1] [0]);
1 (Q[3] [0] );
2 (Q[2] [3] );
3 (Q[1] , e );
4 (Q[0] , f );
( );
q ;
, ;
q;
@( )
q<;
()
q<=1'b0;。

第4章(序列密码)

第4章(序列密码)

4.4 线性移位寄存器的一元多项式表示
设 n 级线性移位寄存器的输出序列满足递推 关系 an+k=c1an+k-1 c2an+k-2 … cnak (*) 对任何 k 1 成立。这种递推关系可用一个一 元高次多项式 P(x)=1+c1x+…+cn-1xn-1+cnxn 表示,称这个多项式为LFSR的联系多项式或 特征多项式。
初始状态由用户确定,当第i个移位时钟脉冲 到来时,每一级存储器ai都将其内容向下一级 ai-1传递,并根据寄存器此时的状态a1,a2,…,an 计算f(a1,a2,…,an),作为下一时刻的an。反馈函 数f(a1,a2,…,an)是n元布尔函数,即n个变元 a1,a2,…,an可以独立地取0和1这两个可能的值, 函数中的运算有逻辑与、逻辑或、逻辑补等运 算,最后的函数值也为0或1。
图4-4 GF(2)上的n级线性反馈移位寄存器
输出序列{at}满足 an+t=cnat cn-1at+1 … c1an+t-1 其中t为非负正整数。 线性反馈移位寄存器因其实现简单、速度快、 有较为成熟的理论等优点而成为构造密钥流生 成器的最重要的部件之一。
例4.2 图4-5是一个5级线性反馈移位寄存器, 其初始状态为(a1,a2,a3,a4,a5)=(1,0,0,1,1),可 求出输出序列为 1001101001000010101110110001111100110 … 周期为31。
即输出序列为101110111011…,周期为4。 如果移位寄存器的反馈函数f(a1,a2,…,an)是a1 ,a2,…,an的线性函数,则称之为线性反馈 移位寄存器LFSR(linear feedback shift register )。此时f可写为 f(a1,a2,…,an)=cna1 cn-1a2 … c1an 其中常数ci=0或1 2加法。ci=0或1可 用开关的断开和闭合来实现,如图4-4所示。

线性反馈移位寄存器LFSRverilog实现

线性反馈移位寄存器LFSRverilog实现

线性反馈移位寄存器LFSRverilog实现⼀、什么是LFSR?线性反馈移位寄存器(linear feedback shift register, LFSR)是指,给定前⼀状态的输出,将该输出的线性函数再⽤作输⼊的移位寄存器。

异或运算是最常见的单⽐特线性函数:对寄存器的某些位进⾏异或操作后作为输⼊,再对寄存器中的各⽐特进⾏整体移位(百度百科定义)。

线性反馈移位寄存器反馈分为两种,⼀种是IE型的LFSR,即异或门内接的线性反馈移位寄存器:另⼀种是异或门外接的线性反馈移位寄存器,简称EE型LFSR:gi表⽰接不接⼊反馈,只能为0或1,为1即为接⼊,为0不接⼊。

关于线性反馈移位寄存器(LFSR)数学原理更加详细的介绍,可以参考下⾯这篇⽂章。

本⽂主要是介绍如果使⽤verilog来实现LFSR电路的编写。

需要注意的是,LFSR是伪随机的,这意味着它只是接近随机,并不是完全随机的。

这是因为其实从LFSR的任何状态,你都可以预测下⼀个状态。

有⼀些重要的移位寄存器属性需要注意:LFSR是伪随机的,从LFSR的任何状态,都可以预测下⼀个状态。

影响下⼀个状态的⽐特位叫做抽头。

当抽头使⽤XOR门时,全0状态不会出现,这是因为0与0异或将始终产⽣0,此时LFSR将停⽌运⾏。

当抽头使⽤XNOR门时,全1状态不会出现,这是因为1与1同或(异或⾮)将始终产⽣1,此时LFSR将停⽌运⾏。

任何LFSR的最⼤可能迭代次数 = 2^N-1,N为级数,也就是寄存器bit位的个数。

那么怎样的LFSR才能遍历2^N-1个状态,产⽣最⼤的迭代次数呢?也就是到底寄存器的哪些位去组合然后反馈到输⼊端,才能使该LFSR的所有2^N-1个状态都出现呢?这⾥官⽅给了⼀个表,我们可以根据这个表来确定LFSR的结构:需要注意的是LFSR的每⼀位的索引是从1开始,然后到N,⼀共2^N-1个状态(因为使⽤异或反馈时要除去全0状态,使⽤异或⾮反馈时要除去全1状态)。

第7讲 序列密码体制

第7讲 序列密码体制
2014-2-13 6
事实上,序列密码算法其安全性依赖于简单的异或运算和密钥 序列。密钥流发生器生成的看似随机的密钥流实际上是确定的,在 解密的时候能很好的将其再现。密钥流发生器输出的密钥越接近随 机,对密码分析者来说就越困难。 如果密钥流发生器每次都生成同样的密钥流的话,对攻击来说, 破译该算法就容易了。
2014-2-13
11
2.同步序列密码
密钥流 生产器
密 钥 流 Ki 明文流mi
密钥k(基于安全通道传递
密钥流 生产器
密 钥 流 Ki
加密算法E
密文流ci
解密算法D
明文流mi
同步序列密码模型
同步流密码SSC(Synchronous Stream Cipher): 内部状态 i 与明文消息无关,密钥流将独立于明文。因此, 对于明文而言,这类加密变换是无记忆的,但它是时变的;只有 保 持 两 端 精 确 同 步 才 能 正 常 工 作 ; 无 差 错 传 播 ( Error Propagation)。
目前,最为流行和实用的密钥流产生器大多基于线性反馈移位 寄存器。如下图所示,其驱动部分是一个或多个线性反馈移位寄存
器。
LFSR ……… F LFSR1 LFSR2 LFSRn …… F
zi
zi
2014-2-13
15
预备知识:
布 尔 函 数
一般地,我们把n元布尔函数定义为如下映射:
f : F2n F2
张仕斌 万武南 张金全 孙宣东编著
西安电子科技大学出版社 二00九年十二月
2014-2-13 1
第4章 序列密码体制
2014-2-13
2
知识点:
◇ 序列密码的概念 ◇ 线性反馈移位寄存器 ◇ 序列和周期

线性反馈移位寄存器[整理版]

线性反馈移位寄存器[整理版]

有趣的线性反馈移位寄存器(LFSR)最近一直在研究信道编码,发现在信道编码里面有一个电路比较重要也比较有趣,那就是线性反馈移位寄存器LFSR ,相信大家对LFSR 电路也不陌生了,在通信领域lfsr有着很广泛的应用,比如说M序列,扰码,信道编码,密码学这方面都有很广泛的应用,LFRS的结构一般如下图:其中他需要一个生成多项式为:这个多项式是一个本原多项式,然后知道这个电路有一些有意思的性质,下面我以m = 3 来做个例子具体的电路图如下所示:假设开始的时候(D2,D1,D0 )= (0,0,1),那么每过一个时钟周期会进行跳变一次,可以看到具体的跳变如下所示:然后我们可以看到这个计数器循环起来了,很好玩吧,无论进入那样一个状态除了0之外,都可以循环着回来,其实这里就相当于了一个3bit的伪随机数,很有意思,不是所有的多项式都有这个特性,我们现在在从数学上面来看看这个问题,其实最上面的电路是可以看成是一个除法电路,在Galois域的一个除法电路。

现在假设的是R(x)是寄存器中剩余的数据,M(x)是输入的码字多项式,然后数学公式可以表示成:然后我分别计算出了M(x)的各种情况,然后我们单独进行一下7次方的运算发现7次方的运算和0次的时候的余数是一样的然后我们发现其实在上面的电路中对多项式的除法也是可以循环起来的,可以验证的是把这个记成上面的式子是可以循环的,然后我又想到了CRC的计算,CRC的计算也可以通过一个除法电路来实现,假设码子多项式为生成多项式为那么CRC的码字为这样我们同样可以用LFSR电路来进行实现首先对M(x)乘以一个x的r次方,然后去去除G(x),在电路上的表现就是所以在输入码字以后还需要多输入r拍的0这样才能使最后的CRC码字数据.同理这个电路也可以进行CRC校验,把生成的数据全部都依次输入进这个。

《密码学》线性反馈移位寄存器

《密码学》线性反馈移位寄存器
《密码学》线性反馈移位寄存器
主要内容
• 移位寄存器 • 线性移位寄存器的综合 • 线性等价量的概念
移位寄存器-1
• 传统的,流密码基于移位寄存器,如今也有更广泛的各 类设计方法
• 移位寄存器包括
• 级,每级有1个比特 • 反馈函数
• 线性反馈移位寄存器(LFSR)的反馈பைடு நூலகம்数是线性的
实例-1
实例-2
是 fn+1(x)=1+xn+1 ln+1=n+1
fn+1(x)=fn(x)+xn-mfm(x) ln+1=max{ln,n+1-ln}
n<N-1?


输出
算法流程
梅森算法举例
• N=7,
• 定义:能产生该序列的线序性列移位的寄存线器性的最等小价长度量
• 多项式及其解空间的关系 • 极小特征多项式的唯一性 • 极小特征多项式的次数称为其线性等价量或递归长度 • 线性等价量相同的序列,周期为多少?
移位寄存器-2
• 举例 • (非线性) 反馈函数
f(xi, xi+1, xi+2) = 1 xi xi+2 xi+1xi+2
• (非线性) 移位寄存器
• 前3 bits是初态: (x0, x1, x2)
• 举例 • LFSR
移位寄存器-3
• 则对于所有的i,xi+4 = xi xi+2 • 若初态 (x0,x1,x2,x3,x4) = 01110
• 问题提出:对于长度为N的二元序L列F,S求R 出的产综生这合一序列的技术最小的LFSR ,即最短的
线性移位寄存器的特征多项式
• 思路:BCH码的译码中,从校验子求找错位多项式的迭代算法。运用归纳法求出一系列 线性移位寄存器,使每一个线性移位寄存器都产生该序列的前n项,从而使最后得到的 线性移位寄存器是产生所给N长的二元序列的最短线性移位寄存器

【常用电路】线性反馈移位寄存器(LFSR)

【常用电路】线性反馈移位寄存器(LFSR)

【常⽤电路】线性反馈移位寄存器(LFSR)读华为技术⽂档《FIFO经验谈》看到的这个电路: FIFO的读写地址产⽣⽐较简单,当读使能有效时,在时钟作⽤下,读地址加1;当写使能有效时,写地址加1。

当FIFO深度较⼤时,同时FIFO的速度要求较⾼时,可以采⽤线性反馈移位计数器(LFSR)。

它的速度⾮常快,但是要牺牲⼀个地址。

针对同步的⼤FIFO,它们的读写地址完全可以使⽤线性反馈移位寄存器 LFSR 产⽣,⽽不是简单的加1操作,极⼤的提⾼了速度,如果对FIFO的利⽤率没有很⾼要求的时候,推荐使⽤该⽅法。

使⽤LFSR的优点是在XILINX的FPGA中布线,可以使⽤LUT直接完成。

1/************************************************************\2* *3* Generation of Read and Write address pointers. They use *4* LFSR counters, which are very fast. Because of the *5* nature of LFSR, one address is sacrificed. *6* *7\************************************************************/8wire read_linearfeedback, write_linearfeedback;910assign read_linearfeedback = ! (read_addr[8] ^ read_addr[4]);11assign write_linearfeedback = ! (write_addr[8] ^ write_addr[4]);1213always @(posedge clock or posedge fifo_gsr)14if (fifo_gsr) read_addr <= 9'h0;15else if (read_allow)16 read_addr <= { read_addr[7], read_addr[6], read_addr[5],17 read_addr[4], read_addr[3], read_addr[2],18 read_addr[1], read_addr[0], read_linearfeedback };1920always @(posedge clock or posedge fifo_gsr)21if (fifo_gsr) write_addr <= 9'h022else if (write_allow)23 write_addr <= { write_addr[7], write_addr[6], write_addr[5],24 write_addr[4], write_addr[3], write_addr[2],25 write_addr[1], write_addr[0], write_linearfeedback };。

现代密码学杨波课后习题讲解

现代密码学杨波课后习题讲解

习题
第四章 公钥密码
习题
1.证明以下关系:
(1)(a mod n) (b mod n),则a b mod n (2) a b mod n,则b a mod n
(3) a b mod n,b c mod n,则a c mod n
解:(1)设 a mod n ra ,b mod n rb ,由题意得 ra rb ,且存在 整数 j, k ,使得a jn ra ,b kn rb ,可得 a b ( j k)n, 即n | (a b), 证得a b mod n
习题
习题
习题
习题
第五章密钥分配与密钥管理
习题
2.Diffie-Hellman密钥交换协议,中间人攻击,详细实施过程。
ECB模式:每个明文组独立地以同一密钥加密 CBC模式:加密算法的输入是当前明文组与前一密文组的异或
习题
习题
4. 在 8 比特 CFB 模式中,如果在密文字符中出现 1 比特的错误, 问该错误能传播多远。
CFB模式:每次只处理输入的j比特,将上一次的密文用作 加密算法的输入以产生伪随机输出,该输出再与当前明文 异或以产生当前密文。
,(ab mod 2n ) (abdiv2n )
1,(ab mod 2n ) (abdiv2n )
注意:(ab mod 2n)相当于 ab 的 n 个有效最低位,(ab div 2n) 是 ab 右移 n 位。
IDEA:明文、分组、密钥、8轮迭代(不是传统的feistel)、 输出变换
习题
习题
Elgamal:y,p,g,x;密文对 解:(1) C1≡gk mod p = 72 mod 71 = 49,
C2≡yBk M mod p = (32×30) mod 71= 57 密文为 C=(C1, C2)=(49, 57)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二节
线性反馈移位寄存器序列
1
基本概念和性质
反馈移位寄存器, 特别线性反馈移位寄存器是许多密钥序列生成器的重要部件, 这一节引进线性反馈移位寄存器的模型, 并用数学(特别是代数)工具描述线性反馈移位寄存器.
2
设n是正整数, n级反馈移位寄存器的模型见下图
a k+n−1 a k+n−2……… a k+1a k输出
f (x n,…, x2, x1)
反馈函数其中f(x1,…, x n)是一逻辑函数, 即f(x1,…, x n)∈2[x1,…, x n]这里2= {0, 1}表示二元域, n≥ 1.
3
当f(x1,…, x n)是线性函数时, 即
f(x1, x2, … , x n) =c1x1+c2x2+ … +c n x n, c i∈2,
称对应的反馈移位寄存器为线性反馈移位寄存器(简称LFSR), 所产生的序列称为线性(反馈)移位寄存器序列, 简记为LFSR序列.
4
5
此时所产生的序列适合关系式
a n +k = 1
0n i −=∑c n −i a k +i , k = 0, 1, 2, ….
并称序列a = (a 0, a 1,…)为n 级线性递归序列。

线性递归序列是LFSR 序列的数学描述, 但为书写简便, 以后在称谓上我们就用LFSR 序列.
定义4.1 设a是LFSR序列, 称a的次数最小的特征多项式为a的极小多项式.
定理4.1 设a是LFSR序列, 则a的极小多项式是唯一的.
6
进一步, 设m
(x)是a的极小多项式, 则f(x)是a的一
a
(x)|f(x).
个特征多项式当且仅当m
a
显然, LFSR序列的极小多项式刻画了生成该序列的最短LFSR,而定理4.1进一步说明, 这样的最短LFSR是唯一的.
7
8
设f (x )是F 2上n 次多项式, a =(a 0,a 1,a 2,…)是以f (x )为特征多项式的线性递归序列, 则a 由前n 比特a 0,a 1,…,a n −1唯一确定.
例如: 设f (x )=x 3+x +1, a =(0,1,1,…)是以f (x )为特征多项式的线性递归序列, 则
a =(0,1,1,1,0,0,1,0,1,1,1,…).
定义4.2 对于F
上序列a, 若存在非负整数k和正
2
整数T, 使得对任意i≥k, 都有a
=a i, 则称a是准周
i+T
期序列, 最小这样的T称为a的周期, 记为per(a); 若k=0, 则称a是(严格)周期序列.
注4.1 设per(a)=T, R是正整数, 若对任意i≥k, 有a i+R=a i, 则T|R.
9
显然, LFSR是一种有限状态机, 因此, 由LFSR生成的序列必然是准周期的. 下面的定理表明反之也是成立的, 即所有的准周期序列都可用LFSR来生成.
定理4.2 a是准周期序列当且仅当a是LFSR序列.
10
利用序列的极小多项式可以判断序列是否严格周期.
(x)是a的极小多项定理4.3 设a是LFSR序列, m
a
(0)≠0.
式, 则a是周期序列当且仅当m
a
11
进一步, 序列的周期由其极小多项式的周期完全确定.
定理4.4 设a是周期序列, f(x)是它的极小多项式, 则per(a)=per(f(x)).
12
注4.2 若a是非严格周期序列, 定理4.4也成立. 由于非周期序列总可以转化成周期序列, 并且实际中使用的序列也都是周期序列, 故后面的讨论仅针对周期序列.
13
推论4.1 设f(x)是F
上不可约多项式, 则以f(x)为
2
特征多项式的非零序列a有per(a)=per(f(x)).
14
最后, 我们给出LFSR序列的根表示.
[x]是n次无重因子多项式,f(0)≠0, 定理4.5 设f(x)∈F
2
F2m是f(x)的分裂域, α1,α2,…,αn∈F2m是f(x)的全部根, 则
,a1,…), 存在唯对任意以f(x)为特征多项式的序列a=(a
一一组β
,β2,…,βn∈F2m, 使得
1
a k=β1α1k+β2α2k+⋅⋅⋅+βnαn k, k≥0.
15
反之,设β
,β2,…,βn∈F2m,若
1
a k=β1α1k+β2α2k+⋅⋅⋅+βnαn k∈F2, k≥0,
,a1,…)以f(x)为特征多项式, 且f(x)是a的极则a=(a
≠0, 1≤i≤n.
小多项式当且仅当β
i
16
m-序列
注意到LFSR总是将0状态转化成0状态, 因此对于一个n级LFSR, 最多可输出周期为2n−1的周期序列.
定义4.3 设a是n级LFSR序列, 若per(a)=2n−1, 则称a为n级最大周期序列, 简称为n级m-序列.
17
由定义显然有
定理4.6 设a是n级LFSR序列, 则a是n级m-序列当且仅当a的极小多项式是n次本原多项式
18
定理4.7 若a是以n次本原多项式f(x)为极小多项式的m-序列, 则0, a, La,…, L2n−2a是以f(x)为特征多项式的序列全体.
定理4.7说明, 由同一个本原多项式生成的两条m-序列彼此平移等价. 由定理4.7, 容易证明m-序列满足以下平移可加性.
19
定理4.8 设a是n级m-序列, 则对于非负整数s和t, 有L s a+L t a=L k a或0, 其中0≤k≤2n−2.
注4.3 实际上, 定理4.8给出的平移可加性是m-序列的特有性质, 即对于周期为T的序列a, 非负整数s和t, 若L s a+L t a=L k a或0, 0≤k≤2n−2, 则a是m-序列.
20
m-序列是最重要的线性反馈移位寄存器序列, 不仅是因为m-序列的周期可达到最大, 而且因为m-序列的统计特性完全满足Golomb S.W.提出的三条随机性假设.
21
22
(1) 元素分布
设a 是周期为T 的序列, 将a 的一个周期依次排列在一个圆周上, 并且使得a 0和a T −1相邻, 我们称这样的圆为a 的周期圆.
23
引理4.1 设a 是n 级m-序列, 0 < k ≤ n , 则F 2上任意一个k 维向量(b 1,b 2,…,b k )在 a 的一个周期圆中出现的次数N (b 1,b 2,…,b k )为
N (b 1,b 2,…,b k ) = 122, (,,,)(0,0,...,0)2
1,
.n k k n k b b b −−⎧≠⎪⎨−⎪⎩…若,否则
特别地, 分别取k=1和k=n, 有
推论4.2 在n级m-序列的一个周期中1出现2n−1次, 0出现2n−1−1次.
推论4.3 在n级m-序列的一个周期(圆)中每个(n维)非零状态出现且仅出现1次.
24
25
(2) 游程分布
设a 是周期序列, a 在一个周期圆中形如
010...01全为 和 1
01...10全为
的项分别叫做a 的0游程和1游程. 而0游程中连续0的个数及1游程中连续1的个数称为游程长度. m -序列具有非常理想的游程分布.
定理4.9 设0<k≤n−2, 在n级m-序列的一个周期圆中, 长为k的0游程和1游程各出现2n−k−2次; 长度大于n的游程不出现; 长度为n的1游程和长度为n−1的0游程各出现一次; 长度为n的0游程和长度为n−1的1游程不出现; 游程总数为2n−1.
26
27
(3) 自相关函数
m-序列的自相关函数满足二值性, 即
定理4.10 设a 是n 级m -序列, 则
C a (t ) = 10(1)
k k t T a a k +−+=−∑=1, 0(mod 21);21,
0(mod 21).n n n t t ⎧−≠−⎪⎨−≡−⎪⎩若若.
线性复杂度与Berlekamp-Massey算法
线性复杂度的概念是针对LFSR结构提出的, 它衡量了用LFSR来生成给定序列的最小代价. 由于特征多项式完全刻画了生成序列的LFSR, 故自然有以下定义.
28
定义4.4 设a是周期序列, 称序列a的极小多项式的次数为a的线性复杂度, 记为LC(a).
注4.4 对于周期序列a, 显然有LC(a)≤per(a)
29
1969年提出的Berlekamp-Massey算法[14]解决了求序列极小LFSR的问题. 对于线性复杂度为L的序列a, 该算法在已知a的连续2L比特的前提下即可还原出整条序列, 计算时间复杂度仅为O(L2).
30
第四章序列密码
因此, 好的伪随机序列必须具有高的线性复杂度. 对于上一小节介绍的n级m-序列, 其周期为2n−1, 是n 级LFSR能输出的最大周期序列, 但n级m-序列的极小多项式是n次本原多项式, 这意味着n级m-序列的线性复杂度等于n, 则在已知2n比特的条件下, 利用Berlekamp-Massey算法可还原出长为2n−1的原序列. 可见, n级m-序列绝不可单独作为密钥流序列使用.
31。

相关文档
最新文档