第7 8讲--分组密码

上传人:飞*** 文档编号:3970716 上传时间:2017-08-05 格式:PPT 页数:46 大小:608KB
返回 下载 相关 举报
第7 8讲--分组密码_第1页
第1页 / 共46页
第7 8讲--分组密码_第2页
第2页 / 共46页
第7 8讲--分组密码_第3页
第3页 / 共46页
第7 8讲--分组密码_第4页
第4页 / 共46页
第7 8讲--分组密码_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《第7 8讲--分组密码》由会员分享,可在线阅读,更多相关《第7 8讲--分组密码(46页珍藏版)》请在金锄头文库上搜索。

1、第四章 分组密码,王 滨2005年3月14日,2,明文处理方式分组密码(block cipher) 将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。 流密码(stream cipher) 又称序列密码。序列密码每次加密一位或一字节的明文。,3,4.1 分组密码的基本原理,定义1 分组密码就是将明文数据按固定长度进行分组,然后在同一密钥控制下逐组进行加密,从而将各个明文分组变换成一个等长的密文分组的密码。 其中二进制明文分组的长度称为该分组密码的分组规模.,m1,m2,m3,mn,4,实现原则: (1) 必须实现起来比较简单,知道密钥时加密和脱密都十分容易,适合硬件

2、和(或)软件实现. (2) 加脱密速度和所消耗的资源和成本较低,能满足具体应用范围的需要. 例: 对高速通信数据的加密-硬件实现; 嵌入到系统软件的加密程序-软件实现; 智能卡内数据的加密-低成本实现,5,安全性设计原则,1. 混乱原则(又称混淆原则)(Confusion)混乱原则就是将密文、明文、密钥三者之间的统计关系和代数关系变得尽可能复杂,使得敌手即使获得了密文和明文,也无法求出密钥的任何信息;即使获得了密文和明文的统计规律,也无法求出明文的新的信息。可进一步理解为:(1)明文不能由已知的明文,密文及少许密钥比特代数地或统计地表示出来。(2)密钥不能由已知的明文,密文及少许密钥比特代数地

3、或统计地表示出来。,6,2. 扩散原则(Diffusion) 扩散原则就是应将明文的统计规律和结构规律散射到相当长的一段统计中去(Shannon的原话)。 也就是说让明文中的每一位影响密文中的尽可能多的位,或者说让密文中的每一位都受到明文中的尽可能多位的影响。 如果当明文变化一个比特时,密文有某些比特不可能发生变化,则这个明文就与那些密文无关,因而在攻击这个明文比比特时就可不利用那些密文比特.,7,分组密码的设计方法,采用乘积密码: 即通过将一个弱的密码函数迭代若干次,产生一个强的密码函数,使明文和密钥得到必要的混乱和扩散。 在设计迭代函数时,充分利用代替密码和移位密码各自的优点,抵消各自的缺

4、点,从而通过多次迭代,形成一个强的分组密码算法。,8,4.2 DES分组密码算法(Date Encipher Standard),一、背景简介该算法是在美国NSA(国家安全局)资助下由IBM公司开发的密码算法,其初衷是为政府非机密的敏感信息提供较强的加密保护。它是美国政府担保的第一种加密算法,并在1977年被正式作为美国联邦信息处理标准。DES主要提供非军事性质的联邦政府机构和私营部门使用,并迅速成为名声最大,使用最广的商用密码算法。,9,背景,发明人:美国IBM公司 W. Tuchman 和 C. Meyer 1971-1972年研制成功基础:1967年美国Horst Feistel提出的理

5、论产生:美国国家标准局(NBS)1973年5月到1974年8月两次发布通告, 公开征求用于电子计算机的加密算法。经评选从一大批算法中采纳 了IBM的LUCIFER方案标准化:DES算法1975年3月公开发表,1977年1月15日由美国国家标 准局颁布为数据加密标准(Data Encryption Standard),于 1977年7月15日生效,10,背景,美国国家安全局(NSA, National Security Agency)参与了美国国家标准局制定数据加密标准的过程。NBS接受了NSA的某些建议,对算法做了修改,并将密钥长度从LUCIFER方案中的128位压缩到56位1979年,美国银

6、行协会批准使用DES1980年,DES成为美国标准化协会(ANSI)标准1984年2月,ISO成立的数据加密技术委员会(SC20)在DES基础上制定数据加密的国际标准工作,11,DES首次被批准使用五年,并规定每隔五年由美国国家保密局作出评估,并重新批准它是否继续作为联邦加密标准。最近的一次评估是在1994年1月,美国已决定1998年12月以后将不再使用DES。因为按照现有的技术水平,采用不到几十万美元的设备,就可破开DES密码体制。目前的新标准是AES,它是由比利时的密码学家Joan Daemen和Vincent Rijmen设计的分组密码Rijndael(荣代尔)。,12,1 DES分组密

7、码算法,二、算法概述(一)基本参数,分组加密算法:明文和密文为64位分组长度对称算法:加密和解密除密钥编排不同外,使用同一算法密钥长度:有效密钥56位,但每个第8位为奇偶校验位,可忽略密钥可为任意的56位数,但存在弱密钥,容易避开采用混乱和扩散的组合,每个组合先替代后置换,共16轮只使用了标准的算术和逻辑运算,易于实现,13,输入64比特明文数据,初始置换IP,在密钥控制下16轮迭代,初始逆置换IP-1,输出64比特密文数据,DES加密过程,14,加密框图,15,置 换,定义4.1 :设S是一个有限集合, 是从S到S的一 个映射。如果对任意的u,v,当uv 时,(u) (v),则称是S上的一

