第4章现代对称分组密码课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4章现代对称分组密码课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 对称 分组 密码 课件
- 资源描述:
-
1、现代对称分组密码回顾上一讲的内容n古典密码代替密码n单字母密码n多字母密码置换密码n对称密码的两个基本运算代替和置换(Substitution&permutation)n对称密码分析的两个基本方法系统分析法(统计分析法)、穷举法n多轮加密n数据安全基于算法的保密内容提要n乘积密码nDES的产生与应用n分组密码的设计原理与方法n简化的DESnFeistel密码结构n对DES的描述n对DES的讨论n分组密码的工作模式nDES密码的应用乘积密码(Product Ciphers)n因为语言的特征,用代替和置换规则构造的密码是不安全的n因此,可以考虑连续使用两个或两个以上的基本密码的方式来增强密码强度:
2、两次代替可以构造一个更难于分析的代替两次置换可以构造一个更难于分析的置换代替之后在进行一次置换,可以构造一个强度更高的新密码n这是古典密码通往现代密码的桥梁乘积密码(Product Ciphers)n乘积密码就是以某种方式连续执行两个或多个密码以使得到的最后结果从密码编码的角度比其任何一个组成密码都强.n两个加密按它们加密的顺序连接进行合成时,要求第一个方法的密文空间与第二个方法的明文空间一致。n挫败基于统计分析的密码破译加密合成n两类方法的合成比单个方法更具有抗非法解密的能力?n这不一定都对,第二个方法可以部分或全部抵消第一个方法的作用。n如果合成的方法不满足交换性,而且其中之一与另一个还独
3、立,则这一合成是有效的。n比如换位,执行一次“扩散”,多字母代替,执行一次“混乱”,不是一个群,因此可以被重复而且其组合复杂度进一步增加。等于是扩大了密钥空间。转子机(Rotor Machines)n在现代密码之前,转子机是最普遍的乘积密码n在第二次世界大战中得到广泛应用 German Enigma,Allied Hagelin,Japanese Purplen实现了一个非常复杂的可变的代替密码n使用一系列的转子,每一个状态给定一种代替表,每加密一个字母,转子转一格,代替表就变一个n3 个转子可以产生263=17576 代替表转子机Rotor machine置换密码l换位密码把明文按行写入,按
4、列读出l密钥包含3方面信息:行宽,列高,读出顺序key:4 3 1 2 5 6 7plaintext:a t t a c k po s t p o n ed u n t i l t w o a m x y zciphertext:TTNAAPTMTSUOAODWCOIXPETZl完全保留字符的统计信息l使用多轮加密可提高安全性多次置l多次置换,减少结构性排列,不易于重构。置换密码分析内容提要n乘积密码nDES的产生与应用n分组密码的设计原理与方法n简化的DESnFeistel密码结构n对DES的描述n对DES的讨论n分组密码的工作模式nDES密码的应用DES的产生背景 美国国家标准局(NBS)
5、1973 年公开征求计算机加密算法标准,要求如下:该算法必须提供较高的安全性;该算法必须完全确定并且易于理解;该算法的安全性不应依赖于算法本身,而是应该依赖于密钥;该算法必须对所有的用户有效;该算法必须适用于各种应用;该算法必须能够通过价格合理的电子器件得以实现;该算法必须能够有效使用;该算法必须能够得以验证;该算法必须能够得以出口出口。数据加密标准(DES)HISTORYn1974年8月27日,NBS开始第二次征集nIBM提交了算法 Lucifer cipherby team led by Feistelused 64-bit data blocks with 128-bit keyn197
6、7 年正式颁布为数据加密标准(DES-Data Encryption Standard)。n1979 年,美国银行协会批准使用 DES。n1980 年,DES 成为美国标准化协会(ANSI)标准。n1984 年,ISO 开始在 DES 基础上制定数据加密的国际标准,称之为DEA-1。n美国国家安全局NSA每五年对该算法进行评估,1994年,决定1998年12月之后不再使用DES。n现已由采用Rijndael算法的高级加密标准AES取代。内容提要n乘积密码nDES的产生与应用n分组密码的设计原理与方法n简化的DESnFeistel密码结构n对DES的描述n对DES的讨论n分组密码的工作模式nDE
7、S密码的应用分组密码与流密码n流密码加密过程是将信息流分为基本的信息单位,然后与相应的密钥流作运算从而掩盖明文信息。n分组密码与之不同的是将明文编码表示后的数字序列,划分成等长的组,在密钥的作用下变换成等长的输出序列。解密时,将加密后的分组与相同的密钥相互作用而得到明文信息。分组密码的特点n 分组密码与流密码的不同之处在于,分组密码输出的每一位数字不是只与相应时刻输入的明文数字有关,而是还与一组长为m的明文数字有关。n在密钥相同下,分组密码对长为m的输入明文所实施的变换是等同的,所以只需研究对任一组明文数字的变换规则。n分组密码易于标准化和易于实现;n不善于隐藏明文的数据模式,可以离线操作,对
8、于重放、插入、删除等攻击方式的抵御能力不强。(时间无关)mn 分组密码的长度明文为分组长度为m的序列,密文为分组长度为n的序列:nnm,称其为有数据扩展的分组密码;nn密文的映射方法),为表示任一特定代替所需的二元数字位数为:lb(2n!)(n-1.44)2n=O(n2n)(bit)即密钥长度达n2n位。n=4,424=64n=64,64264=270 1021位分组长度n要足够大,防止明文穷举攻击。分组密码的一般设计原理-ivDES的密钥长度仅为56位,AES的密钥长度为128/196/256分组密码的设计问题在于找到一种算法,能在密钥的控制之下,从一个足够大而且能在密钥的控制之下,从一个足
9、够大而且足够好的代替子集中,简单而迅速地选取足够好的代替子集中,简单而迅速地选取出一个代替。出一个代替。分组密码的一般设计原理-v分组长度足够大 密钥量足够大,能抵抗密钥穷举攻击,但 又不能过长,以利于密钥管理由密钥确定代替的算法要足够复杂,能抵抗各种已知攻击分组密码设计原则Shannon指出:理想的密码中理想的密码中,密文的统计特性独立于密钥。1949年Shannon提出了保证实际密码实际密码安全的两个基本原则:混乱混乱(Confusion)和扩散扩散(Diffusion)原则。混乱原则:为了避免密码分析者利用明文和密文明文和密文之间的依赖关系之间的依赖关系进行破译,密码的设计应保证这种依赖
10、关系足够复杂。需要非线性非线性代换算法。扩散原则:为避免密码分析者对密钥逐段破译密钥逐段破译,密码的设计应保证密钥的每位数字能够影响密文中的多位数字。同时,为了避免密码分析者利用明文的统计特性,密码的设计应该保证明文的每明文的每位数字能够影响密文中的多位数字位数字能够影响密文中的多位数字,从而隐藏明文的统计特性。Shannon and Substitution-Permutation Ciphersn1949 Shannon 提出了代替置换网络的思想substitution-permutation(S-P)networks modern substitution-transposition p
11、roduct ciphern这是构成现代分组密码的基础nS-P 网络基于密码学的两个基本操作:substitution(S-box)permutation(P-box)n提供了消息的扩散与混乱实现方法的设计原则n软件实现的要求:使用子模块:密码运算在子模块上进行,要求子块的长度能自然地适应软件编程,如8、16、32比特等。使用简单的运算。在子块上所进行的密码运算尽量采用易于软件实现的运算。最好是用标准处理器所具有的一些基本指令,如加法、乘法、移位等。n硬件实现的要求:能够采用同样的器件同样的器件来实现加密和解密,以节省费用和体积。尽量采用标准的组件结构,以便能适应于在超大规模集成电路中实现。内
12、容提要n乘积密码nDES的产生与应用n分组密码的设计原理与方法n简化的DESnFeistel密码结构n对DES的描述n对DES的讨论n分组密码的工作模式nDES密码的应用简化的DESnSimplified DES方案,简称S-DES方案。n分组长度8位,密钥长度10位n加密算法涉及五个函数:(1)初始置换IP(initial permutation)(2)复合函数fk1,它是由密钥K确定的,具有置换和代替的运算。(3)转换函数SW(4)复合函数fk2(5)初始置换IP的逆置换IP-1加密算法的数学表示nIP-1 fk2 SW fk1 IP也可写为密文=IP-1fk2(SW(fk1(IP(明文)
13、其中K1=P8(移位(P10(密钥K)K2=P8(移位(移位(P10(密钥K)n解密算法的数学表示:明文=IP-1(fk1(SW(fk2(IP(密文)S-DES的密钥生成exampleS-DES加密操作内容提要n乘积密码nDES的产生与应用n分组密码的设计原理与方法n简化的DESnFeistel密码结构n对DES的描述n对DES的讨论n分组密码的工作模式nDES密码的应用Feistel分组加密算法结构之动机分组加密算法,一一映射(加密是可逆的)当n较小时,等价于代替变换当n较大时,比如n=64,无法表达这样的任意变换。Feistel结构很好地解决了二者之间的矛盾Feistel分组加密算法结构之
14、思想基本思想:用简单算法的乘积来近似表达大尺寸的替换变换乘积密码就是以某种方式连续执行两个或多个密码,以使得所得到的最后结果或乘积从密码编码的角度比其任意一个组成密码都更强。交替使用代替和置换(permutation)混乱(confusion)和扩散(diffusion)概念的应用Feistel密码结构 Feistel结构定义n加密:Li=Ri-1;Ri=Li-1 F(Ri-1,Ki)n解密:Ri-1=LinLi-1=Ri F(Ri-1,Ki)=Ri F(Li,Ki)Feistel加密与解密基于Feistel结构的密码算法设计分组大小。越大安全性越高,但速度下降,64比特较合理密钥位数。越大安
15、全性越高,但速度下降,64比特广泛使用,但现在已经不够用128循环次数。越多越安全,典型16次子钥产生算法。算法越复杂,就增加密码分析的难度round轮函数。函数越复杂,就增加密码分析的难度快速软件实现,包括加密和解密算法易于分析。便于掌握算法的保密强度以及扩展办法。内容提要n乘积密码nDES的产生与应用n分组密码的设计原理与方法n简化的DESnFeistel密码结构n对DES的描述n对DES的讨论n分组密码的工作模式nDES密码的应用DES的描述nDES利用56比特串长度的密钥K来加密长度为64位的明文,得到长度为64位的密文DES加解密过程DES示意图n输入的明文首先经过一个初始置换IP,
16、将明文分为左半部分和右半部分,各长32位。然后进行16轮完全相同的运算,即图中的f函数。在这些函数中,数据与密钥结合起来从而隐藏了密文,最后左、右半部分合在一起经过一个末置换IP-1(初始置换的逆置换),就完成了密文的生成。明文IPIP-1密文fff0L0R1K2K16K01RL),(1001KRfLR),(2112KRfLR12RL1415RL),(15141415KRfLR),(16151516KRfLR1516RL初始置换IP和IP-1n同S-DES(简化的DES)相同,DES在算法的开始和结束部分增加了两个置换操作。n目的增加算法的抗分析能力。输入(64位)58 50 42 34 26
17、 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7输出(64位)初始变换IPL0(32位)R0(32位)置换码组 输入(64位)40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 5
18、2 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25输出(64位)逆初始变换IP-1初始置换IP和IP-1(互逆)M20 M14M14M20一轮DES1iL1iR扩展置换S盒替换P盒替换iRiL密钥56位(经过置换)移位28位移位28位压缩置换密钥48位32位48位32位32位32位32位左32位右32位Li-1Ri-1扩展置换E48位(明文)64位密钥作第i次迭代的计算机子密钥Ki密钥程序表48位(密钥)8组6位码S1S2S8模2加选择函数输入:6位输出:4位+32位置换32位32位LiRi左3
19、2位右32位Ri-1Li-1模2加+.+乘积变换中的一次迭代DES:Function F扩展置换的作用n它产生了与密钥同长度的数据进行异或运算n它产生了更长的结果,使得在代替运算时能进行压缩(增加复杂性)n输入的一位将影响两个替换(例如第一位输入,存在于第一个和第8个子分组中,每个子分组分别进行S盒替换),所以输出对输入的依赖性将传播得更快,明文或密钥的一点小的变动应该使密文发生一个大的变化.这叫雪崩效应。(avalanche effect)S-Box对每个盒,6比特输入中的第1和第6比特组成的二进制数确定的行,中间4位二进制数用来确定16列中的相应列,行、列交叉处的十进制数转换为二进制数后,
20、4位二进制数表示作为输出。S-盒的构造(S6)P-盒置换16 07 20 21 29 12 28 1701 15 23 26 05 18 31 1002 08 24 14 32 27 03 0919 13 30 06 22 11 04 2557 49 41 33 25 17 9 1 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 33 15 7 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4置换选择1密钥(64位)C0(28位)D0(28位)
21、DES的解密过程n采用与加密相同的算法。n以逆序(即 )使用密钥。第一圈用第16个子密钥K16,第二圈用K15,其余类推。11516,KKK 不同微处理器上的DES软件实现速度 处理器处理器速度(MHz)每秒处理的DES分组个数80884.7370680007.69008028661,10068020163,50068030163,90080286255,000680305010,000680402516,000680404023,000804866643,000采样专业硬件速度可达千万分组/S内容提要n乘积密码nDES的产生与应用n分组密码的设计原理与方法n简化的DESnFeistel密码结
22、构n对DES的描述n对DES的讨论n分组密码的工作模式nDES密码的应用对DES的讨论n弱密钥与半弱密钥n互补密钥nDES的破译n密钥长度的争论nDES的轮数n函数FnS-盒的疑问盒的疑问弱密钥n初始密钥被分成两部分,每部分都单独做移位。如果每一部分的每一位都是0或都是1,则每一圈的子密钥都相同。这样的密钥被称为弱密钥。n弱密钥的定义:若k使得加密函数与解密函数一致,则称k为弱密钥。nEK(EK(p)=pnDES存在4个弱密钥半弱密钥n有些成对的密钥会将明文加密成相同的密文,即一对密钥中的一个能用来解密由另一个密钥加密的消息,这种密钥称作半弱密钥。这些密钥不是产生16个不同的子密钥,而是产生两
23、种不同的子密钥。n半弱密钥:对于密钥 k,存在一个不同的密钥 ,满足 。n至少有12个半弱密钥。)()(*kkDESDES*k对DES的讨论n弱密钥与半弱密钥n互补密钥nDES的破译n密钥长度的争论nDES的轮数n函数FnS-盒的疑问盒的疑问互补密钥n将密钥的0换成1,1换成0,就得到该密钥的补密钥。如果用原密钥加密一组明文,则用补密钥可以将明文的补码加密成密文的补码。nDES算法具有互补性,即:若 、是 的补、是 的补,则 。)(mDESckccmm)(mDESck证明-in对于一位的A和B有下的真值表,n因此,对于任何等长的A和B,有(A B)=A B,A B=A B证明-ii如果明文和密
展开阅读全文