ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:525.16KB ,
资源ID:6230355      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6230355.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第6章对称密码的其他内容3.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第6章对称密码的其他内容3.docx

1、第6章对称密码的其他内容3第6章对称密码的其他内容6.1 多重加密与三重DES算法6.1.1双重DES为了提高DES的安全性,并利用实现DES的现有软硬件,可将DES算法在多密钥下多重使用。使用两个密钥为K1和K2,密文为CEk2Ek1P解密时,以相反顺序使用两个密钥:PDk1Dk2C如果已知一个明文密文对(P,C),攻击的实施可如下进行:首先,用256个所有可能的K1对P加密,将加密结果存入一表并对表排序,然后用256个所有可能的K2对C解密,在上述表中查找与C解密结果相匹配的项,如果找到,则记下相应的K1和K2。最后再用一新的明文密文对(P,C)检验上面找到的K1和K2。用K1和K2对P两

2、次加密,若结果等于C,就可确定K1和K2是所要找的密钥。二重DES会受到中间人的攻击。6.1.2使用两个密钥的三重DES加密: CEk1Dk2Ek1P解密: P= Dk1Ek2Dk1C6.1.3使用三个密钥的三重DES加密: CEk3Ek2Ek1P解密: P= Dk1Dk2Dk3C 有些基于Internet的应用已经采纳了这种三重DES。6.2 分组密码的工作模式 DES算法是提供数据安全的基本构件。为了将DES应用于实际,人们定义了五种工作模式(FIPS 81).这些模式也可用于包括3DES和AES在内的任何分组密码。(1) 电码本(ECB)模式 ECB(electronic codeboo

3、k)模式是最简单的运行模式,它一次对一个64比特长的明文分组加密,而且每次的加密密钥都相同,如图3-10所示。当密钥取定时,对明文的每一个分组,都有一个惟一的密文与之对应。因此形象地说,可以认为有一个非常大的电码本,对任意一个可能的明文分组,电码本中都有一项对应于它的密文。图3-10ECB模式示意图如果消息长于64比特,则将其分为长为64比特的分组,最后一个分组如果不够64比特,则需要填充。解密过程也是一次对一个分组解密,而且每次解密都使用同一密钥。图3-10中,明文是由分组长为64比特的分组序列P1,P2,PN构成,相应的密文分组序列是C1,C2,CN。ECB模式特别适合于数据较少的情况,比

4、如加密密钥。ECB的最大特性是同一明文分组在消息中重复出现的话,产生的密文分组也相同。ECB用于长消息时可能不够安全。(2)密码分组链接(CBC)模式为了解决ECB的安全缺陷,可以让重复的明文分组产生不同的密文分组,CBC(Cipherblockchaining)模式就可满足这一要求。图3-11是CBC模式示意图,它一次对一个明文分组加密,每次加密使用同一密钥,加密算法的输入是当前明文分组和前一次密文分组的异或,因此加密算法的输入不会显示出与这次的明文分组之间的固定关系,所以重复的明文分组不会在密文中暴露出这种重复关系。图3-1lCBC模式示意图第一块明文可以和一个初始矢量(IV)异或后再加密

5、。IV必须为收发双方共享。为了增加安全性,IV应该和密钥一样加以保护,比如用ECB加密来保护IV。CBC模式对加密长于64比特的消息非常合适,亦可用于认证。(3) 密码反馈(CFB)模式 如上所述,DES是分组长为64比特的分组密码,但利用CFB(cipher feedback)模式或OFB模式可将DES转换为流密码。流密码不需要对消息填充,而且运行是实时的。因此如果传送字母流,可使用流密码对每个字母直接加密并传送。 流密码具有密文和明文一样长这一性质,因此,如果需要发送的每个字符长为8比特,就应使用8比特密钥来加密每个字符。如果密钥长超过8比特,则造成浪费。图3-12是CFB模式示意图,设传

6、送的每个单元(如一个字符)是j比特长,通常取j=8,与CBC模式一样,明文单元被链接在一起,使得密文是前面所有明文的函数。加密时,加密算法的输入是64比特移位寄存器,其初值为某个初始向量IV。加密算法输出的最左(最高有效位)j比特与明文的第一个单元P1,进行异或,产生出密文的第1个单元C1,并传送该单元。然后将移位寄存器的内容左移j位并将C1送入移位寄存器最右边(最低有效位)j位。这一过程继续到明文的所有单元都被加密为止。 CFB模式除能获得保密性外,还能用于认证。(4)输出反馈(OFB)模式OFB(output feedback)模式的结构类似于CFB,见图3-13。不同之处如下:OFB模式

7、是将加密算法的输出反馈到移位寄存器,而CFB模式中是将密文单元反馈到移位寄存器。 OFB模式的优点是传输过程中比特错误不会被传播。(6)计数器模式见课本P148图6.7.计数器模式有如下优点: 硬件效率高:与三种链接模式不同,CTR模式能够并行处理多块明文(密文)的加密(解密)。 软件效率高 预处理 随机访问:密文的第i个明文组能够用一种随机访问的方式处理。 可证明安全性:能够证明CTR模式至少和本节讨论的其他模式一样安全。 简单性:只用加密算法。模式描述典型应用电码本(ECB)用相同的密钥分别对明文组加密。 单个数据的安全传输(如一个加密密钥)密码分组链接(CBC)加密算法的输入是上一个密文

