《《计算机网络安全课件》第七章 数据加密课件.pptx》由会员分享,可在线阅读,更多相关《《计算机网络安全课件》第七章 数据加密课件.pptx(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章第七章 数据加密数据加密数据加密概述;数据加密概述;传统密码技术;传统密码技术;数据加密;数据加密;公用密钥公用密钥/私有密钥密码学;私有密钥密码学;安全传输方法;安全传输方法;验证;验证;加密软件。加密软件。本资料由-提供在线代理提供部分资料7.1 数据加密概述数据加密概述7.1.17.1.1 密码学的发展密码学的发展1、加密的历史(、加密的历史(P171)2、密码学的发展、密码学的发展第一阶段:传统密码学阶段(基本上靠人工对消息加密、传输和防第一阶段:传统密码学阶段(基本上靠人工对消息加密、传输和防破译)破译)第二阶段:计算机密码学阶段第二阶段:计算机密码学阶段 1)传统方法的计算机
2、密码学阶段(计算机密码工作者继续沿用传统密码学传统方法的计算机密码学阶段(计算机密码工作者继续沿用传统密码学的基本观念,解密是加密的简单逆过程)的基本观念,解密是加密的简单逆过程)2)公用密钥密码()公用密钥密码(RSA)和计算机密码体制)和计算机密码体制数据加密标准(数据加密标准(DES)3、什么是密码学、什么是密码学密码学包括密码编码学和密码分析学。密码体制的设计是密码编码密码学包括密码编码学和密码分析学。密码体制的设计是密码编码学的主要内容,密码体制的破译是密码分析学的主要内容。密码学的主要内容,密码体制的破译是密码分析学的主要内容。密码学不仅是编码与破译的学问,而且包括安全管理、安全协
3、议设计、学不仅是编码与破译的学问,而且包括安全管理、安全协议设计、秘密分存、散列函数等内容。秘密分存、散列函数等内容。本资料由-校园大学生创业网-提供在线代理提供部分资料7.1.2 数据加密数据加密数据加密的基本过程包括对称为明文的可读信息进行处理,数据加密的基本过程包括对称为明文的可读信息进行处理,形成称为密文或密码的代码形式。该过程的逆过程称为形成称为密文或密码的代码形式。该过程的逆过程称为解密,即将该编码信息转化为其原来的形式的过程。解密,即将该编码信息转化为其原来的形式的过程。1、为什么需要进行加密、为什么需要进行加密加密在网络上的作用就是防止有价值信息在网络上被拦截加密在网络上的作用
4、就是防止有价值信息在网络上被拦截和窃取。密码的泄露意味着安全体系的全面崩溃。加密和窃取。密码的泄露意味着安全体系的全面崩溃。加密后的口令即使被黑客获得也是不可读的,除非加密密钥后的口令即使被黑客获得也是不可读的,除非加密密钥或加密方式十分脆弱,被黑客破解,不管怎样,加密的或加密方式十分脆弱,被黑客破解,不管怎样,加密的使用使黑客不会轻易获得口令。使用使黑客不会轻易获得口令。2、加密密钥、加密密钥加密算法通常是公开的,如加密算法通常是公开的,如DES和和IDEA等。一般把受保等。一般把受保护的原始信息称为明文,编码后的信息称为密文。尽管护的原始信息称为明文,编码后的信息称为密文。尽管大家都知道使
5、用加密方法,但对密文进行解码必须要有大家都知道使用加密方法,但对密文进行解码必须要有正确的密钥,而密钥是保密的。正确的密钥,而密钥是保密的。本资料由-校园大学生创业网-提供在线代理提供部分资料1)保密密钥和公用)保密密钥和公用/私有密钥:私有密钥:P173有两类基本的加密技术:保密密钥和公用有两类基本的加密技术:保密密钥和公用/私有密钥。私有密钥。在保密密钥中,加密者和解密者使用相同的密钥,这类算法有在保密密钥中,加密者和解密者使用相同的密钥,这类算法有DES和和IDEA。这种加密算法必须让接收人知道自己所使用的密钥,。这种加密算法必须让接收人知道自己所使用的密钥,这个密钥需要双方共同保密;这
6、个密钥需要双方共同保密;公用公用/私有密钥使用相互关联的一对密钥,一个是公用密钥,任何私有密钥使用相互关联的一对密钥,一个是公用密钥,任何人都可以知道,另一个是私有密钥,只有拥有该对密钥的人知道。人都可以知道,另一个是私有密钥,只有拥有该对密钥的人知道。公用公用/私有密钥技术总结为以下几点:私有密钥技术总结为以下几点:公用密钥和私有密钥有两个相互关联的密钥;公用密钥和私有密钥有两个相互关联的密钥;公用密钥加密的文件只有私有密钥能解开;公用密钥加密的文件只有私有密钥能解开;私有密钥加密的文件只有公用密钥能解开。私有密钥加密的文件只有公用密钥能解开。2)摘要函数:)摘要函数:摘要是一种防止信息被改
7、动的方法,其中用到的函数叫摘要函数。摘要是一种防止信息被改动的方法,其中用到的函数叫摘要函数。这些函数的输入可以是任意大小的消息,而输出是一个固定长度这些函数的输入可以是任意大小的消息,而输出是一个固定长度的摘要。如果改变输入消息中的任何东西,甚至只有一位,输出的摘要。如果改变输入消息中的任何东西,甚至只有一位,输出的摘要将会发生不可预测的改变。的摘要将会发生不可预测的改变。总之,摘要算法从给定的文本块中产生一个数字签名,数字签名可总之,摘要算法从给定的文本块中产生一个数字签名,数字签名可以用于防止有人从一个签名上获取广西信息或改变文本信息内容。以用于防止有人从一个签名上获取广西信息或改变文本
8、信息内容。3、密钥的管理和分发、密钥的管理和分发1)使用同样密钥的时间范围()使用同样密钥的时间范围(P174):):一般强调仅将一个对话密钥用于一条信息或一次对话中,或者建立一般强调仅将一个对话密钥用于一条信息或一次对话中,或者建立一种按时更换密钥的机制以减小密钥暴露的可能性。一种按时更换密钥的机制以减小密钥暴露的可能性。2)保密密钥的分发:)保密密钥的分发:假设在某机构中有假设在某机构中有100个人,如果他们任意两人之间可以进行秘密个人,如果他们任意两人之间可以进行秘密对话,那么总共需要对话,那么总共需要4950个密钥,而且每个人要记住个密钥,而且每个人要记住99个密钥。个密钥。如果机构的
9、人数更多,这种办法就显然过于愚蠢了。如果机构的人数更多,这种办法就显然过于愚蠢了。Kerberos建建立了一个安全的、可信任的安息钥分发中心(立了一个安全的、可信任的安息钥分发中心(KDC),每个用户),每个用户只要知道一个和只要知道一个和KDC进行通信的密钥就可以了,而不需要知道成进行通信的密钥就可以了,而不需要知道成百上千个不同的密钥。百上千个不同的密钥。7.1.3 基本概念基本概念1 1、消息和加密、消息和加密消息被称为明文。用某种方法伪装消息以隐藏它的内容的过程称为加密。被加密消息被称为明文。用某种方法伪装消息以隐藏它的内容的过程称为加密。被加密的消息称为密文,而把密文转变为明文的过程
10、称为解密。使消息保密的技术的消息称为密文,而把密文转变为明文的过程称为解密。使消息保密的技术和科学叫做密码编码学。和科学叫做密码编码学。明文用明文用M M或或P P表示,它可能是位序列、文本文件、位图、数字化的语音序列或数字表示,它可能是位序列、文本文件、位图、数字化的语音序列或数字化的视频图像等。对于计算机,化的视频图像等。对于计算机,M M指简单的二进制数据。指简单的二进制数据。密文用密文用C C表示,它也是二进制数据,有时和表示,它也是二进制数据,有时和M M一样大,有时稍大。加密函数一样大,有时稍大。加密函数E E作用作用于于M M得到密文得到密文C C,可用数学公式表示:,可用数学公
11、式表示:E E(M M)=C=C 相反地,解密函数相反地,解密函数D D作用于作用于C C产生产生M M:D D(C C)=M=M先加密后再解密,原始的明文将恢复,故下面的等式成立:先加密后再解密,原始的明文将恢复,故下面的等式成立:D D(E E(M M)=M=M2 2、鉴别、完整性和抗抵赖、鉴别、完整性和抗抵赖除了提供机密性外,密码学通常还有其他的作用:除了提供机密性外,密码学通常还有其他的作用:1)鉴别:消息的接收者能确认消息的来源,入侵者不可能伪装成他人。)鉴别:消息的接收者能确认消息的来源,入侵者不可能伪装成他人。2)完整性:消息的接收者能验证在传送过程中消息没有被修改,入侵者不可能
12、)完整性:消息的接收者能验证在传送过程中消息没有被修改,入侵者不可能用假消息代替合法消息。用假消息代替合法消息。3)抗抵赖:发送者事后不可能虚假地否认他发送的消息。)抗抵赖:发送者事后不可能虚假地否认他发送的消息。3 3、算法和密钥、算法和密钥密码算法也叫密码,是用于加密和解密的数学函数。通常情况下,密码算法也叫密码,是用于加密和解密的数学函数。通常情况下,有两个相关的函数,一个用作加密,另一个用作解密。有两个相关的函数,一个用作加密,另一个用作解密。如果算法的保密性是基于保证算法的秘密,这种算法称为受限制的如果算法的保密性是基于保证算法的秘密,这种算法称为受限制的算法。算法。P175P175
13、受限制的密码算法不可能进行质量控制或标准化。受限制的密码算法不可能进行质量控制或标准化。现代密码学用密钥解决了这个问题,密钥用现代密码学用密钥解决了这个问题,密钥用K K表示。表示。K K可以是很多数可以是很多数值里的任意值。密钥值里的任意值。密钥K K的可能值的范围叫做密钥空间。加密和解的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥,这样,加密运算都使用这个密钥,这样,加/解密函数变成:解密函数变成:E Ek k(M M)=C=C;D Dk k(C C)=M =M 这些函数具有下面特性:这些函数具有下面特性:D Dk k(E Ek k(M M)=M=M有些算法使用不同的加密密钥和解
14、密密钥(即有些算法使用不同的加密密钥和解密密钥(即K1K1和和K2K2)则:则:E Ek1k1(M M)=C=C;D Dk2k2(C C)=M=M;D Dk2k2(E Ek1k1(M M)=M=M所有这些算法的安全性都基于密钥的安全性,而不是基于算法的细所有这些算法的安全性都基于密钥的安全性,而不是基于算法的细节的安全性。这就意味着算法可以公开,也可以被分析,可以大节的安全性。这就意味着算法可以公开,也可以被分析,可以大量生产使用算法的产品,即使偷窃者知道你的算法,但他不知道量生产使用算法的产品,即使偷窃者知道你的算法,但他不知道具体密钥,他就不可能阅读你的消息。具体密钥,他就不可能阅读你的消
15、息。4 4、对称算法、对称算法基于密钥算法通常有两类:对称算法和公用密钥算法。基于密钥算法通常有两类:对称算法和公用密钥算法。对称算法又叫传统密码算法,就是加密密钥能够从解密密钥中推导对称算法又叫传统密码算法,就是加密密钥能够从解密密钥中推导出来,反过来也成立。它要求发送者和接收者在安全通信之前,出来,反过来也成立。它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加解密。只要通信需要保密,密钥就必着任何人都能对消息进行加解密。只要通信需要保密,密钥就必须保密。对称算法的加密
16、和解密表示为:须保密。对称算法的加密和解密表示为:E Ek k(M M)=C=C;D Dk k(C C)=M=M5 5、公用密钥算法、公用密钥算法公用密钥算法又叫非对称算法,它是这样设计的:用作加密的密钥公用密钥算法又叫非对称算法,它是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来。加密密钥能够公开,即陌生者能用加密密钥加密信息,但只来。加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。在这些系统中,加密密钥叫有用相应的解密密钥才能解密信息。在这些系统中,加密密钥叫做
17、公用密钥,解密密钥叫私人密钥。私人密钥有时也叫秘密密钥。做公用密钥,解密密钥叫私人密钥。私人密钥有时也叫秘密密钥。公用密钥公用密钥K K加密表示为:加密表示为:E Ek1k1(M M)=C=C 相应的私人密钥解密可表示为:相应的私人密钥解密可表示为:D Dk2k2(C C)=M=M有时消息用私人密钥而用公用密钥解密,这用于数字签名。有时消息用私人密钥而用公用密钥解密,这用于数字签名。6、密码分析、密码分析密码编码学的主要目的是保持明文密码编码学的主要目的是保持明文(或密钥,或明文和密钥)的秘(或密钥,或明文和密钥)的秘密以防止偷听者知晓。密码分析学是在不知道密钥的情况下,恢密以防止偷听者知晓。
18、密码分析学是在不知道密钥的情况下,恢复出明文的科学。复出明文的科学。常用的密码分析有如下几种:常用的密码分析有如下几种:P178/(1)(7)7、算法的安全性、算法的安全性如果破译算法的代价大于加密数据的价值,破译算法所需的时间比如果破译算法的代价大于加密数据的价值,破译算法所需的时间比加密数据保密的时间更长,用单密钥加密的数据量比破译算法需加密数据保密的时间更长,用单密钥加密的数据量比破译算法需要的数据量少得多,那么这种算法可能是安全的。要的数据量少得多,那么这种算法可能是安全的。破译算法可分为:全部破译、全盘推导、实例(或局部)推导、信破译算法可分为:全部破译、全盘推导、实例(或局部)推导
19、、信息推导。息推导。P178如果不论密码分析者有多少密文,都没有足够的信息恢复出明文,如果不论密码分析者有多少密文,都没有足够的信息恢复出明文,那么这个算法就是无条件保密的,事实上,只有一次密码本,才那么这个算法就是无条件保密的,事实上,只有一次密码本,才是不可破译的。是不可破译的。7.2 传统密码技术传统密码技术7.2.1 数据表示方法数据表示方法数据的表示有多种形式,使用最多的是文字,还有图形、声音、图数据的表示有多种形式,使用最多的是文字,还有图形、声音、图像等。传统加密方法的主要应用对象是对文字信息进行加密解密。像等。传统加密方法的主要应用对象是对文字信息进行加密解密。文字由字母表中的
20、一个个字母组成,字母表可以按照排列顺序进行文字由字母表中的一个个字母组成,字母表可以按照排列顺序进行一定的编码,如:一定的编码,如:P1807.2.2 替代密码替代密码替代密码是使用替代法进行加密所产生的密码。即明文中每一个字替代密码是使用替代法进行加密所产生的密码。即明文中每一个字符被替换成密文中的另外一个字符。接收者对密文进行逆替换就符被替换成密文中的另外一个字符。接收者对密文进行逆替换就恢复出明文来。恢复出明文来。在经典密码学中,有四种类型的代替密码:简单替代密码、多名码在经典密码学中,有四种类型的代替密码:简单替代密码、多名码替代密码、多字母替代密码和多表替代密码。替代密码、多字母替代
21、密码和多表替代密码。下面介绍两种具体的替代加密法:下面介绍两种具体的替代加密法:1、单表替代密码、单表替代密码单表替代密码的一种典型方法是凯撒密码,又叫循环移位密码。它单表替代密码的一种典型方法是凯撒密码,又叫循环移位密码。它的加密方法是把明文中所有字母都用它右边的第的加密方法是把明文中所有字母都用它右边的第k个字母替代,个字母替代,并并Z后边又是后边又是A。例:令例:令2626个字母分别对应于个字母分别对应于0 02525,a=1a=1,b=2y=25b=2y=25,z=0z=0。凯撒加密变换实际上是凯撒加密变换实际上是c(m+k)mod 26c(m+k)mod 26其其中中m m是是明明文
22、文对对应应的的数数据据,c c是是与与明明文文对对应应的的密密文文数数据据,k k是是加加密密用用的参数,叫密钥。比如明文:的参数,叫密钥。比如明文:data security data security 对应数据序列:对应数据序列:4 4,1 1,2020,1 1,1919,5 5,3 3,2121,1818,9 9,2020,2525k=5k=5时,得密文序列时,得密文序列9 9,6 6,2525,6 6,2424,1010,8 8,0 0,2323,1414,2525,4 4密文:密文:ifyxjhzwnydifyxjhzwnyd这种映射关系表示为如下函数:这种映射关系表示为如下函数:F
23、(m)=(m+k)mod n优点:密钥简单易记。缺点:安全性很差。优点:密钥简单易记。缺点:安全性很差。除了凯撒密码,在其他的单表替代法中,有的字母表被打乱。除了凯撒密码,在其他的单表替代法中,有的字母表被打乱。2、多表替代密码(、多表替代密码(P181)周期替代密码是一种常用的多表替代密码,又称为维吉尼亚密码。周期替代密码是一种常用的多表替代密码,又称为维吉尼亚密码。这种替代法是循环的使用有限个字母来实现替代的一种方法。这种替代法是循环的使用有限个字母来实现替代的一种方法。即即一个明文字母可表示为多个密文字母。例如:明文为一个明文字母可表示为多个密文字母。例如:明文为SystemSystem
24、,密,密钥为钥为dogdog,加密过程如下:,加密过程如下:明文:明文:S y s t e mS y s t e m密钥:密钥:d o g d o g(dd o g d o g(d对应的对应的k k1 1=3=3,o o对应对应k k2 2=14=14,g g对应对应k k3 3=6=6)密文:密文:V m g w r sV m g w r s在在这这个个例例子子中中,每每三三个个字字母母中中的的第第一一、第第二二、第第三三个个字字母母分分别别移移动动3 3个,个,1414个和个和6 6个位置。个位置。优点:能抵抗简单的字母频率分析攻击。优点:能抵抗简单的字母频率分析攻击。设设密密钥钥k=kk
25、=k1 1k k2 2kkn n,明明文文M=mM=m1 1m m2 2mmn n,加加密密变变换换E Ek k(M)=c(M)=c1 1c c2 2ccn n。其其中中c ci i(m(mi i+k+ki i)mod 26)mod 26,i=1,2ni=1,2n。多表密码加密算法结果使得对单表置换用的简单频率分析方法失效。多表密码加密算法结果使得对单表置换用的简单频率分析方法失效。维吉尼亚表见维吉尼亚表见P182。7.2.3 换位密码换位密码换位密码是采用移位法进行加密的。它把明文中的字母重新排列,换位密码是采用移位法进行加密的。它把明文中的字母重新排列,本身不变,但位置变了。如:把明文中的
26、字母的顺序倒过来写,本身不变,但位置变了。如:把明文中的字母的顺序倒过来写,然后以固定长度的字母组发送或记录。然后以固定长度的字母组发送或记录。例:明文:例:明文:computer systems 密文:密文:sm etsy sretupmoc1、列换位法(、列换位法(P183)例:明文:例:明文:WHAT YOU CAN LEARN FROM THIS BOOK,以固,以固定的宽度水平写出为:定的宽度水平写出为:W H A T Y O U C A N F R O M T H I S B O O K X X X(最后不全的组用字符(最后不全的组用字符X填满)填满)密文以垂直方向读出:密文以垂直
27、方向读出:WOFHOHURIKACOSXTAMBXYNTOX。2 2、矩阵换位法、矩阵换位法矩阵换位法是把明文中的字母按给定的顺序安排在一个矩阵中,然矩阵换位法是把明文中的字母按给定的顺序安排在一个矩阵中,然后用加一种顺序选出矩阵的字母来产生密文。后用加一种顺序选出矩阵的字母来产生密文。例:将明文例:将明文ENGINEERINGENGINEERING按行排在按行排在3*43*4矩阵中,如下所示:矩阵中,如下所示:1 2 3 4 1 2 3 4 E N G I E N G I N E E R N E E R I N G 1234 I N G 1234给定一个置换给定一个置换 f=2413 f=2
28、413 据给定的置换,按第据给定的置换,按第2 2列、第列、第4 4列、列、第第1 1列、第列、第3 3列的次序排列,得:列的次序排列,得:1 2 3 4 1 2 3 4 N I E G N I E G E R N E E R N E N I G N I G 得到密文:得到密文:NIEGERNENIGNIEGERNENIG。在这个加密方案中,密。在这个加密方案中,密钥是矩阵的行数钥是矩阵的行数m m和列数和列数n n,以及给定的置换矩阵,以及给定的置换矩阵f f,即:,即:k=(m*n,fk=(m*n,f)7.2.5 7.2.5 一次密码本一次密码本一一次次密密码码本本,由由AT&TAT&T公
29、公司司的的Gilbert Gilbert VernamVernam在在19171917年年提提出出。发发方方和和收收方方各各保保存存一一份份一一次次密密码码本本,它它是是一一个个大大的的不不重重复复的的真真随随机机密密钥钥字字母母集集。发发方方用用密密码码本本中中的的某某一一页页密密钥钥加加密密明明文文。加加密密方方法法:明明文字符和密码本密钥字符的模文字符和密码本密钥字符的模2626加法。加法。每每个个密密钥钥仅仅对对一一个个消消息息使使用用一一次次。发发方方对对所所发发的的消消息息加加密密,然然后后销销毁毁密密码码本本中中用用过过的的一一页页。收收方方有有一一个个同同样样的的密密码码本本,
30、并并依依次次使使用用密密码码本本上上的的每每个个密密钥钥去去解解密密密密文文的的每每个个字字符符,然然后后销销毁毁密密码码本本中中用过的一页。用过的一页。例;消息为例;消息为ONE TIME PAD,取自密码本的密钥序列是取自密码本的密钥序列是TBF RGFA RFM,则则O+T mod 26=I,N+B mod 26=P,E+F mod 26=K,那么密文为:那么密文为:IPK LPSF HGQ。如果偷窃者不能得到加密消息的一次密码本,这个方案是完全保密如果偷窃者不能得到加密消息的一次密码本,这个方案是完全保密的。一次密码本主要用于高度机密的低带宽信道。的。一次密码本主要用于高度机密的低带宽
31、信道。若密钥序列为:若密钥序列为:TIYANBEFGI,则密文是什么?,则密文是什么?一、一、DES算法概述算法概述在在19771977年年,人人们们估估计计要要耗耗资资两两千千万万美美元元才才能能建建成成一一个个专专门门计计算算机机用用于于DESDES的的解解密密,而而且且需需要要1212个个小小时时的的破解才能得到结果。破解才能得到结果。19971997年年开开始始,RSA(RSA(由由麻麻省省理理工工学学院院开开发发的的公公用用密密钥钥系统)公司发起了一个称作系统)公司发起了一个称作“向向DESDES挑战挑战”的竞技赛。的竞技赛。19971997年年1 1月月,用用了了9696天天时时间
32、间,成成功功地地破破解解了了用用DESDES加加密密的的一一段段信信息息;一一年年之之后后,在在第第二二届届赛赛事事上上,这这一一记记录录4141天天 ;19981998年年7 7月月,“第第2-22-2届届DESDES挑挑战战赛赛(DES DES Challenge Challenge II-2II-2)”把把破破解解DESDES的的时时间间缩缩短短到到了了只只需需5656个个小小时时;“第第三三届届DESDES挑挑战战赛赛(DES DES Challenge Challenge IIIIII)”把把破破解解DESDES的的时时间间缩缩短短到到了了只只需需22.522.5小时小时 。7.3
33、数据加密标准(DES)一、一、DES算法概述算法概述发明人:发明人:IBMIBM公司公司W.Tuchman W.Tuchman 和和 C.Meyer 1971-72 C.Meyer 1971-72年研制。年研制。产产生生:美美国国商商业业部部的的国国家家标标准准局局NBS1973NBS1973年年5 5月月到到19741974年年8 8月月两两次次发发布布通通告告,公公开开征征求求用用于于电电子子计计算算机机的的加加密密算算法法。经经评评选从一大批算法中采纳了选从一大批算法中采纳了IBMIBM的的LUCIFERLUCIFER方案。方案。标标准准化化:于于19761976年年1111月月被被美美
34、国国政政府府采采用用,DESDES随随后后被被美美国国国国家家 标标 准准 局局 和和 美美 国国 国国 家家 标标 准准 协协 会会(American(American National National Standard Standard InstituteInstitute,ANSI)ANSI)承承认认。19771977年年1 1月月以以数数据据加加密密标标准准DESDES(Data Data Encryption Encryption StandardStandard)的的名名称称正正式式向向社社会会公布。公布。于于19771977年年7 7月月1515日生效。日生效。DESDES的的
35、发发展展:如如衍衍生生出出可可抗抗差差分分分分析析攻攻击击的的变变形形DESDES以以及及密密钥钥长度为长度为128128比特的三重比特的三重DESDES等。等。数据加密标准一、一、DES算法概述算法概述数据加密标准个 人 攻击小 组 攻击院、校网 络 攻击大公司军 事 情报机构40(bits)数周数日数小时数毫秒数微秒56数百年数十年数年数小时数秒钟64数千年数百年数十年数日数分钟80不可能不可能不可能数百年数百年128不可能不可能不可能不可能数千年一、一、DES算法概述算法概述数据加密标准上表中攻击者配有如下计算机资源的攻击能力上表中攻击者配有如下计算机资源的攻击能力 攻击者类型所配有的计
36、算机资源每秒处理的密钥数个人攻击1台高性能桌式计算机及其软件217-224小组攻击16台高性能桌式计算机及其软件221-224院、校网络攻击256台高性能桌式计算机及其软件225-228大公司配有价值1百万美元的硬件243军事情报机构配有价值1百万美元的硬件及先进的攻击技术255二、数据加密标准二、数据加密标准(DES)P187数据加密标准64位码64位码初始变换逆初始变换乘积变换16次迭代明文密文输入输出IPIP-1二、数据加密标准二、数据加密标准(DES)数据加密标准利利用用传传统统的的换换位位和和置置换换加加密密。假假定定信信息息空空间间由由0,10,1组组成成的的字字符符串串,信信息息
37、被被分分成成6464比比特特的的块块,密密钥钥是是5656比比特特(密密钥钥通通常常表表示示为为6464位位的的数数,但但每每个个第第8 8位位都都用用作作奇奇偶偶校校验验,可可以以忽忽略略)。经经过过DESDES加密的密文也是加密的密文也是6464比特的块。比特的块。明文:明文:m=mm=m1 1m m2 2mm6464 m mi i=0,1 i=1,2,64=0,1 i=1,2,64密钥:密钥:k=kk=k1 1k k2 2kk64 64 k ki i=0,1 i=1,2,64 =0,1 i=1,2,64 其中其中k k8 8,k k1616,k k6464是奇偶校验位,起作用的仅为是奇偶
38、校验位,起作用的仅为5656位。位。加密算法加密算法:E Ek k(m)=IP(m)=IP-1-1TT1616TT1515TT1 1IP(m)IP(m)其其中中IPIP为为初初始始置置换换,IPIP-1-1是是IPIP的的逆逆,TiTi,i i=1,2,161,2,16是是一系列的变换。一系列的变换。解密算法解密算法:E Ek k-1-1(c)=IP(c)=IP-1-1TT1 1TT2 2TT1616IP(c)IP(c)二、数据加密标准二、数据加密标准(DES)数据加密标准输入(64位)58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 3
39、8 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位)初始变换初始变换IP二、数据加密标准二、数据加密标准(DES)数据加密标准IP IP 中中各各列列元元素素位位置置号号数数相相差差为为8 8,相相当当于于将将原原明明文文各各字字节节按按列列写写出出,各各列列比比特特经经过过偶偶采采样样和和奇奇采采样样置置换换后后再再对对各各行行进进行行逆逆序序,将将阵
40、阵中中元元素素按行读得的结果。按行读得的结果。1 9 17 25 33 41 49 571 9 17 25 33 41 49 572 10 18 26 34 42 50 582 10 18 26 34 42 50 583 11 19 27 35 43 51 593 11 19 27 35 43 51 594 12 20 28 36 44 52 604 12 20 28 36 44 52 605 13 21 29 37 45 53 615 13 21 29 37 45 53 616 14 22 30 38 46 54 626 14 22 30 38 46 54 627 15 23 31 39 4
41、7 55 637 15 23 31 39 47 55 638 16 24 32 40 48 56 648 16 24 32 40 48 56 64输入输入6464个二进制位明码文数据区组个二进制位明码文数据区组m=mm=m1 1m m2 2mm6464按初始换位表按初始换位表IPIP进行换位,得到区组进行换位,得到区组B B(0 0):B B(0 0)=b=b1 1(0)(0)b b2 2(0)(0)bb6464(0)(0)=m=m5858m m5050mm7 7记成记成L0L0、R0R0左右两部分左右两部分二、数据加密标准二、数据加密标准(DES)数据加密标准置换码组 输入(64位)40 8
42、 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 52 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逆初始变换逆初始变换二、数据加密标准二、数据加密标准(DES)数据加密标准逆初始变换。用逆初始变换。用IP-1 表示,它和表示,它和IP互逆。例互逆。例如,第如,第58位经过初始置换后,处于第位经过初始置换后,处于第1 1位,
43、而位,而通过逆置换,又将第通过逆置换,又将第1 1位换回到第位换回到第5858位位。可见输入组可见输入组m和和IP(IP-1(m)是一样的。是一样的。一、一、DES算法概述算法概述现代与古典密码学采用的基本思想相同:替换与变位。现代与古典密码学采用的基本思想相同:替换与变位。古典:算法简单,长密钥。古典:算法简单,长密钥。现代:算法复杂。现代:算法复杂。P P盒和盒和S S盒盒数据加密标准 P盒盒 用用 P盒构成的盒构成的 S盒盒P P盒盒 实质上是用硬件实现变位实质上是用硬件实现变位 ,改变输入序列,改变输入序列S S盒盒实质上是用硬件实现若干比特的替换实质上是用硬件实现若干比特的替换译译码
44、码器器编编码码器器二、数据加密标准二、数据加密标准(DES)P188/算法概要算法概要数据加密标准64位码64位码初始变换逆初始变换L0明文明文密文输入输入输出输出IPIP-1R0n中间各级算法说明假设假设Bi是第是第I次迭代的结果,次迭代的结果,Li和和Ri是是Bi的左半部分和右半部分,的左半部分和右半部分,Ki是第是第I轮的轮的48位密钥,且位密钥,且f是实现代替、置换及密钥异或等运算的函数。那么每一轮就是:是实现代替、置换及密钥异或等运算的函数。那么每一轮就是:LI=RI-1;RI=LI-1 f(RI-1,KI)二、数据加密标准二、数据加密标准(DES)数据加密标准Li-1LiRi-1R
45、i Li-1 f(Ri-1,Ki)二、数据加密标准二、数据加密标准(DES)数据加密标准加密函数加密函数(A,Ki)A(32位)加密时A=Ri-1扩展置换E48位结果48位Ki+选择函数组(S1S8)32位结果(A,Ki)置换运算P32位二、数据加密标准二、数据加密标准(DES)数据加密标准左32位右32位Li-1Ri-1扩展置换E48位(明文)64位密钥作第i次迭代的计算机子密钥Ki密钥程序表48位(密钥)8组6位码S1S2S8模2加选择函数Si输入:6位输出:4位+乘积变换中的一次迭代乘积变换中的一次迭代二、数据加密标准二、数据加密标准(DES)数据加密标准32位置换运算P32位加密函数输
46、出32位LiRi左32位右32位Ri-1Li-1模2加+.+二、数据加密标准二、数据加密标准(DES)数据加密标准扩展置换扩展置换Er1(i)r2(i)r3(i)r4(i)r5(i)r6(i)r7(i)r8(i)r29(i)r30(i)r31(i)r32(i)r32(i)r1(i)r2(i)r3(i)r4(i)r5(i)r4(i)r5(i)r6(i)r7(i)r8(i)r9(i)r28(i)r29(i)r30(i)r31(i)r32(i)r1(i)把R(i)视为由8个4位二进制的块组成把它们再扩充为8个6位二进制的块(左右各增加一列)用E(R(i))表示这个变换,称为选择函数E。二、数据加密标
47、准二、数据加密标准(DES)数据加密标准A32位32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1选择运算E选择运算E的结果48位扩展置换扩展置换E二、数据加密标准二、数据加密标准(DES)数据加密标准使用密钥使用密钥在第在第i+1i+1次迭代中,用次迭代中,用4848位二进制的密钥(由位二进制的密钥(由5656位密位密钥生成,下边会介绍)钥生成,下边会介绍)K K(i+1i+1)=k=k1 1(i
48、+1)(i+1)k k2 2(i+1)(i+1)kk4848(i+1)(i+1)与与E(RE(R(i i))按位相加(逻辑异或),输出仍是按位相加(逻辑异或),输出仍是4848位,位,共共8 8行,每行行,每行6 6位。位。Z Z 1 1 :r r3232(i)(i)+k+k1 1(i+1)(i+1)r r1 1(i)(i)+k+k2 2(i+1)(i+1)r r5 5(i)(i)+k+k6 6(i+1)(i+1)Z Z 2 2 :r r4 4(i)(i)+k+k7 7(i+1)(i+1)r r5 5(i)(i)+k+k8 8(i+1)(i+1)r r9 9(i)(i)+k+k1212(i+1
49、)(i+1)Z Z 8 8 :r r2828(i)(i)+k+k4343(i+1)(i+1)r r2929(i)(i)+k+k4444(i+1)(i+1)r r1 1(i)(i)+k+k4848(i+1)(i+1)作为作为8 8个个S Si i选择函数的输入选择函数的输入二、数据加密标准二、数据加密标准(DES)数据加密标准S1,S2.S8选择函数其功能是把6bit数据变为4bit数据。Si(i=1,2.8)的功能表:S1:14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,4,1,14,8,1
50、3,6,2,11,15,12,9,7,3,10,5,0,15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,S2:15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,数据加密标准S6:12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,10,15,4,2,7,12,9,5,6,1,13,14,0,1