《现代密码学原理与实践》课件第2章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《现代密码学原理与实践》课件第2章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代密码学原理与实践 现代 密码学 原理 实践 课件
- 资源描述:
-
1、第2章 序列密码第第2 2章章 序列密码序列密码2.1 序列密码原理序列密码原理2.2 线性反馈移位寄存器线性反馈移位寄存器2.3 非线性序列非线性序列2.4 利用线性反馈移位寄存器的密码反馈利用线性反馈移位寄存器的密码反馈习题习题2实践练习实践练习2第2章 序列密码 把明文加密成密文,有两种方式,一种是分组(块)加密,一种是序列(流)加密。采用序列加密时,明文不进行分段,明文序列被源源不断地送入加密器,在密钥作用下进行加密运算,产生的密文序列源源不断地被输出来,实时地完成加密过程。本章主要讨论伪随机序列的产生和特点,因为它不仅是序列加密密钥的来源,而且也是现代密码体制中不可缺少的关键数据。第
2、2章 序列密码2.1序列密码原理序列密码原理2.1.1序列加、解密原理序列加、解密原理 一个序列流加密的保密通信系统的流程如图2.1所示。明文消息序列为m=m1m2m3密钥序列为k=k1k2k3加、解密都是逐位顺序进行的:ci=Ek(mi);mi=Dk(ci)(2-1)得到的密文序列为c=c1c2c3 第2章 序列密码图2.1序列流加密的保密通信系统流程图第2章 序列密码2.1.2安全性讨论安全性讨论 从传统密码算法得知,不论单表加密、多表加密,或是置换还是其他方式,密文之所以“密”,原因在于密钥使明文变“乱”了,这种乱就是随机性。密钥的随机性掩盖了明文的可理解性。Shannon信息论已经证明
3、1,只有“一字一密”系统才是不可破译的、完全安全的保密系统。所谓一字一密,指密钥序列是无限长的真正的随机序列,密钥使每位密文都变得无规律可循。对于这样的系统,破译者完全无法从已有的密文中,或明、密文对照中找到规律,不能为未知的密文破译提供任何有价值的信息。第2章 序列密码 然而,这样的保密系统是不可行的。且不说真正的随机序列如何获得,单就如何把无限长的密钥安全地传给合法收信人就是个难题。如果密钥和密文一样长,用秘密信道传递密钥还不如直接传递明文好了!保密通信的初衷就是希望在公开信道中安全通信,因为秘密信道实在昂贵而又难得。有实际意义的密钥应当是用软、硬件可以再生的“伪”随机序列,伪就伪在它并不
4、真正随机,而是有规律的,这个规律就是周期性。只不过周期很长,在有限时段内看不出规律罢了。生成这样的伪随机序列,只需要很短的“初始密钥”(或曰种子),只要通信双方在协议中约定好伪随机序列的产生方法和初始值,即具有了共同的密钥。图2.2为用伪随机序列作为密钥的序列流加密系统。第2章 序列密码图2.2 用伪随机序列作为密钥的序列流加密系统 第2章 序列密码2.1.3序列密码对密钥流的要求序列密码对密钥流的要求6 1.极大的周期极大的周期 现代密码机数据率高达108bit/s。如果使用10年内不会重复的密钥流,密钥的周期应不少于31016或255。2.良好的统计特性良好的统计特性 Golomb对随机序
5、列的统计性质提出了三条要求:(1)在序列的一个周期内,0和1的个数最多相差1。(2)在一个周期圈内,长度为1的游程数占1/2,长度为2的游程数占1/4长度为i的游程数占1/2i,且在等长的游程中,0游程和1游程各半(游程指连0或连1的段落)。(3)自相关函数为二值函数:第2章 序列密码时当时当0100)(xR 伪随机序列的自相关函数定义如下:10)1()1(1)(10T.TRkkaTkaa(2-2)式中,T为周期;为预先指定的一个位移值。相关函数定义为序列与它的移位序列逐位相比较,相同则为1,不同则得-1,然后相加起来求平均。因此,Ra()也等于两序列逐位相比较时,取值相同的位数与取值不同的位
6、数之差再除以T:TdnR)(第2章 序列密码 对于上式,当0时Ra()0,表明通过ai与ai+比较,无法得到关于ai的实质性信息(比如周期);而当=0时,Ra(0)=1,表明自身归一。3.足够的复杂度足够的复杂度 用较短的“种子”就能生成周期较长的伪随机密钥,那么破译者也可以这么做,他只需掌握(破译或猜出)这个种子即可。因为产生伪随机序列的算法是公开的(至少是不难获得的)。因此,为了系统的安全,仅仅周期长是不够的,还要求密钥序列有足够的复杂度。序列的复杂度指序列有足够繁多的变化花样。它的具体定义后面会讨论。现在要说明的是,伪随机序列生成器输出的虽第2章 序列密码然不是真正的随机序列,但是在计算
7、资源受到一定限制(速度、内存有限,机时有限)的条件下,如果要想区别这个输出序列与相同长度的真随机序列,是不可行的;或者从理论上可以证明,二者的计算工作量随序列长度n变化的依赖关系以比多项式或更高(如幂指数函数)的方式而增大,因而可以认为二者是不可区分的。这样的伪随机序列就被认为具有足够的复杂性。说到底,世上没有绝对不可破的密码,比如通过穷搜索总能将其破译,然而如果穷搜索不可能在有限时间内完成,而且又不存在比穷搜索更好的破译方法,则可以认为这个密码系统是安全的。第2章 序列密码2.2线性反馈移位寄存器线性反馈移位寄存器3 20世纪50年代以后,数字电子技术大力发展,使得伪随机序列可以方便地利用移
8、位寄存器产生,加上有效的数学工具(域理论和谱分析),使序列密码迅速走向成熟。2.2.1反馈移位寄存器反馈移位寄存器(FeedbackShiftRegister)n位二值存储器共有2n种状态,每个状态都代表一个长度为n的序列(a0a1a2an-1)。在主时钟脉冲作用下,寄存器各位共同右移一位,a0输出,而an-1来自原先状态所决定的一个反馈值f(a0a1a2an-1)。f(a0a1a2an-1)是预先设定好的一个n元布尔函数,于是有关系:第2章 序列密码)()()()1()2210()()1(11011ta,ta,taftan,.,itatannii特别是当 f(a0a1a2an-1)为线性函数
9、时,有(2-5)这里,各ciGF(2),即:表示该示该位有 1 表示该示该位无 0 ic(2-6)这个系统称为线性反馈移位寄存器(LFSR),如图2.3所示。第2章 序列密码图2.3反馈移位寄存器 第2章 序列密码 如图2.4所示的三级线性反馈移位电路,任意给定非零初态就能输出一个周期为T=7的伪随机序列。图2.4中,左右两电路都是三级线性反馈移位器,区别仅在于抽头的位置不同。当初态为001时,左右两电路寄存器状态的变化如表2.1所示。它们分别不断循环地输出1001011和1001110。当初态为101时,可得到周期为4的伪随机序列1011的循环,它的电路如图2.5所示。第2章 序列密码图2.
10、4 三级移位寄存器构成的m序列发生器 第2章 序列密码表表2.1 三级三级m序列的输出序列的输出 第2章 序列密码图2.5非线性反馈三级移位寄存器第2章 序列密码2.2.2m序列序列1.特征多项式特征多项式 为了利用多项式的代数理论来研究线性反馈移位寄存器(LFSR)产生伪随机序列的规律,定义特征多项式:iniinnnnxcxcxcxcxcxp0112211)(2-7)用它来描述线性反馈移位寄存器的构造:各xi只是为了区分寄存器的位序号,而各ci值表示该位有无反馈,有则为1,无则为0。第2章 序列密码 为什么会是一个n次多项式呢?因为LFSR各位的输入都来自它前一位的输出,xn-1位的输入来自
11、xn位的输出,而xn位的寄存器是不存在的,代替xn位的是反馈回来的数据,反馈关系可表达为(2-8)将等号左面的xn移到等号右面,便是特征多项式p(x)。图2.4给出的两个三级线性反馈移位电路的特征多项式分别为 p(x)=x3+x+1 和 p(x)=x3+x2+1它们对应的本原元素满足方程p()=0,在模2运算下等价于:112211nnnxcxcxcx第2章 序列密码此即电路抽头位置所表示的反馈关系。当然还可以存在其他形式的三级线性反馈移位电路,如:p(x)=x3+1 和 p(x)=x3+x2+x+1 但它们产生的分别是周期为T=3和T=4的伪随机序列,其电路如图2.6所示。写出一个特征多项式p
12、n(x),就能构造出一个线性移位寄存器,于是就对应着一个伪随机序列ai,因而我们常用aiSpn(x)表示ai属于由pn(x)所描述的非零伪随机序列。这里的n表示n级反馈移位寄存器。1 和 1233第2章 序列密码图2.6三级移位寄存器构成的m序列发生器第2章 序列密码 2.m序列序列 三级的线性反馈移位寄存电路所产生的伪随机序列,其周期最长只能为7。这是因为n=3位的寄存器全部状态共2n=8个,除全零状态之外,最多只能在2n-1=7个状态间循环。所以,n级的线性反馈移位寄存电路所产生的伪随机序列,其周期T不会大于2n-1。定义定义:周期达到2n-1的n级线性反馈移位寄存器的输出序列,称为m序列
13、。定理定理:ai为m序列的充要条件是pn(x)为本原多项式。事实上,pn(x)是本原多项式,就表明pn(x)的根是GF(2n)域的本原元素,而本原元素的循环阶是T=2n-1,达到了最大的循环周期。第2章 序列密码 因此,要想知道n级线性反馈移位寄存器能产生多少种不同的m序列,只要看GF(2n)域中n级的本原多项式有多少个即可。根据有限域理论,计算公式是:nnn)12()(2-9)式中,(T)为欧拉数,代表与T互素的同余类的个数(凡是除以T后余数相同的整数为一个同余类)。(T)的计算公式是:kkkpppTTpppTTTT212121为合数:当 )11()11)(11(为素数当 1)(2-10)第
14、2章 序列密码例如,对于n=3的LFSR,有 T=23-1=7;(7)=7-1=6;表明存在两个3次本原多项式,分别为 p(x)=x3+x+1 和 p(x)=x3+x2+1分别产生两种不同抽头位置的循环移位电路。又如,n=4时,T=24-1=15;236n;842)511()311(15(15)248n第2章 序列密码两个4次本原多项式是:p(x)=x4+x+1和p(x)=x4+x3+1表2.2中列出了n24以内的线性反馈移位寄存器的周期和m序列的个数。第2章 序列密码表表2.2n=24以内的线性反馈移位寄存器的以内的线性反馈移位寄存器的周期和周期和m序列的个数序列的个数 第2章 序列密码 【
15、例例1】构造一个n=5的LFSR,并计算所产生m序列的周期和个数。解解:n=5级的线性反馈移位寄存器所产生的m序列的周期为 T=25-1=31由 (31)=31-1=30;知共有6种不同的五级m序列。不妨查本原多项式表,找到n=5的一个本原多项式,其八进制表达形式为 (45)8=(100101)2即 p(x)=x5+x2+1对应的电路如图2.7所示。6530n第2章 序列密码图2.7 n=5的移位寄存器构成的m序列发生器 第2章 序列密码2.2.3线性反馈移位寄存器的软件实现线性反馈移位寄存器的软件实现 m序列也可以用计算机程序产生。首先根据所需伪随机序列周期来设计移位寄存器的级数n,然后从本
16、原多项式表中选取pn(x)。下面是一些本原多项式的非零系数:(3,1,0),(4,1,0),(5,2,0),(6,1,0),(7,3,0),(9,4,0),(10,3,0),(11,2,0),(15,1,0),(17,3,0),(17,6,0),(18,7,0),(20,3,0),(21,2,0),(23,5,0),(28,3,0),(29,2,0),(31,3,0),(32,7,6,2,0),(32.7,5,3,2,1,0),(33,16,4,1,0),以 pn(x)=x32+x7+x5+x3+x2+x+1为例,根据特征多项式不难画出一个32位的线性反馈移位寄存器电路示意图,如图2.8所示。
17、第2章 序列密码图2.8 pn(x)=x32+x7+x5+x3+x2+x+1的电路第2章 序列密码C语言源程序为 Int LFSR Staticunsignedlong Shiftregister=1;/*Anythingbut0.*/Shiftregister=(shiftregister7)(shiftregister5)(shiftregister3)(shiftregister2)(shiftregister1)shiftregister)&0 x00000001)1);returnshiftregister&0 x00000001;第2章 序列密码2.2.4m序列的统计性质序列的统计
18、性质 m序列的统计性质如下:(1)在一个周期内0和1的个数至多相差1位。(2)游程特征基本符合Golomb要求:任一循环周期中含2n-1个1和2n-1-1个0。这是因为序列的排布完全取决于寄存器中状态的变化,每当a0移出一位成为序列中新加入的一个码元后,寄存器上一位又移入a0,可见a0有过些什么值,输出序列就出现些什么值。n位寄存器共2n种不同的状态,a0位为1与为0各占2n种的一半,即2n-1次,所以m序列的任一循环周期中1出现2n-1次;由于全0状态不出现,因而0出现2n-1-1次。第2章 序列密码 游程最长为n,有一个长为n的1游程,却没有长为n的0游程。这是因为只有一个全1状态,而没有
19、全0状态。没有长为n-1的1游程,却有一个长为n-1的0游程。这是因为已经有了一个全1状态,它的前一个状态是11110,后一个状态是01111,二者虽都是n-1个1的状态,却不能产生n-1的1游程,因为这三个状态进入系列后产生的是同一个长为n的1游程。而这两个n-1个1的状态既然已经出现,同一周期中就不会再出现第三个n-1个1的状态了。长为n-1的0游程却是可以存在的,这是由于不存在全0状态,所以n-1个0的状态10000和00001都可以存在,它们产生的是同一个长为n-1的0游程。第2章 序列密码 长为rn-2的1游程和0游程各为2n-r-2个。这是因为这种游程意味着状态中存在形如01111
展开阅读全文