第4章-序列密码变换理论课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4章-序列密码变换理论课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 序列 密码 变换 理论 课件
- 资源描述:
-
1、第4章 序列密码变换理论4.1 序列密码的基础理论 4.2 密钥序列的产生方法 4.3 序列密码的安全性 4.4 序列密码的应用 第第4章章 序列密码变换理论序列密码变换理论第4章 序列密码变换理论4.1 序列密码的基础理论序列密码的基础理论序列密码又称流密码(Stream Cipher),其加密方式是用密钥序列z=z1z2的第i个符号加密明文序列m=m1m2的第i个符号,即 在序列密码中,第i个密钥zi由第i时刻密钥生成器的内部状态和初始密钥K决定。密码的安全性主要取决于所用密钥的随机性,所以设计序列密码的核心问题在于设计随机性较好的密钥序列生成器。密钥序列生成器可看做是一个有限状态自动机,
2、由输出符号集、状态集、状态转移函数f、输出函数g和初始状态0所组成,如图4-1所示。2121mEmEmEzzz第4章 序列密码变换理论图4-1 密钥序列生成器第4章 序列密码变换理论序列密码可分为两类:同步流密码(Synchronous Stream Cipher)和自同步流密码(Self-Synchronous Stream Cipher),前者的密钥序列独立于明文和密文,后者的密钥序列与已产生的一定数量的密文有关。同步流密码的加密过程可描述为这里,0是初始状态,可以由密钥K确定;f是状态转移函数;g是产生密钥序列的函数;E是由密钥序列和明文序列产生密文的函数。Kfii,1Kgzii,izi
3、mEci第4章 序列密码变换理论在同步序列密码中,只要发送端和接收端有相同的初始密钥和初始状态,就能产生出相同的密钥序列,因此说收、发双方的密钥生成器是同步的。其优点是无错误传播,一个传输错误只能影响一个符号,不会影响后继的解密结果。自同步序列密码的加密过程可描述为其中,0=(ct,ct+1,c1)是非秘密的初始状态,是初始密钥;其余符号与同步序列密码中的含义相同。11,ii ti ticcc Kgzii,izimEci第4章 序列密码变换理论4.1.1 周期序列的极小多项式及周期序列的极小多项式及m序列序列通常,密钥流生成器中的驱动部分是一个反馈移位寄存器。线性反馈移位寄存器LFSR(Lin
4、ear Feedback Shift Register)的理论非常成熟,它的实现简单、速度快、便于分析,因而成为构造密钥流生成器最重要的部件之一。移位寄存器是一种有限状态自动机,它由一系列的存储单元、若干个乘法器和加法器通过电路连接而成。假设共有n个存储单元(此时称该移位寄存器为n级),每个存储单元可存储一比特信息,在第i时刻各个存储单元中的比特序列(aiai+1ai+n1)称为移位寄存器的状态,(a0a1an1)为初始状态。在第j个时钟脉冲到来时,存储单元中的数据向前移动一位,状态由(ajaj+1aj+n1)变为(aj+1aj+2aj+n),同时,按照固定规则产生输入比特和输出比特。图4-2
5、描述了GF(2)上的n级LFSR。第4章 序列密码变换理论图4-2 GF(2)上的n级LFSR第4章 序列密码变换理论产生输入数据的变换规则称为反馈函数。给定了当前状态和反馈函数,可以唯一确定输出和下一时刻的状态。通常,反馈函数是一个n元布尔函数。定义定义4-1 设LFSR的输出序列为a=a0a1a2,则称满足对任意iZ+,ai=ai+p的最小正整数p为序列的周期。具有有限周期的序列称为周期序列。更一般地,如果存在一个下标i0,满足ai+p=ai(对所有ii0成立)则称序列a是周期为p的终归周期序列。非终归周期序列的周期定义为无穷大。第4章 序列密码变换理论通常我们将形如a0a1的序列称为半无
6、限序列,记作a,而将形如a0a1an1a0a1an1的序列称为周期为n的周期半无限序列,记作(an)。一个n级LFSR的输出序列的最长周期由以下定理确定。定理定理4-1 n级LFSR的周期2n1。周期是衡量序列伪随机性的一个重要标准,要产生性能较好的密钥序列,要求作为密钥发生器的驱动部分的移位寄存器有较长的周期。除此之外,序列的随机性还用游程分布和周期自相关函数来度量。第4章 序列密码变换理论定义定义4-2 在序列a中,若有at1at=at+1=at+l1at+l,则称(xt,xt+1,xt+l1)为一个长为l的游程。定义定义4-3 设序列(an)的周期为p,定义周期自相关函数为其中,A=|0
7、ip;ai=ai+j|;D=|0ip;aiai+j|。若p|j,则R(j)为同相自相关函数,此时A=p,D=0,故R(j)=1;若pj,则R(j)为异相自相关函数。Golomb对于二进制序列的随机性提出了三条假设4,满足这些假设的序列就被视为具有较强的随机性,或称其为伪随机序列(Pseudo-Random Sequence)。=1,2,ADR jjp第4章 序列密码变换理论这三条假设是:(1)若序列的周期为偶数,则在一个周期内,0、1的个数相等;若序列的周期为奇数,则在一个周期内,0、1的个数相差1。(2)在一个周期内,长度为l的游程数占游程总数的,且对于任意长度,0游程与1游程个数相等。(3
8、)所有的异相自相关函数值相等。这三条假设也可以推广到GF(q)上的序列。12l第4章 序列密码变换理论LFSR可以用线性函数递归地定义,末端存储器的输入引入多项式f(x)=c0+c1x+c2x2+cn1xn1其中,未定元x(xak=ak1)称为延迟算子。f(x)称为LFSR的联结多项式。f(x)的互反多项式称为LFSR的特征多项式。1011110njjijniniiniacacacaca 12110nnnncxcxcxcxf第4章 序列密码变换理论已知二元周期序列a=a0a1a2,其周期p(a)=L,显然,由联结多项式为1+xL1的L级LFSR(称为纯轮换移位寄存器)可以产生序列a,联结多项式
9、为1+x2L1,1+x3L1,的LFSR也可以产生a。我们将能产生a的LFSR的联结多项式组成的集合记作J(a):J(a)=g(x)|g(x)F2x,g(x)a=0 设ma(x)是J(a)中次数最低的首一多项式,则J(a)=h(x)ma(x)|h(x)F2x即J(a)中的多项式都是ma(x)的倍式。事实上,可以证明J(a)是多项式环GF(2)x的一个理想,其生成元为ma(x)。通常称ma(x)为周期序列a的极小多项式,也称极小联结式。显然,用ma(x)作为联结多项式产生序列a是效率最高的一种方案。第4章 序列密码变换理论由于序列的周期与其联结多项式密切相关,下面我们介绍多项式的周期,并用多项式
10、的周期来研究序列的周期。定义定义4-4 设g(x)为GF(2)上的多项式,deg(g(x)1,g(0)0,使g(x)|(1xL)成立的最小正整数L称为g(x)的周期(又称阶或指数),记作p(g)。注:如果g(0)=0,则可将g表示为如下形式:g(x)=xlh(x)h(0)0此时,g(x)的周期定义为h(x)的周期。如果LFSR的联结多项式中的cn10,则称该LFSR是非退化的。第4章 序列密码变换理论定理定理4-2 设ma(x)是非退化LFSR产生的序列a的极小多项式,则p(a)=p(ma),即a的周期等于多项式ma(x)的周期。由定理4-2知,n级LFSR的极小多项式周期的上界与其输出序列的
11、周期上界相同,均为2n1。设f(x)F2x,deg(f(x)1,如果f(x)不能分解为GF(2)中两个非平凡多项式的乘积,则称f(x)是GF(2)上的不可约多项式(或既约多项式)。如果f(x)是GF(2)上的n次不可约多项式,并且其周期达到上界2n1,则称f(x)是GF(2)上的一个n次本原多项式。定理定理4-3 设LFSR的联结多项式f(x)是GF(2)上常数项为1的既约多项式,则对于LFSR的任一非0输出序列a,有ma(x)=f(x),并且p(a)=p(f)。第4章 序列密码变换理论定义定义4-5 周期为2n1的n级LFSR的输出序列称为m序列。m序列是由n级线性移位寄存器所能产生的最长周
12、期序列,同时,它也是研究最为成熟的序列。除了具有最长周期之外,它还有许多良好的伪随机性质,因而在密码学和扩频通信等领域中得到了广泛应用。m序列的基本特性由以下定理给出2。第4章 序列密码变换理论定理定理4-4 GF(q)上的n级m序列a具有以下性质:(1)a的周期为qn1,线性复杂度为n。(2)对任意xGF(q),x0,x在a的一个周期内出现qn1次,0出现qn11次,特别地,GF(2)上的m序列在一个周期内0的个数为2n1,1的个数为2n11。(3)a的极小多项式生成的所有非0序列均为m序列,它们是a的平移序列。(4)设(a(j)(j=1,2,k)为a的k个平移序列,任取k个常数xjGF(q
13、),则序列或为全0序列,或为a的一个平移序列。kjjjaxb1第4章 序列密码变换理论(5)对任意k(1kn),称为序列a的一个k维状态向量。在连续qn1个k维状态向量中,GF(q)k中的每个非0向量出现qnk次,0向量出现qnk1次。(6)如果aj=aj+1=aj+k1=xGF(q),且aj1x,aj+kx,则称(ajaj+1aj+k1)是一个长为k的x游程。kkjjjjqGFaaas11,0,1,2njsjq第4章 序列密码变换理论将序列a的一个周期首尾相连,则游程分布如下:游程的总数为qn1;1kn2时,对xGF(q),长为k的x游程有(q1)2qnk2个;长为n1的0游程有q1个;对x
14、0,长为n1的x游程有q2个,长为n的x游程有1个。第4章 序列密码变换理论(7)设序列a的h间隔采样序列为a(h,d),即a(h,d)=adad+had+2h,则a(h,d)是m序列当且仅当h与qn1互素。当gcd(h,qn1)=1时,m序列a(h,d)的极小多项式与起始采样位置d无关,仅仅与采样间隔h有关;不同的采样间隔对应着不同的极小多项式。(8)对任意h=1,2,qn2,d=0,1,qn2且gcd(h,qn1)=1,h间隔采样序列a(h,d)遍历了所有的n级m序列。下述定理给出了产生m序列的充要条件。第4章 序列密码变换理论定理定理4-5 设GF(2)上n级LFSR的联结多项式为f(x
15、),用G(f)表示可以由此LFSR产生的全部序列集合,则G(f)中的非零序列均为n级m序列的充要条件是f(x)为GF(2)上的n次本原多项式。根据定理4-5,可将产生n级m序列的问题归结为求GF(2)上n次本原多项式这个纯代数问题,这属于近世代数的内容,在此不加详述。LFSR的综合问题是指根据序列中的少量比特求出整个序列所满足的线性递推关系,这个问题可以用Berlelcamp-Massey算法(简称B-M算法)解决6-7。根据B-M算法,对于任意n级LFSR,连续抽取序列的2n项之后,都可以求出产生该序列的联结多项式。该算法以长为N的二元序列a0,a2,aN1为输入,输出产生该序列的最短LFS
16、R的特征多项式fN(x)及其阶数lN。第4章 序列密码变换理论B-M算法算法输入:N,序列a0,a1,aN1。第一步:n0,f0(x),l01,0。第二步:计算dn=fn(D)an,其中,D为延迟算子(Dak=ak1)。(1)当dn=0时,fn+1(x),ln+1fn(x),ln转第三步;(2)当dn=1,且l0=l1=ln=0时,fn+1(x),ln+11+xn+1,n+1转第三步;第4章 序列密码变换理论(3)当dn=1,且lmlm+1=lm+2=ln(mn)时,第三步:若nN1,nn+1,转第二步。输出:fN(x),lN。B-M算法的时间复杂性为O(N2),空间复杂性为O(N)。B-M算
17、法广泛应用于BCH码的译码中。一个二元随机序列a0a1a2可视作一个二元对称信源的输出,当前输出位an与以前输出段a0a1an1之间是完全独立的,因此,即使已知a0,a1,an1,an仍是不可预测的。而对于n级m序列,由B-M算法,只要得知其前2n位,就能以较快的速度求出序列的任一位。111,max,1n mnnnnmmnnfxlfxd dxfxl nl 第4章 序列密码变换理论4.1.2 序列的线性复杂度序列的线性复杂度 度量有限长或周期序列的随机性的方法有很多,但最常用的方法是由Lempel和Ziv建议的“线性复杂度”方法8,用产生该序列的最短LFSR的长度来度量,这种方法本质上衡量了序列
18、的线性不可预测性。定义定义4-6 一个有限序列a=a0a1at的线性复杂度,是指对于选定的初始状态,生成序列a所需要的线性反馈移位寄存器的最小阶数,记作C(a)。对于全0序列,约定其复杂度为0。定理定理4-6 设a=a0a1a2是二元周期序列,且序列a的线性复杂度C(a)=L1,则只要知道a中任意相继的2L位就可确定整个序列及产生a的极小多项式。第4章 序列密码变换理论事实上,B-M算法给出了确定序列线性复杂度的有效方法,由于B-M算法可以求得任一给定序列的线性复杂度,从而使序列的线性复杂度成为同步序列密码的一个重要强度指标。在序列密码中,线性复杂度小的序列不能用作密钥序列,但也不是说,线性复
19、杂度大的序列就一定能作为密钥序列。比如周期为p的序列:0 0 0 0 1 0 0 1 0 如果p很大,则产生该序列的LFSR长度也很大,然而该序列显然不能作为密钥序列。任何周期序列的线性复杂度显然不超过它的周期。此外还可以利用矩阵的秩来研究序列的线性复杂度。第4章 序列密码变换理论定理定理4-7 设域GF(q)上的序列a=a0a1an1,则a的线性复杂度等于矩阵Ga当1,2,n1取遍GF(q)中所有值时的最小秩。证明:设Ga的最小秩为r(Ga),将矩阵Ga的第一行至第n行分别标记为0至n1。若a的线性复杂度C(a)=l,则存在线性递推关系:(4-1)1232112114321123211232
20、10nnnnnnnnnnaaaaaaaaaaaaaaaaaG 10,0,1,1,li lijjjjaac incGF q 第4章 序列密码变换理论从而对于lin1,只要适当地选择1,2,n1,便可将Ga的第i行表示为前面l行的线性组合,因此r(Ga)1。但由线性复杂度的定义,l是使式(4-1)成立的最小整数,因而也是第l行的前nl个分量能够表示成前面各行的对应分量线性组合的最小整数。故前l行线性独立,从而r(Ga)l,故r(Ga)=l。定理4-7描述了有限长序列的线性复杂度的秩表示,下面讨论无限序列的线性复杂度的秩表示。第4章 序列密码变换理论定理定理4-8 一个周期半无限序列(an)的线性复
21、杂度等于矩阵的秩,即C(an)=rankM(an)这里,Si(a)表示序列a循环左移i位得到的序列,称矩阵M(an)为循环矩阵。aSaSaaaaaaaaaaaMnnnnn1201021110第4章 序列密码变换理论证明证明:在周期半无限序列(an)=a0a1an1a0a1an1中,ai=ai+n(i0)。显然,(an)的线性复杂度至多为n,如果C(an)=l,则对1i8,n=4k,m=2k,2dk,再设cGF(2)m,定义d次函数f(x):GF(2)mGF(2),(4-7)其中,x=(x(1),x(2)GF(2)m,x(1),x(2)GF(2)k,x(1)=(x1,x2,xk),xT为x的转置
22、,则显然f(x)是GF(2)m上的Bent函数。TdiiTcxxxxxf121第4章 序列密码变换理论定义定义4-11 设a=a(t)|t=0,1,2,为GF(2)上的n级m序列,为a的平移序列,令其中,函数f(x)如式(4-7)中所定义,则序列s=s(t)|t=0,1,2,称为一个Bent序列。参考文献13及1中给出了Bent序列线性复杂度的下界值。定理定理4-20 Bent序列的线性复杂度。此外,典型的前馈序列还有几何序列、No序列等,详细构造可见参考文献2。tatataftsm,21,2,1,0ttaaii mdsCd2第4章 序列密码变换理论4.2.2 多路复合序列多路复合序列多路复合
23、序列生成器涉及到多个LFSR,其中一个LFSR用于控制其它LFSR的输出。常见的多路复合序列有Geffe序列、J-K触发器及Pless序列等。1.Geffe序列序列Geffe序列生成器由三个LFSR组成,其中LFSR2作为控制生成器使用,如图 4-5所示。第4章 序列密码变换理论图4-5 Geffe序列生成器(一)第4章 序列密码变换理论当LFSR2输出1时,LFSR2与LFSR1相连接;当LFSR2输出0时,LFSR2与LFSR3相连接。若设LFSRi(i=1,2,3)的输入序列为a(i),输出序列为b,则有 Geffe序列生成器也可以表示为如图4-6所示的形式。123212323 0,1,
24、2,kkkkkkkkkkba aaaa aa aak第4章 序列密码变换理论图4-6 Geffe序列生成器(二)第4章 序列密码变换理论图中,LFSR1和LFSR3作为多路复合器的输入;LFSR2控制多路复合器的输出。定理定理4-21 在如图4-6所示的Geffe序列生成器中,设LFSRi(i=1,2,3)的特征多项式分别为di次本原多项式,且di两两互素,则所生成的Geffe序列的周期为,线性复杂度为(d1+d3)d2+d3。Geffe序列的周期实现了极大化,且0与1之间的分布大体上是平衡的,因而不失为一种理想的伪随机序列。3112idi第4章 序列密码变换理论2.J-K触发器触发器J-K触
25、发器如图4-7所示,它的两个输入端分别用J和K表示,其输出ck不仅依赖于输入,还依赖于前一个输出位ck1。第4章 序列密码变换理论图4-7 J-K触发器第4章 序列密码变换理论设J、K端的输入分别为x1和x2,则由此可得J-K触发器的真值表如表4-1所示。1121xcxxckk第4章 序列密码变换理论利用J-K触发器可以构造非线性序列生成器,如图4-8所示。图4-8 利用J-K触发器构造的非线性序列生成器第4章 序列密码变换理论图中,a、b为驱动序列,且 (4-8)设驱动序列a和b分别为n1级和n2级m序列,如果n1、n2互素且a0+b0=1,则序列c的周期为 。kkkkkkkkkacbaac
展开阅读全文