欢迎来到天天文库
浏览记录
ID:1494456
大小:523.50 KB
页数:61页
时间:2017-11-12
《信息安全 第3章对称密码体制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章对称密码体制主要内容分组密码数据加密标准DES高级加密标准AES序列密码其他对称加密算法概述对称密码体制就是在加密和解密是用到的密钥相同,或者加密密钥和解密密钥之间存在着确定的转换关系。对称密码体制又有两种不同的实现方式,即分组密码和序列密码(或称流密码)。流密码与分组密码流密码每次加密数据流中的一位或一个字节。分组密码,就是先把明文划分为许多分组,每个明文分组被当作一个整体来产生一个等长(通常)的密文分组。通常使用的是64位或128位分组大小。分组密码的实质,是设计一种算法,能在密钥控制下,把n比特明文简单而又迅速地置换成唯
2、一n比特密文,并且这种变换是可逆的(解密)。分组密码分组密码算法实际上就是在密钥的控制下,简单而迅速地找到一个置换,用来对明文分组进行加密变换,一般情况下对密码算法的要求是:分组长度m足够大(64~128比特)密钥空间足够大(密钥长度64~128比特)密码变换必须足够复杂(包括子密钥产生算法)分组密码的设计思想扩散(diffusion)将明文及密钥的影响尽可能迅速地散布到较多个输出的密文中。产生扩散的最简单方法是通过“置换(Permutation)”(比如:重新排列字符)。混淆(confusion)其目的在于使作用于明文的密钥和密文之
3、间的关系复杂化,是明文和密文之间、密文和密钥之间的统计相关特性极小化,从而使统计分析攻击不能奏效。通常的方法是“代换(Substitution)”(回忆恺撒密码)。分组密码的设计技术将大的明文分组再分成几个小段,分别完成各个小段的加密置换,最后进行并行操作。采用乘积密码技术。DES(DataEncryptionStandard)美国国家标准局NBS于1973年5月发出通告,公开征求一种标准算法用于对计算机数据在传输和存储期间实现加密保护的密码算法。1975年美国国家标准局接受了美国国际商业机器公司IBM推荐的一种密码算法并向全国公布,
4、征求对采用该算法作为美国信息加密标准的意见。经过两年的激烈争论,美国国家标准局于1977年7月正式采用该算法作为美国数据加密标准。1980年12月美国国家标准协会正式采用这个算法作为美国的商用加密算法。DES的实质DES是一种对称密码体制,它所使用的加密和解密密钥是相同的,是一种典型的按分组方式工作的密码。其基本思想是将二进制序列的明文分成每64bit一组,用长为64bit(56bit)的密钥对其进行16轮代换和置换加密,最后形成密文。DES的基本加密流程加密前,先将明文分成64bit的分组,然后将64bit二进制码输入到密码器中,密
5、码器对输入的64位码首先进行初始置换,然后在64bit主密钥产生的16个子密钥控制下进行16轮乘积变换,接着再进行末置换就得到64位已加密的密文。DES算法的一般描述0.子密钥产生器密钥(64bit)除去第8,16,…,64位,共8个校验位置换选择1(PC-1)Ci(28bit)Di(28bit)循环左移ti+1位循环左移ti+1位置换选择2(PC-2)Ki(48bit)置换选择1移位次数表第i次迭代12345678910111213141516循环左移次数1122222212222221若C1=c1c2…c28,D1=d1d2…d2
6、8则C2=c2c3…c28c1,D2=d2d3…d28d1。置换选择2置换选择PC-2将C中第9182225位和D中第791526位删去,并将其余数字置换位置后送出48bit数字作为第i次迭代时所用的子密钥kiCiDi=b1b2…b56,则ki=b14b17b11b24…b36b29b321.初始置换将64个明文比特的位置进行置换,得到一个乱序的64bit明文组,然后分成左右两段,每段为32bit以L和R表示。2.乘积变换Li-1(32比特)Ri-1(32比特)选择扩展运算E48比特寄存器子密钥Ki(48比特)48比特寄存器选择压缩运
7、算S32比特寄存器置换运算PLi(32比特)Ri(32比特)Li=Ri-1Ri=Li-1F(Ri-1,Ki)选择扩展运算E对原第321458912131617202124252829各位重复一次得到数据扩展。1,2,…………3232123454567898910111213121314151617161718192021202122232425242526272829282930313211,2,…………48选择扩展运算结果(48bit)E的输入(32bit)选择压缩运算S将前面送来的48bit数据自左至右分成8组,每组6bit。然后
8、并行送入8个S盒,每个S盒为一非线性代换网络,有4个输出。S盒的内部结构S盒的内部计算若输入为b1b2b3b4b5b6其中b1b6两位二进制数表达了0至3之间的数。b2b3b4b5为四位二进制数,表达0至15之间的某个数
此文档下载收益归作者所有