4.2线性反馈移位寄存器序列
中衡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 线性移位寄存器的一元多项式表示
设 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实现⼀、什么是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讲 序列密码体制
事实上,序列密码算法其安全性依赖于简单的异或运算和密钥 序列。密钥流发生器生成的看似随机的密钥流实际上是确定的,在 解密的时候能很好的将其再现。密钥流发生器输出的密钥越接近随 机,对密码分析者来说就越困难。 如果密钥流发生器每次都生成同样的密钥流的话,对攻击来说, 破译该算法就容易了。
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)读华为技术⽂档《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)。
线性反馈移位寄存器
输入的位移寄存器
目录
01 简介
03 本原多项式
02 斐波那契 04 流密码
线性反馈移位寄存器(linear feedback shift register, LFSR)是指,给定前一状态的输出,将该输出 的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后 作为输入,再对寄存器中的各比特进行整体移位。
图1作为基于异或运算的LFSR的替换,LFSR也可以给予同或运算。与使用异或门的LFSR全零状态下为无效状 态相应的,使用同或门的LFSR在全“1”状态下也是无效的。有LFSR或者基于同或门的LFSR生成的序列可以被认 为是同格雷码或者自然二进制码同样有效的二进制序列。
在LFSR中,抽头的设定可以用有限域算数中模2的多项式来表示。这就意味着,多项式中的所有系数必须是 “1”或者“0”。这个多项式被称作回授多项式或特征多项式。例如图1中的抽头为在第16,14,13,11个比特, 则相应的特征寄存器是产生信号和序列的常用设备,它分为线性和非线性两大类,著名的一序列和序列就是分别由线 性和非线性反馈移位寄存器所生成的。线性反馈移位寄存器(Linear feedback shift register,LFSR)是
通常由动态或静态主从型触发器构成。反馈回路由异或门构成。其特性通常由一个特征多项式表征。使用二 输入异或门计算反馈函数的最大长度或近最大长度不纠立寄存器的特征多项式。这种电路的特点是结构简单,它 的上限移位速度取决于移位单元的延迟时间和二输入异或门的延迟时间,因此,能获得较高的速度 。线性反馈 移位寄存器中的移位单元是由主一从型边沿触发器构成的。在这种结构的移位单元中,主从两极锁存器在两相不 交叠时钟的控制下,使数据在时钟上升沿被采样,并一直保持到下一个时钟上升沿。电路中四个移位单元都是由 动态主从边沿型触发器构成的,每次移位的操作都需要数据串行依次经过两级锁存器。
4.2线性反馈移位寄存器序列
第二节线性反馈移位寄存器序列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序列.45此时所产生的序列适合关系式a n +k = 10n 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).个特征多项式当且仅当ma显然, LFSR序列的极小多项式刻画了生成该序列的最短LFSR,而定理4.1进一步说明, 这样的最短LFSR是唯一的.78设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序列, ma(0)≠0.式, 则a是周期序列当且仅当ma11进一步, 序列的周期由其极小多项式的周期完全确定.定理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)∈F2F2m是f(x)的分裂域, α1,α2,…,αn∈F2m是f(x)的全部根, 则,a1,…), 存在唯对任意以f(x)为特征多项式的序列a=(a一一组β,β2,…,βn∈F2m, 使得1a k=β1α1k+β2α2k+⋅⋅⋅+βnαn k, k≥0.15反之,设β,β2,…,βn∈F2m,若1a k=β1α1k+β2α2k+⋅⋅⋅+βnαn k∈F2, k≥0,,a1,…)以f(x)为特征多项式, 且f(x)是a的极则a=(a≠0, 1≤i≤n.小多项式当且仅当βi16m-序列注意到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-序列.20m-序列是最重要的线性反馈移位寄存器序列, 不仅是因为m-序列的周期可达到最大, 而且因为m-序列的统计特性完全满足Golomb S.W.提出的三条随机性假设.2122(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)21,.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次.2425(2) 游程分布设a 是周期序列, a 在一个周期圆中形如010...01全为 和 101...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.2627(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)291969年提出的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。
移位寄存器——精选推荐
移位寄存器寄存器在数字电路中,用来存放二进制数据或代码的电路称为寄存器。
寄存器是由具有存储功能的触发器组合起来构成的。
一个触发器可以存储一位二进制代码,存放N位二进制代码的寄存器,需用n个触发器来构成。
按功能可分为:基本寄存器和移位寄存器。
移位寄存器移位寄存器中的数据可以在移位脉冲作用下一次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,串行输入、并行输出,十分灵活,用途也很广。
目前常用的集成移位寄存器种类很多,如74164、74165、74166均为八位单向移位寄存器,74195为四位单向移存器,74194为四位双向移存器,74198为八位双向移存器。
反馈移位寄存器(一)、反馈移位寄存器的介绍1. 什么是反馈移位寄存器ai表示二值(0,1)存储单元,ai的个数n成为反馈移位寄存器的级。
在某一时刻,这些级构成该反馈移位寄存器的一个状态,共有2n个可能状态,每一个状态对应于域GF(2)上的一个n维向量,用(a1,a2,a3,…an)表示。
在主时钟周期的周期区间上,每一级存储器ai都将内容向下一级ai-1传递,并根据寄存器的当前状态f(a1,a2,a3,…an)作为an的下一时间内容,即从一个状态转移到下一个状态。
其中函数f(a1,a2,a3,…an)称为该反馈移位寄存器的反馈函数。
2. 线性反馈移位寄存器和非线性反馈移位寄存器如果反馈函数f(a1,a2,a3,…an)是a1,a2,a3,…an 的线性函数函数,则该反馈移位寄存器是线性反馈移位寄存器用LFSR表示,比如:f(a1,a2,a3,…an)=kna1⊕kn-1a2⊕….⊕k2an-1⊕k1an,其中系数ki∈{0,1}(i=1,2,3,…,n)。
相应的如果反馈函数f(a1,a2,a3,…an)是a1,a2,a3,…an 的非线性函数函数,则该反馈移位寄存器是非线性反馈移位寄存器。
(二)、反馈移位寄存器的性质1.移位寄存器序列反馈函数f(a1,a2,a3,…an)为n元布尔函数。
线性反馈移位寄存器原理
线性反馈移位寄存器原理
线性反馈移位寄存器是一种在数字电路中常用的元件,它能够将输入数据按照一定的顺序进行移位,并以一定的方式反馈部分数据到输入端。
它由多个触发器组成,每个触发器都能存储一个比特的数据。
实现线性反馈移位寄存器基本的原理是运用触发器的工作原理。
触发器是一种能够存储数据并在时钟信号的作用下改变输出状态的元件。
常见的触发器有D触发器和JK触发器等。
线性反馈移位寄存器的输入数据依次通过每个触发器,并从最后一个触发器的输出端输出。
同时,一部分触发器的输出被反馈到输入端,与输入数据进行异或运算后作为下一个触发器的输入。
这样,每次时钟信号到来时,输入数据随着触发器的工作状态向前移位,并根据反馈数据的异或结果产生新的输入数据。
通过合理选择反馈数据的位置和数值,线性反馈移位寄存器可以实现不同的功能。
例如,当反馈数据位于最后一个触发器和倒数第二个触发器之间,并且为1时,可以实现一个带有反馈的移位寄存器;当反馈数据为1并且位于最后一个触发器时,可以实现一个循环移位寄存器。
线性反馈移位寄存器广泛应用于数字通信、数据编码、序列生成等领域。
它具有简单、可靠、高效的特点,在现代的数字系统中扮演着重要的角色。
移位寄存器讲解
移位寄存器讲解1. 什么是移位寄存器?移位寄存器是一种基本的数字电路元件,用于将数据按位进行移位操作。
它由多个触发器(或者称为存储器元件)组成,可以在时钟的控制下,实现数据的输入、输出和移位操作。
2. 移位寄存器的分类根据移位方向和数据输入方式的不同,移位寄存器可以分为以下几种类型:2.1 串行输入的移位寄存器串行输入的移位寄存器每次只能输入一位数据,数据位依次串行输入到寄存器中。
这种类型的移位寄存器常用于串行数据通信和数据处理中。
2.2 并行输入的移位寄存器并行输入的移位寄存器可以同时输入多位数据,每位数据对应寄存器中的一个存储单元。
这种类型的移位寄存器常用于并行数据传输和存储器操作中。
2.3 串行输出的移位寄存器串行输出的移位寄存器每次只能输出一位数据,数据位依次串行输出到外部设备。
这种类型的移位寄存器常用于串行数据通信和数据处理中。
2.4 并行输出的移位寄存器并行输出的移位寄存器可以同时输出多位数据,每位数据对应寄存器中的一个存储单元。
这种类型的移位寄存器常用于并行数据传输和存储器操作中。
3. 移位寄存器的工作原理移位寄存器的工作原理可以分为两个方面:数据输入和数据移位。
3.1 数据输入对于串行输入的移位寄存器,数据从一个输入端口依次输入到寄存器中的各个存储单元。
每当时钟信号到来时,数据在存储单元之间进行移位操作,新的数据通过输入端口进入寄存器。
对于并行输入的移位寄存器,数据同时从多个输入端口输入到寄存器中的各个存储单元。
时钟信号到来时,数据保持不变,不进行移位操作。
3.2 数据移位无论是串行输入还是并行输入的移位寄存器,当时钟信号到来时,数据都会在存储单元之间进行移位操作。
移位的方向可以是向左移位(左移)或向右移位(右移),具体方向由控制信号决定。
移位寄存器的移位操作可以分为以下几种方式:3.2.1 逻辑右移逻辑右移是指将数据向右移位,最右边的位被丢弃,最左边的位用0填充。
3.2.2 逻辑左移逻辑左移是指将数据向左移位,最左边的位被丢弃,最右边的位用0填充。
应用密码学第4章序列密码体制
第4章 序列密码体制
发生器的周期必须非常长,要比密钥更换之前发生器所
能输出的位的长度还要长得多。如果其周期比明文还要短, 那么明文的不同部分将用同样的加密——这是一个严重的弱 点。如果密码分析者熟悉这样的一批明文,他就可以恢复出 密钥流,然后恢复出更多的明文。即使分析者仅有密文,他 也可以用同一密钥流加密的不同部分密文相异或得到明文跟 明文的异或。这只是一个有非常长密钥的单一异或运算罢了。 周期需要多长取决于应用。用于加密连续T1连接通信 的密钥发生器每天加密237比特。那么它的周期应该比这个 数大几个数量级,尽管密钥每天都要更换。如果周期足够长, 你仅仅需要每周甚至每月才更换密钥一次。
第4章 序列密码体制
第4章 序列密码体制
4.1 密码学中的随机数 4.2 序列密码的概念及模型 4.3 线性反馈移位寄存器 4.4 非线性序列简介
4.5 常用的序列密码 密码学中的随机数
为什么在密码学中要讨论随机数的产生?因为许多密码 系统的安全性都依赖于随机数的生成,例如DES加密算法中 的密钥,RSA加密和数字签名中的素数。所有这些方案都需 要足够长度并且要“随机”的数,即使得任何特定值被选中
第4章 序列密码体制
4.1.4 伪随机数的评价标准
如果一序列产生器是伪随机的,它应有下面的性质: (1)看起来是随机的,表明它可以通过所有随机性统计
检验。
现在有许多统计测试。它们采用了各种形式,但共同思路 是它们全都以统计方式检查来自发生器的数据流,尝试发现数
据是否是随机的。
确保数据流随机性的最广为人知的测试套件就是 GeorgeMarsaglia的DIEHARD软件包(请参阅 /pub/diehard/)。另一个适合此类测试的 合理软件包是pLab(请参阅http://random.mat.sbg.ac.at/tests/)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。