8、组和下一个明文组的异或。 普通目的的面向分组的传输 认证密码反馈(CFB)一次处理j位。上一个分组密文作为产生一个伪随机数输出的加密算法的输入,该输出与明文异或,作为下一分组的输入。 普通目的的面向分组的传输 认证输出反馈(OFB)与CFB基本相同,只是加密算法的输入是上一次DES的输出 噪声通道上的数据流的传输(如卫星通信)计数器(CTR)每个明文组是与加密的计数器的异或。对每个后续的组,计数器是累加的。 普通目的的面向分组的传输用于高速需求6.3流密码和RC46.3.1流密码的结构: 一个典型的流密码每次加密一个字节的明文,当然流密码也可被设计为每次操作一比特或者大于一个字节的单元。图6.

9、8给出了一个典型的流密码的结构图。在该结构中密钥输入到一个伪随机数(比特)发生器,该伪随机数发生器产生一串随机的8比特数。一个伪随机流就是在不知道输入密钥的情况下不可预知的比特流。发生器的输出称为密钥流,通过与同一时刻一个字节的明文流进行异或操作产生密文流。 明文 密钥流 - 密文 解密需要使用相同的伪随机序列: 密文 密钥流 - 明文 设计流密码需要考虑的主要因素:1. 加密序列的周期要长。伪随机数发生器实质上使用的是产生确定的比特流的函数。该比特流最终将出现重复。重复的周期越长,密码分析的难度就越大。2. 密钥流应该尽可能地接近于一个真正的随机数流的特征。例如,1和0的个数应近似相等。若密

10、钥流为字节流,则所有256种可能的字节的值出现频率应近似相等。密钥流的随机特性越好,则密文越随机,密码分析就越困难。3. 伪随机数发生器的输出取决于输入密钥的值。为了防止穷举攻击,密钥应该足够长,对于分组密码也要有同样的考虑。因此,从目前的软硬件技术发展来看,至少应当保证密钥长度不小于128比特。流密码的主要优点是其相当于分组密码来说,往往速度更快而且需要编写的代码更少。表6.2 Pentium II上对称密码的速度对比密码密钥长度速度(Mb/s)DES5693DES1683RC4可变45分组密码的优点是可以重复使用密钥,然而如果用流密码对两个明文加密中使用相同的密钥,则密码分析就会相当容易,

11、因为对两个密文流进行异或,得出的结果就是两个原始明文的异或。 应用:对于需要对数据流进行加密解密的应用,比如通过一个数据通信信道或者网页浏览连接,流密码就是很好的解决方案。而对于处理成块的数据,比如文件传输,电子邮件和数据库,分组密码则更为适用。6.3.2 RC4算法 RC4是 Ron Rivest为RSA公司在1987年设计的一种流密码。它是一个可变密钥长度、面向字节操作的流密码。该算法以随机置换作为基础。分析显示该密码的周期大于10100。每输出一个字节的结果仅需要8条到16条机器操作指令。RC4算法:用从1到256个字节(82048比特)的可变长度密钥初始化一个256个字节的状态向量S,

12、S的元素记为S0,S1,S255,从始到终置换后的S包含从0255所有的8比特数。对于加密和解密,字节K由S中255个元素按一定方式选出一个元素而生成。每生成一个K的值,S中的元素个体就被重新置换一次。初始化S开始时,S中元素的值被置为按升序从0255,即S0=0,S1=1,S255=255。同时建立一个临时矢量T。如果密钥K的长度为256字节,则将K赋给T。否则若密钥长度为keylen字节,则将K的值赋给T的前keylen个元素,并循环重复用K的值赋给T剩下的元素,直到T的所有元素都被赋值。这些操作可被概括如下:/*Initialiation*/for i=0 to 255 doSi=i;T

13、i=Ki mod keylen; 然后用T产生S的初始置换,从S0到S255,对每个Si,根据由Ti确定的方案,将Si置换为S中的另一字节:/*Initial Permutation of S */j=0;for i=0 to 255 doj=( j+Si+Ti) mod 256;Swap (Si, Sj); 因为对S的操作仅是交换,所以惟一的改变就是置换。S仍然包含所有值为0255的元素。 密钥流的生成 矢量S一旦完成初始化,输入密钥就不再被使用,密钥流的生成是从S0到S255,对每个Si,根据当前S的值,将Si与S中的另一字节置换。当S255完成置换后,操作继续重复从S0开始:/*Stre

14、am Generation*/i, j=0;while (true) i=(i+1) mod 256j=(j+Si) mod 256; Swap (Si,Sj);t=(Si+Sj) mod 256;K=St; 加密中,将k的值与下一明文字节异或;解密中,将k的值与下一密文字节异或。 关于分析RC4的攻击方法有许多公开发表的文献,但没有哪种方法对于攻击足够长度密钥(如128比特)的RC4有效。思考题:1. 分组密码的工作模式有哪几种?各种模式的特点是什么?2. 二密钥三重DES如何复用同一密钥?(用公式表示)。对二密钥三重DES的穷举攻击代价是多少? 3. 请列出设计流密码要考虑的重要因素。4. 为什么流密码的密钥不能重复使用?5. RC4中用到的基本操作是什么? 6. 实验题:(1)*利用java加密包编程实现二密钥三重DES算法。(2)*编程实现RC4算法。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1