01fr第3章 分组密码和数据加密标准DES(精简)104
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章分密组密码算法DES
教学内容要点:(2课时)
1.分组加密 (4)
2.Feistel(费斯妥)分组密码 (6)
3.数据加密标准(DES)的历史 (15)
4.DES算法的入口参数 (18)
5.DES算法加密过程 (19)
6.变换密钥 (25)
7.
处理64位的数据 .............................................. 31 8. 轮函数Round 说明
111(,,)(,);015i i i i i Round L R k L R i +++=从到 (37)
9. DES 算法的解密过程 (45)
10. 雪崩效应 (46)
11. DES 算法的强度(安全性)争议 (48)
12. 对密钥长度的攻击 (48)
13. DES 的未来 (52)
14.差分分析方法和线性分析方法(提及) (53)
15.作业 (54)
16.课后资料 (56)
说明:
1.分组加密
“分组加密(block cipher):一次处理固定比特长度的分组,每次处理都有复杂的数据处理过程。
现代常规分组加密算法有:
1. DES
2. IDEA
3. RC5
4. RC6
5. AES
在近代密码史上,典型的影响相当大的分组密码算法是DES算法,它们和所有早已退出的算法由于安全与强度的原因已近退出历史舞台,但它们曾做出了重要贡献,对它们的学习对后面算法的
理解和密码算法的发展及其理由有积极意义。
本章将详解DES和略解其它分组算法。
现在来看看现代分组密码,其中一个最广泛使用的加密算法提供保密/认证服务(基于密码的消息验证码:确保消息未被改动),重点DES (数据加密标准);
分组密码一直得以广泛使用的理由在于:它处理速度很快,且安全性高。
学习目的此外也在于以DES为例来说明让大家了解现代分组密码的设计原则。
分组密码以固定长度的分组来处理模块,每个然后加/解密;像在一个非常大的字符集合上进行替代运算。
64位或更长;
2.Feistel(费斯妥)分组密码
许多对称的分组加密算法,都是基于结构称为Feistel分组密码,如:IBM的LUCIFER卖给英国公司Lloyd公司的现金发放卡上;此外DES算法。
它由分组密码操作上n位明文块经过产生n位密文区块。
任意可逆的替代映射密码查找表:对较
大的分组是不切合实际,但是,从实现和性能的观点。
一般而言,一个n位通用分组密码替代表的规模,关键是N*2n。
对于64位的块,这是一个理想的长度挫败统计分析攻击的统计,表的大小是64 ×264 = 270 = 1021位。
这实际是密钥的长度,这太长了,实现推广困难很大。
在考虑这些困难,Feistel指出,现在需要的对应较n是一个近似的理想分组密码系统,建立起来的组件,很容易实现。
Feistel是指一个n位通用替代是一个理想的分组
密码,因为它允许的最大数量的加密映射(从明文到密文块)。
4位输入产生的一个16个可能的输出,这是对应的密码替换成一个独特的16个可能的输出,每个代表了4位密文。
该加密和解密映射可以定义一个表格所示,如图3.1 。
它描绘了一个微小的4位替代;它表明,每一个可能的输入可任意映射到任何输出-这就是为什么它的复杂性的增长如此迅速。
(Claude Shannon’s 1949 paper )
申农的1949年论文的关键思想,引导了现代分组密码的发展。
重要的是,他建议交替使用S -盒分和P –盒(形式的S-P网络SPN),形成一个复杂的实用密码。
他还介绍了思想的混乱和扩散(confusion and diffusion),它们分别由S -盒和P-盒(与S -盒)提供。
扩散和混乱是香农引入的两个基本构件。
对于密码操作来讲是替代和排列;对于于消息的信息量(统计特征)来说是混乱和扩散每个分组密码涉
及转变块明文到密文区块,其中的转变取决于关键。
例子:一滴红墨水滴入太平洋;(海水依然是蓝色的);要重新将红墨水分离是不可能的。
扩散力求使明文和密文的统计之间的关系尽可能复杂以挫败企图推断。
混乱力求使密文和加密金钥统计之间的关系一样复杂可能再次挫败企图。
例子:一幅扑克牌从6楼以天女撒花的方式扔下一楼;54位同学一个去检一张;按学号收集起来;
这个顺序是乱的。
没有规律;实验可重复;实验现象重复的概率几乎为零;服从某种概率分布。
这是“乱”;无序可言
因此,成功的扩散和混乱成为现代的分组密码的本质属性,他们已成为现代化的分组密码的设计。
体的实现取决于Feistel网络的选择下列参数和设计的基石:
Horst Feistel 设计出基于可逆替代乘积密码feistel cipher;实出了香农的S-P网络思想。
这个
结构称为费斯妥结构或费斯妥网络,它有以下几个主要参数:
block size块大小-增加规模提高安全性,但放缓速度;
钥长度key size -规模日益提高的安全,使详尽关键搜寻难度,但可能会减缓密码
轮数number of rounds -越来越多改善安全,但放缓密码
subkey generation algorithm子钥生成算法-更加复杂的分析可以作出努力,但放缓密码
码
fast software en/decryption快速软件加/解密-最近关心的实际使用
ease of analysis便于分析-更容易验证与测试的力量
3.数据加密标准(DES)的历史
美国国家标准局NBS,1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准(DES),于1973年5月15日和1974年8月27
日先后两次向公众发出了征求加密算法称为DES算法的公告。
加密算法要达到的目的(通常称为DES 密码算法要求)主要为以下四点:
1.DES能提供高质量的数据保护;
2.DES具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;3.DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以密钥的保密为基础;
4.实现经济,运行有效,并且适用于多种完全不
同的应用。
使用最广泛的私钥分组密码,是数据加密标准(DES )。
这是在1977年通过了国家标准局作为联邦信息处理标准第46条第(文件号:FIPSPUB46 )。
加密数据加密64位分组使用56位密钥。
该加密得到广泛使用。
它也一直受到很大争议的安全。
1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES Data Encryption Standard)。
其前身是费斯妥(Festel)加密算法。
斯妥是IBM Lucifer魔王的作者,德国人,1943年移民美国,战后在空军的研究中心研究密码,1960年转到密特(Mitre)公司又遭阻,后来到IBM ,但遭美国国家安全局(NSA)阻挠,谣传NSA限制其钥匙长度不可超过56位,DES56位有效密钥。
4.DES算法的入口参数
DES算法的入口参数有三个:Key、Data、Mode。
其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密
或被解密的数据,称其这一个DES字或DES分组;Mode为DES的工作方式,有两种:加密或解密。
5.DES算法加密过程
学习密码算法的3个层面:
第1层境界:知道如何执行(手工执行);
第2层境界:还要知道如何描述(计算机算法操作符和自然语言);
第3层境界:用某种语言平台来实现(用计算机来提高效率)
两个过程:
变换密钥得到16*48bits的子密钥.
处理64bits数据得到64bits密文/或明文概述
DES的一般描述2
第1步:从64位输入密钥出发经过16轮变化生成16个48子密钥位
过程:(1次选排之后,循环左移-选排16次);一个子密钥的生成流程.
(简单来讲:一次选排,循左,二次选排(三部曲))。
第2步:从64位数据出发,利用16子子密钥经过16轮变化得到64位数据输出;如果加密:则16轮变化按增序序使用16个子钥,如果解密;则减序使用16个子钥;(初始排列;轮处理;逆
初始排列)
例子:
11010111;实始排列号43126578;得到:10111011;从新编号;其逆排列为:34216578;图示总结:DES的一轮数据处理的流程图:
L i=R i-1
详细解说:
6.变换密钥
表1:密钥位编号
右边的28位称为0R ,1 i 。
i i i R s R →<<<-1,
进入下步。
i s <<<:循环左移i
s 位。
i
s 见表(循环移位表)。
循环移位表:
I++;i<17则跳至1-3,否则结束。
2C:从56中选48位,照某常表2中选取。
2P:将数据照某
常表2排列。
常表2
2-1、M M IP )(0。
(M 表示消息)取得64位的数据,如果数据长度不足64位,应该将其填充为
64位(例如补零),IP :初始排列,照某常表1进行初始排列。
数据位编号: 常表:
后的32位称为0R,1 i。
2-3轮函数(输出为两个;以向量坐标的形式); 111(,,)(,);015i i i i i Round L R k L R i +++=从到
2-4、左右互换并合并:R 16L 16 2-8、
→
-)(16161
L R IP
此分组的输出。
1
-IP :初始排列,
照某常表6进行排列。
(末选排)注意:左右互换了。
解密过程:只有一处不同,即子密钥的使用顺序不同,加密从k0用到k15;而解密是从k15用到k0;
(算法演示)
8. 轮函数Round 说明
111(,,)(,);015
i i i i i Round L R k L R i +++=从到
2-3、1+→i i L R 。
(向左赋值)
2-4、i i R R C P →
)(11。
1C :从
32中照某常表2选
取48位。
1P :照某常表3排列。
(开始进入F
处理)
2-5、
i
i i box R K R S →⊕)(,将得到32位输出:
321d d 1-→i R 。
(F 处理结束)box S :
照S 盒常表4进行置换:
4
)*1(44)*1(16)*1(56)*1(26)*1(66)*1(1),(-+-+-+-+-+-+→j j j j j j j d d D D D D S ,
j 从1执行到8。
例题:试写0x4142434445464748的S 盒输出?
2-6、i i R R P →)(2。
2P :照某表常表5
进行排列。
(选
排)
2-7、1+→⊕i i i R L R ,?16<i YES ,
9.DES算法的解密过程
解密过程与加密是一样的,只是子钥使用的顺序
列取反。
10.雪崩效应
任何加密算法都必须有的品质:一个小小的明文或密钥改变都对应产生一个重大的密文改变。
特别是,改变一个位元的明文或一个位的密钥应该产生的变化在许多比特的密文。
如果变化很小,这可能提供了一种方法,使用得差分分析攻击有效;DES表现出强大的雪崩效应,因为可以看到表3.5 。
11.DES算法的强度(安全性)争议
1.F函数(S-Box)设计原理未知
2.密钥长度的争论
3.DES的破译
4.弱密钥与半弱密钥
5.DES的替代算法AES。
12.对密钥长度的攻击
理论上:
关于DES算法的另一个最有争议的问题就是担心实际56比特的密钥长度不足以抵御穷举式攻
击,因为密钥量只有5617
个。
210
1天=24*3600*365=31536000≈107
P4CPU=1GHz≈109
101*Hz能执行1条指令,判断1个密钥,工执行103条指令;
要求1年能破译的话要CPU≈1017-(7+9-1-3)= 105块CPU。
1.早在1977年,Diffie和Hellman已建议制造一个每秒能测试100万个密钥的VLSI芯片,再用若干芯片做成一台机器。
要求它一天就可以搜
索整个密钥空间。
他们估计制造这样的机器大约需要2000万美元,如今大大降低。
2.在CRYPTO’93上,Session和Wiener给出了一个非常详细的密钥搜索机器的设计方案,这个机器基于并行运算的密钥搜索芯片,所以16次加密能同时完成。
花费10万美元,平均用1.5天左右就可找到DES密钥。
实践上:
1.美国克罗拉多洲的程序员Verser从1997年2月18日起,用了96天时间,在Internet上数万。