《《应用密码学》DES课件.ppt》由会员分享,可在线阅读,更多相关《《应用密码学》DES课件.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据加密标准数据加密标准(DES)应用密码学应用密码学背景资料背景资料1973年年NBS国家标准局国家标准局(NIST国家标准与技术研究所)国家标准与技术研究所)算法要求:算法要求:算法公开,安全性依赖于密钥而不是算法算法公开,安全性依赖于密钥而不是算法算法应能测试和验证算法应能测试和验证不同的设备可以相互通信不同的设备可以相互通信背景资料背景资料19681974,IBM研制研制1976被定为联邦标准被定为联邦标准并命名为并命名为DES(DataEncryptionStandard)1981、1987、1993分别被分别被NIST再次认证再次认证Feistel网络网络加密过程:加密过程:1.把
2、一个分组分成长度相等的把一个分组分成长度相等的左右两部份:左右两部份:L,R2.进行进行n次叠代,次叠代,其第其第i 轮的输出取决于前一轮的输出:轮的输出取决于前一轮的输出:Li=Ri-1 Ri=Li-1(Ri-1,Ki)Ki是第是第i轮使用的子密钥轮使用的子密钥是任意的轮函数是任意的轮函数3.最后交换左右两部分最后交换左右两部分Feistel网络网络解密过程与加密过程的区别解密过程与加密过程的区别:子密钥的顺序正好相反:子密钥的顺序正好相反:加密:加密:K1,K2,K3,K(n-1),Kn解密:解密:Kn,K(n-1),K3,K2,K1L0R0R2L2L2=R1R2L1=R0R1(R0,K1
3、)(R1,K2)K1K2加密加密R2L2L0R0R0L0L2R0(L2,K2)(R0,K1)K2K1解密解密1010,11100011,11100001,10011111,1010加密加密1010,11100011,11100100,11011000,10011000,10010100,11010011,11101000,10010010,01110111,00110001,10011111,1010加密加密0100,11011000,10011111,10100001,1001解密解密0100,11011000,10011010,11100011,11100011,11101010,1110
4、1000,10010011,11100111,00110010,01111111,10100001,1001解密解密采用采用Feistel网络的著名的分组密码网络的著名的分组密码DESFEAL:由日本电报电话公司的:由日本电报电话公司的AkihiroShimizu和和ShoojiMiyaguchi设计设计LOKI:由澳大利亚人于由澳大利亚人于1990年首先提出作为年首先提出作为DES的一种潜的一种潜在替换算法在替换算法GOST是前苏联设计的分组密码算法是前苏联设计的分组密码算法CAST由加拿大的由加拿大的C.Adams和和S.Tavares设计设计Blowfish由由BruceSchneier
5、设计设计DES的参数:的参数:分组长度分组长度:64位位密钥长度:密钥长度:64位位其中其中第第8,16,24,56,64为校验位为校验位有效密钥长度:有效密钥长度:56位位密钥空间:密钥空间:256DES的加密过程:的加密过程:64位明文位明文初始置换初始置换乘积变换乘积变换逆初始变换逆初始变换64位密文位密文初始置换初始置换58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157逆初始置换逆初始置换408481
6、65624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725乘积变换乘积变换16次叠代的次叠代的Feistel网络网络需要解决的问题:需要解决的问题:1.函数的构造函数的构造2.把把64位主密钥转换为位主密钥转换为16个个48位的子密钥位的子密钥 函数函数 S盒代替盒代替扩展置换扩展置换P盒置换盒置换子密钥子密钥Ki48bit48bit32bit32bit扩展置换扩展置换下图显示了扩展置换,有时它也叫做下图显示了扩展置换,有时它也
7、叫做E盒。对每个盒。对每个4位输入分组,第位输入分组,第1和第和第4位分别表示输出分组中的两位分别表示输出分组中的两位,而第位,而第2和第和第3位分别表示输出分组中的一位。位分别表示输出分组中的一位。扩展置换扩展置换下下表表是是从从32位位到到48位位的的扩扩展展置置换换,给给出出了了哪哪一一输输出出位位对对应应于于哪哪一一输输入入位位。例例如如,处处于于输输入入分分组组中中第第3位位的的位位置置的的位位移移到到了了输输出出分分组组中中第第4位位的的位位置置,而而输输入入分分组组中中第第21位位的的位位置置的的位移到了输出分组中第位移到了输出分组中第30和第和第32位的位置。位的位置。尽尽管管
8、输输出出分分组组大大于于输输入入分分组组,但但每每一一个个输输入入分分组组产产生生唯唯一一的的输出分组。输出分组。3212345456789891011121312131415161716171819202120212223242524252627282928293031321S-S-盒代替盒代替S1S2S3S4S5S6S7S848位输入位输入32位输出位输出6bit4bitSi:416矩阵矩阵S10123456789abcdef01441312151183106125907101574142131106121195382411481362111512973105031512824917511
9、314100613b0b1b2b3b4b5行号:行号:03列号:列号:015S盒的设计准则盒的设计准则没有一个没有一个S的输出位是接近输入位的线性函数的输出位是接近输入位的线性函数如果将输入位的最左及最右端的位固定,变化中间如果将输入位的最左及最右端的位固定,变化中间的的4位,每个可能的位,每个可能的4位数出只能得到一次位数出只能得到一次如果如果s盒的两个输入仅有盒的两个输入仅有1位的差异,则输出至少必位的差异,则输出至少必须有须有2位不同位不同如果如果s盒的两个输入仅有中间盒的两个输入仅有中间2位不同,则输出至少位不同,则输出至少必须有必须有2位不同位不同如果如果s盒的两个输入仅前盒的两个输
10、入仅前2位不同,后位不同,后2位已知则输出位已知则输出必不同必不同对于输入之间的任何非零的对于输入之间的任何非零的6位差分,位差分,32对中至多有对中至多有8对显示出的差分导致了相同的输出差分对显示出的差分导致了相同的输出差分P盒置换盒置换S盒盒代代替替运运算算后后的的32位位输输出出依依照照P盒盒进进行行置置换换。该该置置换换把把每每输输入入位位映映射射到到输输出出位位,任任意意一一位位不不能能被被映映射射两两次次,也也不不能能被被略略去去,这这个个置置换换叫叫做做直直接接置置换换。下下表表给给出出了了每每位位移移到到的的位位置置。例例如如,第第21位位移移到到了了第第4位位处处,同同时时第
11、第4位位移移到到了了第第31位位处处。最最后后,将将P盒盒置置换换的的结结果果与与最最初初的的64位位分分组组的的左左半部分异或,然后左、右半部分交换,接着开始另一轮。半部分异或,然后左、右半部分交换,接着开始另一轮。1672021291228171152326518311028241432273919133062211425子密钥生成子密钥生成PC-1密钥置换密钥置换PC-15749413325179158504234261810259514335271911360524436635547393123157625446383022146615345372921135282012464比特的密
12、钥比特的密钥K,经过经过PC-1后,生成后,生成56比特的串。其下比特的串。其下标如表所示:标如表所示:PC-2压缩置换压缩置换PC-21417112415328156211023191242681672720132415231374755304051453348444939563453464250362932每轮移位的位数每轮移位的位数迭代顺序迭代顺序12345678910111213141516左移位数左移位数1122222212222221DES解密解密加密和解密可使用相同的算法。加密和解密可使用相同的算法。DES使使得得用用相相同同的的函函数数来来加加密密或或解解密密每每个个分分组组成
13、成为为可可能能,二二者者的的唯唯一一不不同同之之处处是是密密钥钥的的次次序序相相反反。这这就就是是说说,如如果果各各轮轮的的加加密密密密钥钥分分别别是是K1,K2,K3,K16,那么解密密钥就是那么解密密钥就是K16,K15,K14,K1。差分密码分析差分密码分析1900年年EliBiham和和AdiShamir提出了差分密码分提出了差分密码分析。析。利用这种方法,利用这种方法,EliBiham和和AdiShamir对对DES算算法进行了选择明文攻击,比穷举攻击有效法进行了选择明文攻击,比穷举攻击有效对于对于DES的差分密码分析,如果选择明文攻击,需的差分密码分析,如果选择明文攻击,需要要24
14、7对于对于DES的差分密码分析,如果已知明文攻击,需的差分密码分析,如果已知明文攻击,需要要255线性密码分析线性密码分析线性密码分析是线性密码分析是MitsuruMatsui提出的提出的是一种已知明文攻击是一种已知明文攻击如果将明文的一些位、密文的一些位进行异或运算,如果将明文的一些位、密文的一些位进行异或运算,然后再对这两个结果异或,那么将得到一个位,这然后再对这两个结果异或,那么将得到一个位,这一位是将密钥的一些位进行异或运算的结果一位是将密钥的一些位进行异或运算的结果对于对于DES的线性密码分析,已知明文攻击数为的线性密码分析,已知明文攻击数为243X X1717Y Y33Y Y88Y
15、 Y1414Y Y25=25=K Ki,26i,261/2-5/161/2-5/16 DES的安全强度的安全强度密钥长度问题密钥长度问题56-bit密钥有密钥有256=72,057,584,037,927,9367.2亿亿亿亿之多之多技术进步使穷举搜索成为可能技术进步使穷举搜索成为可能1997年年1月月28日,日,RSA公司发起破译公司发起破译RC4、RC5、MD2、MD5,以及,以及DES的活动,破译的活动,破译DES奖励奖励10000美金。明文是:美金。明文是:Strongcryptographymakestheworldasaferplace.结果仅搜索了结果仅搜索了24.6%的密钥空间
16、便得到结果,耗时的密钥空间便得到结果,耗时96天。天。1998年在一台专用机上年在一台专用机上(EFF)只要几天时间即可只要几天时间即可1999年在超级计算机上只要年在超级计算机上只要22小时小时!S-box问题,其设计标准没有公开问题,其设计标准没有公开线性密码分析攻击问题,线性密码分析攻击问题,DES不能抵御线形分析不能抵御线形分析二重二重DES为了提高为了提高DES的安全性,并利用实现的安全性,并利用实现DES的现有软硬件,的现有软硬件,可将可将DES算法在多密钥下多重使用。算法在多密钥下多重使用。二重二重DES是多重使用是多重使用DES时最简单的形式,如图时最简单的形式,如图3.8所示
17、。所示。其中明文为其中明文为P,两个加密密钥为两个加密密钥为K1和和K2,密文为:密文为:解密时,以相反顺序使用两个密钥:解密时,以相反顺序使用两个密钥:二重二重DES对二重对二重DES的中途相遇攻击的中途相遇攻击对二重对二重DES的中途相遇攻击的中途相遇攻击如果已知一个明文密文对如果已知一个明文密文对(P,C),攻击的实施可如下攻击的实施可如下进行:进行:首先,用首先,用256个所有可能的个所有可能的K1对对P加密,将加密结果加密,将加密结果存入一表并对表按存入一表并对表按X排序,排序,然后用然后用256个所有可能的个所有可能的K2对对C解密,在上述表中查解密,在上述表中查找与找与C解密结果
18、相匹配的项,如果找到,则记下相应解密结果相匹配的项,如果找到,则记下相应的的K1和和K2。最后再用一新的明文密文对最后再用一新的明文密文对(P,C)检验上面找到检验上面找到的的K1和和K2,用用K1和和K2对对P两次加密,若结果等于两次加密,若结果等于C,就可确定就可确定K1和和K2是所要找的密钥。是所要找的密钥。对二重对二重DES的中途相遇攻击的中途相遇攻击对已知的明文对已知的明文P,二重二重DES能产生能产生264个可能的密文个可能的密文,而可能的密钥个数为而可能的密钥个数为2112,所以平均来说,对一个已,所以平均来说,对一个已知的明文,有知的明文,有2112/264=248个密钥可产生
19、已知的密文。个密钥可产生已知的密文。而再经过另外一对明文密文的检验,误报率将下降而再经过另外一对明文密文的检验,误报率将下降到到248-64=2-16。所以在实施中途相遇攻击时,如果已知两个明文密所以在实施中途相遇攻击时,如果已知两个明文密文对,则找到正确密钥的概率为文对,则找到正确密钥的概率为1-2-16。两个密钥的三重两个密钥的三重DES三个密钥的三重三个密钥的三重DES例题例题已知:在已知:在DES算法中第轮的输出为:算法中第轮的输出为:R1=1011,0011,0000,0010,0111,0011,1101,0100L1=0000,0000,1111,1111,1001,0010,1010,1000第轮子密钥为:第轮子密钥为:K2=111000,001011,111011,110110,100110,111011,111000,111100求求R2答案:答案:1001,0111,0111,1101,1011,0101,0001,0111下此课内容下此课内容AES下次课再见!下次课再见!
限制150内