8、个置换。,16,初始置换与逆初始置换输入和输出比特的序号从左向右编排为1, 2, 3, ,64,含义:输出的第1比特是输入的第58比特,该表示方法实现方便.,17,IP和IP-1,IP,IP1,18,(二)加密算法,DES的第 i 圈加密结构图,19,DES加密算的圈函数-属于Feistel模型:,DES的圈函数的结构,它等价于两个对合变换:,20,注意,无论f函数如何选取,DES的圈函数是一个对合变换。,21,DES的 F 函数,22, E盒扩展 扩展变换的作用是将输入的32比特数据扩展为48比特数据,扩展,23, E盒扩展,扩展方式: (1) 将输入的32比特每4比特为一组分为8块; (2

9、)分别将第m-1块的最右比特和第m+1块的最左比特添到第m块的左边和右边,形成输出的第k个6比特块. 主要原因:硬件实现简单,24,DES的 F 函数,25,压缩替代S-盒48位压缩到32位,1 2 3 4 5 643 44 45 46 47 48,1 2 3 4 29 30 31 32,26, S盒,行和列的序号从0起算。,27, S-盒的构造,28,S-盒的构造要求,S-盒是算法的唯一非线性部件,因此,它的密码强度决定了整个算法的安全强度提供了密码算法所必须的混乱作用非线性度、差分均匀性、严格雪崩准则、可逆性、没有陷门,29,DES的 F 函数,30, P盒置换,将S-盒变换后的32比特数

10、据再进行P盒置换,置换后得到的32比特即为 f 函数的输出。,含义:P盒输出的第1个元是输入的第16个元。,基本特点: (1)P盒的各输出块的4个比特都来自不同的输入块; (2) P盒的各输入块的4个比特都分配到不同的输出块之中; (3) P盒的第t输出块的4个比特都不来自第t输入块。,31,例: 利用DES算法和全0密钥对输入10000001 19600000进行1圈加密的结果。 (1)输入的右半部分是19600000 = 0001 1001 0110 0000 0000 0000 0000 0000 (2)经E盒扩展后变为000011 110011 101100 000000 000000

11、 000000 000000 (3)与全0子密钥模2加后变为000011 110010 101100 000000 000000 000000 000000 (4)查S盒后的32比特输出为 f 8 3 7 2 c 4 d1111 1000 0011 0111 0010 1100 0100 1101 (5)经P盒后得F函数的32比特输出:9cd89aa7= 1001 1100 1101 1000 1001 1010 1010 0111 (6)将F函数的输入放到左边,将F函数的输出与圈函数的左半输入模2加后放到右边,的圈函数的64比特输出为 19600000 8cd89aa6,32,DES中的子密

12、钥的生成,33,置换选择1:从64比特密钥中取出56个有效比特。,置换选择2:从56个密钥比特中取出48个作为子密钥,34,移位次数,意想不到的效果:子密钥寄存器的内容经16次迭代后又回到原来的设置。,35,(三)脱密算法,脱密结构与加密结构完全相同,只不过是所使用的子密钥的顺序正好相反!,加密子密钥:,脱密子密钥:,36,DES的加密和脱密变换,加密: y=IP-1。fek16 。 D 。 。 D 。 fek2 。 D 。 fek1 。 IP(x)脱密 x=IP-1。fdk16 。 D 。 。 D 。 fdk2 。 D 。 fdk1 。 IP(y)注意(1)加密密钥eki和脱密密钥dki的关

13、系: dki=ek(16-i)(2)最后一圈若添加交换则无法正常脱密: y=IP-。D 。fek16 。 D 。 。 D 。 fek2 。 D 。 fek1 。 IP(x) x=IP-。fdk16 。 D 。 。 D 。 fdk2 。 D 。 fdk1 。 D 。 IP(y),37,DES分组密码算法小结,(3)基本参数分组长度:64比特密钥长度:64比特有效密钥长度:56比特迭代圈数:16圈每圈子密钥长度:48比特,(4) 编码环节 6进4出的S盒变换逐位模2加变换比特移位变换P盒,(1)密码模型 Feistel模型,(2) F函数模型 S-P网络,实现性能: 软件实现慢、硬件实现块;可全部

14、用布尔电路实现,比特扩展变换E盒比特抽取变换PC1、PC2和IP,38,穷举攻击分析 穷举攻击就是对所有可能的密钥逐个进行脱密测试, 直到找到正确密钥为止的一种攻击方法. 穷举攻击判断正确密钥的方法: 将利用试验密钥脱密得到的可能明文与已掌握的明文的信息相比较,并将最吻合的那个试验密钥作为算法输出的正确密钥。 穷举攻击又称为穷尽攻击、强力攻击、蛮干攻击等。只要明文不是随机的,就可实施穷举攻击。,39,穷举攻击的算法 已知条件:已知密文c及对应的明文m. Step 1 对每个可能密钥k,计算c=D(k,m),并判断c=c是否成立.不成立时返回Step1检验下一个可能密钥,成立时将k作为候选密钥,并执行Step 2. Step 2 利用其它条件对作k进一步确认.确认通过时输出,算法终止.否则返回Step1检验下一个可能密钥.,40,穷举攻击算法的计算复杂性 定理 设密钥在密钥空间K中服从均匀分布,且没有等效密钥,则穷举攻击平均需要检验完 个密钥后才找到正确密钥。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号