《密码学基础》课件第3章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《密码学基础》课件第3章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码学基础 密码学 基础 课件
- 资源描述:
-
1、3.1 序列密码的基本原理 3.2 反馈移位寄存器 3.3 基于LFSR的密钥流生成器 3.4 非线性反馈移位寄存器 习题 3.1 序列密码的基本原理序列密码的基本原理3.1.1 序列密码的设计思想序列密码的设计思想序列密码每次只对明文中的单个位(有时对字节)进行运算(加密变换),加密过程所需的密钥流由种子密钥通过密钥流生成器产生。随着数字电子技术的发展,密钥流可以方便地利用以移位寄存器为基础的电路来产生,这促使线性和非线性移位寄存器理论迅速发展,加上有效的数学工具,从而使得序列密码理论迅速发展。序列密码的主要原理是通过随机数发生器产生性能优良的伪随机序列(密钥流),使用该序列加密信息流(逐比
2、特加密),得到密文序列。由于每一个明文都对应一个随机的加密密钥,因此序列密码在理论上属于无条件安全的密码体制。序列密码的基本加密过程如图3-1所示。图3-1 序列密码的加密过程按照加/解密过程中密钥流工作方式的不同,序列密码一般分为同步序列密码和自同步序列密码两种。1.同步序列密码同步序列密码在同步序列密码中,密钥流的产生完全独立于消息流(明文流或密文),如图3-2所示。在这种工作方式下,如果传输过程中丢失一个密文字符,发送方和接收方就必须使他们的密钥生成器重新同步,这样才能正确地加/解密后续的序列,否则加/解密将失败。图3-2 同步序列密码图3-2的操作过程可以用相应的函数描述如下:(3-1
3、)其中,i是密钥流生成器的内部状态;F是状态转移函数;G是密钥流ki的产生函数;E是同步序列密码的加密变换;D是同步序列密码的解密变换。由于同步序列密码各操作位之间相互独立,因此应用这种方式进行加/解密时无错误传播,当操作过程中产生一位错误时只会影响一位,不影响后续位,这是同步序列密码的一个重要特点。),(),(),(),(1iiiiiiiiiickDmmkEckGkkF同步序列密码具有以下性质:(1)同步性。在同步序列密码中,消息的发送方和接受方必须同步才能做到正确地解密,即通信双方使用相同的密钥,并用其对同一位置进行操作。一旦由于密文字符在传输过程中被插入或删除而破坏了这种同步性,那么解密
4、过程将失败。这时只有借助于其他附加的技术来重建同步,解密过程才能够继续进行。重建同步的技术包括:重新初始化;在密文序列的规则间隔中设置特殊记号;当明文消息序列包含足够的冗余度时,也可以尝试密钥流所有可能的偏移。(2)无错误传播性。密文字符在传输过程中被修改(未被删除)并不影响其他密文字符的解密。(3)主动攻击。一个主动攻击者对密文字符进行的插入、删除或重放操作都会立即破坏系统的同步性,从而可能被解密器检测出来。同时,主动攻击者可能会有选择地对密文字符进行改动,并准确地知道这些改动对明文的影响。所以必须采用其他的附加技术保证被加密数据的完整性。2.自同步序列密码自同步序列密码与同步序列密码相比,
5、自同步序列密码是一种有记忆变换的密码,如图3-3所示。每一个密钥字符是由前面n个密文字符参与运算推导出来的,其中n为定值。即,如果在传输过程中丢失或更改了一个字符,则这一错误就要向前传播n个字符。因此,自同步序列密码有错误传播现象。不过,在收到n个正确的密文字符以后,密码自身会实现重新同步。图3-3的操作过程可以用相应的函数描述如下:(3-2)其中,i是密钥流生成器的内部状态;ci是密文;F是状态转移函数;G是密钥流ki的产生函数;E是同步序列密码的加密变换;D是同步序列密码的解密变换。),(),(),(),(111iiiiiiiiniiiiickDmmkEckGkkcccF图3-3 自同步序
6、列密码自同步序列密码具有以下性质:(1)自同步性。由于解密过程仅仅依赖于前面固定个数的密文字符,因此当密文字符被插入或删除时,密码的自同步性就会体现出来。这种密码在同步性遭到破坏时,可以自动重建正确的解密过程,而且仅有固定数量的明文字符不可恢复。(2)错误传播的有限性。假设一个自同步序列密码的状态依赖于n个前面的密文字符。在密文序列传输的过程中,当一个比特的密文字符被改动(或被插入、删除)时,那么至多会有n个比特随后的密文字符解密出错,然后会恢复正确的解密过程。(3)主动攻击。主动攻击者对密文字符的任何改动都会引发一些密文字符的解密出错,因此增加了被解密器检测出的可能性。同时,这种密码在检测主
7、动攻击者发起的对密文字符的插入、删除、重放等攻击时更加困难,所以必须采取附加的技术来保证被加密数据的完整性。(4)明文统计扩散性。每个明文字符都会影响其后的整个密文,即明文的统计学特征被扩散到了密文中。因此,自同步序列密码对利用明文的冗余度而发起的攻击有较强的抗攻击能力。在自同步序列密码系统中,密文流参与了密钥流的生成,这使得对密钥流的分析非常复杂,从而导致了对自同步序列密码进行系统的理论分析非常困难。因此,目前应用较多的流密码是自同步序列密码。序列密码系统在使用时的一个关键是要有对应的随机序列,而现实中通过随机数发生器产生的序列只能是一个伪随机序列,因此需要对生成序列的随机性进行评价。下节将
8、给出判断生成的伪随机序列具有随机性的评价指标。3.1.2 序列随机性能评价序列随机性能评价为了度量周期序列的随机性,Golomb对序列的随机性提出了三条假设。这些假设是最早出现的衡量周期伪随机序列随机性能的必要条件。当然,这些条件还不能够作为将周期序列看做随机序列的充分条件。定义定义3.1.1 令s=s0,s1,s2,是一个无穷序列,前n项组成的子序列记为sn=s0,s1,sn-1。定义定义3.1.2 如果对i0,均有si=si+N,那么序列s=s0,s1,s2,称为N周期的。如果存在正整数N,使得s是N周期的,那么序列s称为周期序列。周期序列的周期定义为使其为N周期序列的最小正整数N。如果s
9、是周期为N的周期序列,那么子序列sN为s的一个周期。定义定义3.1.3 令s是一个序列,s的一个游程是指s包含连续个0或连续个1的子序列,且其前后均为与其不同的符号。0游程称为沟,1游程称为块。定义定义3.1.4 令s=s0,s1,s2,是一个周期为N的周期序列。s的自相关系数C(t)为一个自变量取整数的函数,定义如下:(3-3)自相关系数是用来衡量序列s和s的t个位置的移位之间相似性的量,自相关系数越小,说明序列s的随机性能越好。101()(21)(21),01 Nii tiC tsstNN 定义定义3.1.5 Golmob随机性假设包括以下三个条件:(1)在序列的一个周期内,0和1的个数至
10、多相差1。(2)在序列的一个周期内,长为1的游程个数占总游程数的1/2,长为2的游程个数占总游程数的1/22,依此类推,长为i的游程个数占总游程数的1/2i,且在等长的游程中,0游程和1游程各占一半。(3)自相关系数是二值的,即对某个整数K,有 (3-4)满足上述三个条件的序列称为伪随机序列。其中条件(1)说明序列s中0和1出现的概率基本相等;条件(2)说明在已知位置n前若干位置上的值的前提下,在第n个位置上出现0和1的概率是相等的;条件(3)说明如果将si与si+t进行比较,无法得到关于序列s的实质性信息(如周期等)。10,0()(21)(21),11 Nii tiN tN C tssKtN
11、 接下来介绍对长度是n的二进制序列s=s0,s1,sn-1进行随机性检验常用的五个统计测试,它们是判断二进制序列s是否具有随机性的一些统计量。(1)频率测试。该测试的目的是确定s中0和1的个数是否相等。令n0、n1分别表示s中0和1的个数。频率测试使用的统计量为 (3-5)当n10时,该统计量近似服从自由度为1的2分布。22101)(nnnX(2)序列测试。该测试的目的是确定s的子序列00,01,10,11的个数是否相等。令n0、n1分别表示s中0和1的个数,n00、n01、n10、n11分别表示s中子序列00、01、10、11的个数。序列测试使用的统计量为 (3-6)当n21时,该统计量近似
12、服从自由度为2的2分布。1)(2)(1421202112102012002nnnnnnnnX(3)扑克测试。令m是一个满足n/m52m的正整数,且令k=n/m。将序列s分成k个互不相交的部分,每个部分的长度为m,令ni为第i种长度为m的序列出现的次数,1i2m。该测试的目的是确定每个长度为m的序列在s中出现的次数是否相等。扑克测试使用的统计量为 (3-7)该统计量近似服从自由度为2m-1的2分布。knkXmiim21232(4)游程测试。根据对序列随机性的要求,在长度为n的随机序列中,所期待的长度为i的0游程(或1游程)的个数为ei=(n-i+3)/2i+2。令k为满足ei5的i的最大整数,令
13、Bi、Gi分别为s中长度为i的0游程和1游程的个数,1ik。游程测试使用的统计量为 (3-8)该统计量近似服从自由度为2k-2的2分布。kiiiikiiiieeGeeBX12124)()(5)自相关测试。该测试的目的是检验序列s与其发生移位后所形成的序列之间的相关性。令d为一个固定的整数,1dn/2。序列s与s发生d个移位后所形成的序列中的不同比特数为,其中表示异或操作。自相关测试使用的统计量为 (3-9)当n-d10时,该统计量近似服从N(0,1)分布。10)(dnidiissdAdndndAX2)(25例例3.1 对长度为n=160比特的随机序列s:11100 01100 01000 10
14、100 11101 11100 10010 01001 11100 01100 01000 10100 11101 11100 10010 01001 11100 01100 01000 10100 11101 11100 10010 01001 11100 01100 01000 10100 11101 11100 10010 01001分别进行以下随机性测试:(1)频率测试。n0=84,n1=76,所以 (2)序列测试。n00=44,n01=40,n10=40,n11=35,所以4.0)(2101nnnX6252.01)(2)(1421202112102012002nnnnnnnnX(3)
15、扑克测试。m=3,k=53。长度为3的片断000、001、010、011、100、101、110、111出现的次数分别为5、10、6、4、12、3、6、7,所以 (4)游程测试。e1=20.25,e2=10.0625,e3=5,k=3,长度为1、2、3的1游程的个数分别为25、4、5,长度为1、2、3的0游程的个数分别为8、20、12,所以6415.922123knkXmiim7913.31)()(12124kiiiikiiiieeGeeBX(5)自相关测试。取d=8,则A(d)=100,所以 对于显著性水平=0.05,相应的统计量X1、X2、X3、X4、X5的阈值分别为3.8415、5.99
16、15、14.0671、9.4877、1.96。因此通过以上计算结果可知,序列s通过了频率测试、序列测试和扑克测试,但是没有通过游程测试和自相关测试。8933.32)(25dndndAX通过对序列随机性能评价指标的介绍可知,序列密码的安全性要求越高,相应的密钥流的随机性要求就越高。因此,在设计密钥流生成方法时,不仅要考虑安全性要求,还要考虑以下两个因素:(1)生成密钥流的密钥k应该易于分配和管理。(2)密钥流生成方法应该易于快速实现。基于以上分析,本节介绍常用来生成密钥流的密钥流生成器的基本部件反馈移位寄存器(Feedback Shift Register,FSR)。3.2 反馈移位寄存器反馈移
17、位寄存器一个反馈移位寄存器由两部分组成:移位寄存器和反馈函数。移位寄存器是一个位序列,它的长度用位表示,如果移位寄存器的长度是n位,则称为n位移位寄存器。每次运算的结果实际只改变序列中的一个值,其中移位寄存器中除最右端的位以外,其余所有位向右移一位,新的最左端位的值根据寄存器中其他位的值计算得到。移位寄存器的输出值常常是序列中的最低有效位。移位寄存器的周期是指输出序列从开始到重复时的长度。3.2.1 线性反馈移位寄存器线性反馈移位寄存器反馈移位寄存器,特别是线性反馈移位寄存器(Linear Feedback Shift Register,LFSR),是许多密钥流生成器的基本器件。目前出现的许多
18、密钥流生成器都使用线性反馈移位寄存器,其优点如下:(1)非常适合于硬件实现;(2)可以产生大周期的序列;(3)产生的序列具有良好的统计特性;(4)在结构上具有一定的特点,便于利用代数方法对其进行分析。定义定义3.2.1 一个长度为L的线性反馈移位寄存器由0,1,L-1共L个级(或延迟单元)和一个时钟构成,每个级都有1比特的输入和1比特的输出,并且可以存储1比特字符;时钟用于控制数据的移动。每个时间单位内执行下述操作:(1)输出0级所存储的字符,作为输出序列的一部分。(2)对每个i,1iL-1,将第i级的存储内容移入第i-1级。(3)第L-1级中存储的新元素称为反馈比特sj,它由0,1,L-1级
19、中一个固定子集合的内容进行模2相加而得到。LFSR的结构如图3-4所示。其中每个ci为0或1,图中闭合的半圆表示“与”运算,反馈比特sj由那些i级的内容进行模2求和运算而得到,其中0iL-1且cL-i=1。图3-4 长度为L的线性反馈移位寄存器结构定义定义3.2.2 图3-4所示的线性反馈移位寄存器可以记为L,C(D),其中C(D)=1+c1D+c2D2+cLDLZ2D为联结多项式。若C(D)的次数为L(即cL=1),则称相应的LFSR为非奇异的。对于每一个i,0iL-1,若第i级的初始存储值为si0,1,则称sL-1,sL-2,s1,s0为LFSR的初始状态。如果已知线性反馈移位寄存器的结构
20、如图3-4所示,相应的初始状态为sL-1,sL-2,s1,s0,那么LFSR的输出序列s=s0,s1,s2,可以通过以下递推公式惟一确定:sj=(c1sj-1+c2sj-2+cLsj-L)mod 2,jL (3-10)例例3.2 线性反馈移位寄存器4,1+D+D4的结构如图3-5所示。图3-5 LFSR4,1+D+D4当LFSR的初始状态为0,0,0,0时,相应的输出序列为0序列。当LFSR的初始状态为0,1,1,0时,对应每一个时刻t相应的D3、D2、D1、D0各级中所存储的二进制数见表3-1。该线性反馈移位寄存器LFSR的输出序列为s=0,1,1,0,0,1,0,0,0,1,1,1,1,0
21、,1,该输出序列的周期为15。3.2.2 LFSR输出序列的周期与随机性输出序列的周期与随机性 关于由线性反馈移位寄存器产生序列的周期性有以下结论。定理定理3.1 线性反馈移位寄存器L,C(D)的每一个输出序列是周期的,当且仅当联结多项式C(D)的次数为L。在线性反馈移位寄存器L,C(D)是奇异的(即C(D)的次数小于L)情况下,并不是所有的LFSRL,C(D)输出序列都有周期。但是在忽略掉输出序列中开始的固定有限项后,得到的新序列是周期的。定理定理3.2 对于线性反馈移位寄存器L,C(D),设C(D)Z2D是一个L次的联结多项式,则有以下结论:(1)若C(D)在Z2D上是不可约的,那么非奇异
22、的LFSRL,C(D)的2L-1个非零状态中的每一个都可以产生一个周期为N的输出序列,其中N为满足条件C(D)在Z2D中能够整除1+DN的最小正整数。(2)若C(D)为本原多项式,那么非奇异的LFSRL,C(D)的2L-1个非零状态中的每一个均能产生具有最大可能周期为2L-1的输出序列。根据以上结论,我们给出m序列的定义。定义定义3.2.3 若C(D)Z2D是一个L次的本原多项式,则L,C(D)称为最大长度LFSR。最大长度LFSR在非零状态下的输出称为m序列。根据m序列的定义,例3.2中C(D)=1+D+D4为Z2D中的一个本原多项式,所以LFSR4,1+D+D4为最大长度LFSR,相应的L
展开阅读全文