计算机网络安全基础第7章课件

上传人:晚**** 文档编号:243142566 上传时间:2024-09-16 格式:PPT 页数:100 大小:3.16MB
返回 下载 相关 举报
计算机网络安全基础第7章课件_第1页
第1页 / 共100页
计算机网络安全基础第7章课件_第2页
第2页 / 共100页
计算机网络安全基础第7章课件_第3页
第3页 / 共100页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,计算机网络安全基础,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,计算机网络安全基础,第7章 数据加密,数据加密是计算机安全的重要部分。口令加密是防止文件中的密码被人偷看。文件加密主要应用于因特网上的文件传输,防止文件被看到或劫持。,电子邮件给人们提供了一种快捷便宜的通信方式,但电子邮件是不安全的,很容易被别人偷看或伪造。为了保证电子邮件的安全,人们采用了数字签名这样的加密技术,并提供了基于加密的身份认证技术,这样就可以保证发信人就是信上声称的人。数据加密也使因特网上的电子商务成为可能。,*,计算机网络安全基础,第7章 数据加密,本章主要内容:,1数据加密概述,2传统密码技术,3数据加密,4公用密钥私有密钥密码学,5 安全传输方法,6 验证,7 加密软件,PGP,*,计算机网络安全基础,7.1 数据加密概述,7.1.1密码学的发展,1加密的历史,作为保障数据安全的一种方式,数据加密起源于公元前2000年。埃及人是最先使用特别的象形文字作为信息编码的人。随着时间推移,巴比伦、美索不达米亚和希腊都开始使用一些方法来保护他们的书面信息。,2密码学的发展,密码学的发展可以分为两个阶段。第一个阶段是计算机出现之前的四千年(早在四千年前,古埃及就开始使用密码传递消息),这是传统密码学阶段,基本上靠人工对消息加密、传输和防破译。第二阶段是计算机密码学阶段,包括:,*,计算机网络安全基础,7.1 数据加密概述,传统方法的计算机密码学阶段。解密是加密的简单逆过程,两者所用的密钥是可以简单地互相推导的,因此无论加密密钥还是解密密钥都必须严格保密。这种方案用于集中式系统是行之有效的。,包括两个方向:一个方向是公用密钥密码(,RSA),,另一个方向是传统方法的计算机密码体制数据加密标准(,DES)。,3什么是密码学?,密码学包括密码编码学和密码分析学。密码体制的设计是密码编码学的主要内容,密码体制的破译是密码分析学的主要内容。密码编码技术和密码分析技术是相互依存、相互支持、密不可分的两个方面。,*,计算机网络安全基础,7.1 数据加密概述,7.1.2 数据加密,数据加密的基本过程包括对称为明文的可读信息进行处理,形成称为密文或密码的代码形式。该过程的逆过程称为解密,即将该编码信息转化为其原来的形式的过程。,1为什么需要进行加密,因特网是危险的,而且这种危险是,TCPIP,协议所固有的,一些基于,TCPIP,的服务也是极不安全的,另一方面,因特网把全世界连在了一起,走向因特网就意味着走向了世界。为了使因特网变得安全和充分利用其商业价值,人们选择了数据加密和基于加密技术的身份认证。,*,计算机网络安全基础,7.1 数据加密概述,2加密密钥,加密算法通常是公开的,现在只有少数几种加密算法,如,DES,和,IDEA,等。一般把受保护的原始信息称为明文,编码后的信息称为密文。尽管大家都知道使用加密方法,但对密文进行解码必须要有正确的密钥,而密钥是保密的。,(1)保密密钥和公用私有密钥,在保密密钥中,加密者和解密者使用相同的密钥,也被称为对称密钥加密,。,这种加密算法的问题是,用户必须让接收人知道自己所使用的密钥,这个密钥需要双方共同保密,任何一方的失误都会导致机密的泄露,而且在告诉收件人密钥过程中,还需要防止任何人发现或偷听密钥,这个过程被称为密钥发布。,*,计算机网络安全基础,7.1 数据加密概述,公用私有密钥,与单独的密钥不同,它使用相互关联的一对密钥,一个是公用密钥,任何人都可以知道,另一个是私有密钥,只有拥有该对密钥的人知道。如果有人发信给这个人,他就用收信人的公用密钥对信件进行过加密,当收件人收到信后,他就可以用他的私有密钥进行解密,而且只有他持有的私有密钥可以解密。这种加密方式的好处显而易见。密钥只有一个人持有,也就更加容易进行保密,因为不需在网络上传送私人密钥,也就不用担心别人在认证会话初期截获密钥。,公用密钥和私有密钥有两个相互关联的密钥;,公用密钥加密的文件只有私有密钥能解开;,私有密钥加密的文件只有公用密钥能解开 。,*,计算机网络安全基础,7.1 数据加密概述,(,2)摘要函数,摘要是一种防止信息被改动的方法,其中用到的函数叫摘要函数。这些函数的输入可以是任意大小的消息,而输出是一个固定长度的摘要。摘要有这样一个性质,如果改变了输入消息中的任何东西,甚至只有一位,输出的摘要将会发生不可预测的改变,也就是说输入消息的每一位对输出摘要都有影响。总之,摘要算法从给定的文本块中产生一个数字签名(,Fingerprint,或,Message Digest),,数字签名可以用于防止有人从一个签名上获取文本信息或改变文本信息内容。,*,计算机网络安全基础,7.1 数据加密概述,3密钥的管理和分发,(1)使用同样密钥的时间范围,一般强调仅将一个对话密钥用于一条信息或一次对话中,或者建立一种按时更换密钥的机制以减小密钥暴露的可能性。,(2)保密密钥的分发,建立了一个安全的、可信任的密钥分发中心(,Key Distribution Center,KDC),,每个用户只要知道一个和,KDC,进行通信的密钥就可以了,而不需要知道成百上千个不同的密钥。,*,计算机网络安全基础,7.1 数据加密概述,7.1.3 基本概念,1消息和加密,消息被称为明文。用某种方法伪装消息以隐藏它的内容的过程称为加密(,Encryption),,被加密的消息称为密文,而把密文转变为明文的过程称为解密(,Decryption)。,*,计算机网络安全基础,7.1 数据加密概述,使消息保密的技术和科学叫做密码编码学(,Cryptography),,从事此行的叫密码编码者(,Cryptographer),,密码分析者是从事密码分析的专业人员,密码分析学(,Cryptanalysis),就是破译密文的科学和技术,即揭穿伪装。密码学(,Cryptology),作为数学的一个分支,包括密码编码学和密码分析学两部分,精于此道的人称为密码学家(,Cryptologist),,现代的密码学家通常也是理论数学家。,*,计算机网络安全基础,7.1 数据加密概述,加密函数,E,作用于明文,M,得到密文,C,,可用数学公式表示:,E(M)=C,相反地,解密函数,D,作用于,C,产生,M:,D(C)=M,先加密后再解密,原始的文明将恢复,故下面的等式必须成立:,D(E(M)=M,*,计算机网络安全基础,7.1 数据加密概述,2鉴别、完整性和抗抵赖,除了提供机密性外,密码学通常还有其它的作用。,(1)鉴别。消息的接收者应该能够确认消息的来源,入侵者不可能伪装成他人。,(2)完整性。消息的接收者应该能够验证在传送过程中消息没有被修改,入侵者不可能用假消息代替合法消息。,(3)抗抵赖。发送者事后不可能虚假地否认他发送的消息。,*,计算机网络安全基础,7.1 数据加密概述,3算法和密钥,密码算法(,Algorithm),也叫密码(,Cipher),,是用于加密和解密的数学函数。通常情况下,有两个相关的函数,一个用作加密,另一个用作解密。,密钥用,K,表示。,K,可以是很多数值里的任意值。密钥,K,的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥(即运算都依赖于密钥,并用,K,作为下标表示),这样,加解密函数现在变成:,E,K,(M)=C D,K,(C)=M,这些函数具有的特性:,D,K,(E,K,(M)=M,*,计算机网络安全基础,7.1 数据加密概述,单钥密加解密,双钥加密解密,*,计算机网络安全基础,7.1 数据加密概述,基于密钥的算法通常有两类:对称算法和公用密钥算法,。,4对称算法,对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推导出来,反过来也成立。,对称算法可分为两类。一次只对明文中的单个位(有时对字节)运算的算法称为序列算法或序列密码。另一类算法是对明文的一组位进行运算,这些位组称为分组,相应的算法称为分组算法或分组密码。,5公用密钥算法,公用密钥算法(,Public-Key,Aalgorithm,),也叫非对称算法,它是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来。,*,计算机网络安全基础,7.1 数据加密概述,6密码分析,密码分析学是在不知道密钥的情况下,恢复出明文的科学。成功的密码分析能恢复出消息的明文或密钥。密码分析也可以发现密码体制的弱点,最终得到上述结果。密钥通过非密码分析方式的丢失叫做泄露。常用的密码分析攻击有四类。,(1)唯密文攻击(,Cipher Text-Only Attack)。,密码分析者有一些消息的密文,这些消息都用同一加密算法加密。密码分析者的任务是恢复尽可能多的明文,或者最好是能推算出加密消息的密钥来,以便可采用相同的密钥解出其他被加密的消息。,*,计算机网络安全基础,7.1 数据加密概述,(2)已知明文攻击(,Known-Plaintext Attack)。,密码分析者不仅可得到一些消息的密文,而且也知道这些消息的明文。分析者的任务就是用加密信息推出用来加密的密钥或推导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密。,(3)选择明文攻击(,Chosen-Plaintext Attack)。,分析者不仅可得到一些消息的密文和相应的明文,而且他们也可选择被加密的明文。这比已知明文攻击更有效。因为密码分析者能选择特定的明文块去加密,那些块可能产生更多关于密钥的信息,分析者的任务是推出用来加密消息的密钥或导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密。,*,计算机网络安全基础,7.1 数据加密概述,(4)自适应选择明文攻击(,Adaptive-Chosen-Plaintext Attack)。,这是选择明文攻击的特殊情况。密码分析者不仅能选择被加密的明文,而且也能基于以前加密的结果修正这个选择。在选择明文攻击中,密码分析者还可以选择一大块被加密的明文,而在自适应选择密文攻击中,可选取较小的明文块,然后再基于第一块的结果选择另一明文块,依此类推。,(5)选择密文攻击(,Chosen-Cipher Text Attack)。,密码分析者能选择不同的被加密的密文,并可得到对应的解密的明文,例如密码分析者存取一个防窜改的自动解密盒,密码分析者的任务是推出密钥。,*,计算机网络安全基础,7.1 数据加密概述,(6)选择密钥攻击(,Chosen-Key Attack)。,这种攻击并不表示密码分析者能够选择密钥,它只表示密码分析者具有不同密钥之间的关系的有关知识。,(7)软磨硬泡攻击(,Rubber-Hose Cryptanalysis)。,这种攻击是对密码分析者威胁、勒索,或者折磨某人,直到他给出密钥为止。行贿有时称为购买密钥攻击(,purchase-key attack)。,这些是非常有效的攻击,并且经常是破译算法的最好途径。,*,计算机网络安全基础,7算法的安全性,不同的密码算法具有不同的安全等级。如果破译算法的代价大于加密数据的价值,破译算法所需的时间比加密数据保密的时间更长,用单密钥加密的数据量比破译算法需要的数据量少得多,那么这种算法可能是安全的。破译算法可分为不同的类别,安全性的递减顺序为:,全部破译。,密码分析者找出密钥,K,,这样,D,K,(C)=P。,全盘推导。,密码分析者找到一个代替算法在不知道密钥,K,的情况下,等价于,D,K,(C)=P。,局部推导。,密码分析者从截获的密文中找出明文。,信息推导。,密码分析者获得一些有关密钥或明文的信息。这些信息可能是密钥的几个位、有关明文格式的信息等。,7.1 数据加密概述,*,计算机网络安全基础,7.2 传统密码技术,7.2.1 数据表示方法,数据的表示有多种形式,使用最多的是文字,还有图形、声音、图像等。这些信息在计算机系统中都是以某种编码的方式来存储的。,传统加密方法的主要应用对象是对文字信息进行加密解密。,7.2.2 替代密码,替代密码(,Substitution Cipher),是使用替代法进行加密所产生的密码。,*,计算机网络安全基础,7.2 传统密码技术,替代密码就是明文中每一个字符被替换成密文中的另外一个字符。接收者对密文进行逆替换就恢复出明文来。替代法加密是用另一个字母表中的字母替代明文中的字母。在替代法加密体制中,使用了密钥字母表。它可以由明文字母表构成,也可以由多个字母表构成。如果是由一个字母表构成的替代密码,称为单表密码。其替代过程是在明文和密码字符之间进行一对一的映射。如果是由多个字母表构成的替代密码,称为多表密码。,在经典密码学中,有四种类型的代替密码。,简单代替密码 、多名码代替密码 、多字母代替密码 和多表代替密码 。,*,计算机网络安全基础,7.2 传统密码技术,1单表替代密码,单表替代密码的一种典型方法是凯撒(,Caesar),密码,又叫循环移位密码。它的加密方法就是把明文中所有字母都用它右边的第,k,个字母替代,并认为,Z,后边又是,A。,这种映射关系表示为如下函数:,F(a)=(a+k) mod n,其中:,a,表示明文字母;,n,为字符集中字母个数;,k,为密钥。,*,计算机网络安全基础,7.2 传统密码技术,映射表中,明文字母中在字母表中的相应位置数为,C,(,如,A=1,B=2,),形式如下:,设,k3;,对于明文,PCOMPUTE SYSTEMS,则,f(C)=(3+3) mod 26=6=F,f(O)=(15+3)mod 26=18=R,f(M)=(13+3)mod 26=16=P,f(S)=(19+3) mod 26=22=V,所以,密文,C=,E,k,(P,)=FRPSXRWHUVBVWHPV。,*,计算机网络安全基础,7.2 传统密码技术,除了凯撒密码,在其他的单表替代法中,有的字母表被打乱。比如,在字母表中首先排列出密钥中出现的字母,然后在密钥后面填上剩余的字母。如密钥是,HOW,,那么新的字母表就是:,HOWABCDEFGIJKLMNPQRSTUVXYZ,这个密钥很短,多数明文字母离开其密文等价字母,仅有一个或几个位置。若用长的密钥字,则距离变大,因而便难于判断是何文字密钥。,*,计算机网络安全基础,7.2 传统密码技术,2多表替代密码,周期替代密码是一种常用的多表替代密码,又称为维吉尼亚(,Vigenere,),密码。这种替代法是循环的使用有限个字母来实现替代的一种方法。若明文信息,m,l,m,2,m,3,m,n,,,采用,n,个字母(,n,个字母为,B,1,,B,2,,,B,n,),替代法,那么,,m,l,将根据字母,B,n,的特征来替代,,m,n+l,又将根据,B,1,的特征来替代,,m,n+2,又将根据,B,2,的特征来替代,如此循环。可见,B,1,,B,2,,,B,n,就是加密的密钥。,这种加密的加密表是以字母表移位为基础把26个英文字母进行循环移位,排列在一起,形成2626的方阵。该方阵被称为维吉尼亚表。采用的算法为,f(a)=(a+B,i,) mod n,(i=(1,2,n),*,计算机网络安全基础,7.2 传统密码技术,例如:以,YOUR,为密钥,加密明码文,HOWAREYOU,。,P=,HOWAREYOU,K=,YOURYOURY,E,k,(P,)=,FCQRPSSFS,其加密过程就是以明文字母选择列,以密钥字母选择行,两者的交点就是加密生成的密码文字母。解密时,以密码字母选择行,从中找到密文字母,密文字母所在列的列名即为明文字母。,*,计算机网络安全基础,7.2 传统密码技术,7.2.3 换位密码,换位密码是采用移位法进行加密的。它把明文中的字母重新排列,本身不变,但位置变了。如:把明文中的字母的顺序倒过来写,然后以固定长度的字母组发送或记录。,明文:,computer systems,密文:,sm,etsy,sretupmoc,(l),列换位法将明文字符分割成为五个一列的分组并按一组后面跟着另一组的形式排好。如明文是:,WHAT YOU CAN LEARN FROM THIS BOOK,分组排列为:,*,计算机网络安全基础,7.2 传统密码技术,密文则以下面的形式读出:,WOFHOHURIKACOSXTAMBXYNTOX,这里的密钥是数字5。,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,*,计算机网络安全基础,7.2 传统密码技术,(2)矩阵换位法这种加密是把明文中的字母按给定的顺序安排在一个矩阵中,然后用另一种顺序选出矩阵的字母来产生密文。如将明文,ENGINEERING,按行排在3*4矩阵中,如下所示:,1,2,3,4,E,N,G,I,N,E,E,R,I,N,G,给定一个置换 :,*,计算机网络安全基础,7.2 传统密码技术,现在根据给定的置换,按第2列,第4列,第1列,第3列的次序排列,就得得到密文:,NIEGERNEN IG,在这个加密方案中,密钥就是矩阵的行数,m,和列数,n,,即,m*n3*4,,以及给定的置换矩阵。也就是:,k=(m*n,f),1,2,3,4,N,I,E,G,E,R,N,E,N,I,G,*,计算机网络安全基础,7.2 传统密码技术,其解密过程是将密文根据3*4矩阵,按行、列的顺序写出,再根据给定置换产生新的矩阵,恢复明文为:,ENGINEERING,1,2,3,4,N,I,E,G,E,R,N,E,N,I,G,1,2,3,4,E,N,G,I,N,E,E,R,I,N,G,*,计算机网络安全基础,7.2 传统密码技术,7.2.4 简单异或,异或(,XOR),在,C,语言中是“”操作,或者用数学表达式表示。它是对位的标准操作,有以下一些运算:,00=0,01=1,10=1,11=0,也要注意:,aa=0 abb=a,*,计算机网络安全基础,/*,Usage: crypto_key input_file output_file */,#include ,stdio.h,void,main(int,argc,char,*,argv,),FILE *,fi,*,fo,;,char *cp;,int,c;,if (cp=argv1) & *cp!=0),if (,fi,=fopen(argv2,rb)!=NULL),if (,fo,=fopen(argv3,wb)!=NULL),while (c=,getc(fi,)!=EOF),if (!*cp)cp=argv1;,c=*(cp+);,putc(c,fo,);,fclose(fo,);,fclose(fi,);,*,计算机网络安全基础,7.2 传统密码技术,7.2.5 一次密码本,有一种理想的加密方案,叫做一次密码本(,One-Time Pad) 。,一次密码本是一个大的不重复的真随机密钥字母集,这个密钥字母集被写在几张纸上,并被粘成一个密码本。它最初的形式是用于电传打字机。发送者用密码本中的每一密钥字母准确地加密一个明文字符。加密是明文字符和一次密码本密钥字符的模26加法。,每个密钥仅对一个消息使用一次。发送者对所发送的消息加密,然后销毁密码本中用过的一页或磁带部分。接收者有一个同样的密码本,并依次使用密码本上的每个密钥去解密密文的每个字符。接收者在解密消息后销毁密码本中用过的一页或磁带部分。新的消息则用密码本中新的密钥加密。,*,计算机网络安全基础,7.2 传统密码技术,例如,如果消息是:,ONE TIME PAD,而取自密码本的密钥序列是:,TBF RGFA RFM,那么密文就是:,IPK LPSF HGQ,因为,OT mode 26=I,NB mode 26=P,EF mode 26=K,*,计算机网络安全基础,7.3 数据加密,对加密算法要求要达到以下几点:,(1)必须提供高度的安全性;,(2)具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又便于理解和掌握;,(3)安全性应不依赖于算法的保密,其加密的安全性仅以加密密钥的保密为基础;,(4)必须适用于不同的用户和不同的场合;,(5)实现算法的电子器件必须很经济、运行有效;,(6)必须能够验证,允许出口。,*,计算机网络安全基础,7.3 数据加密,7.3.1数据加密标准,数据加密标准(,Data Encryption Standard,DES),是美国国家标准局开始研究除国防部以外的其它部门的计算机系统的数据加密标准。,DES,是一个分组加密算法,它以64位为分组对数据加密。64位一组的明文从算法的一端输入,64位的密文从另一端输出。,DES,是一个对称算法:加密和解密用的是同一算法。密钥的长度为56位。(密钥通常表示为64位的数,但每个第8位都用作奇偶校验,可以忽略。)密钥可以是任意的56位的数,且可在任意的时候改变。其中极少量的数被认为是弱密钥,但能容易地避开它们。所有的保密性依赖于密钥。,*,计算机网络安全基础,7.3 数据加密,DES,有16轮,这意味着要在明文分组上16次实施相同的组合技术 。,1加密过程,DES,使用56位密钥对64位数据块进行加密,需要进行16轮编码。,*,计算机网络安全基础,7.3 数据加密,在每轮编码时,一个48位的“每轮”密钥值由56位的完整密钥得出来。在每轮编码过程中,64位数据和每轮密钥值被输入到一个称为“,S”,的盒中,由一个压码函数对数位进行编码。另外,在每轮编码开始、过后以及每轮之间,64位数码被以一种特别的方式置换(数位顺序被打乱)。在每一步处理中都要从56位的主密钥中得出一个唯一的轮次密钥。最后,输入的64位原始数据被转换成64位看起来被完全打乱了的输出数据,但可以用解密算法(实际上是加密过程的逆过程)将其转换成输入时的状态。当然,这个解密过程要使用加密数据时所使用的同样的密钥。,*,计算机网络安全基础,7.3 数据加密,由于每轮之前、之间和之后的变换,,DES,用软件执行起来比硬件慢得多,用软件执行一轮变换时,必须做一个64次的循环,每次将64位数的一位放到正确的位置。使用硬件进行变换时,只需用64个输入“管脚”到64个输出“管脚”的模块,输入“管脚”和输出“管脚”之间按定义的变换进行连接。这样,结果就可以直接从输出“管脚”得到。,2算法概要,DES,对64位的明文分组进行操作。通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长。,*,计算机网络安全基础,7.3 数据加密,然后进行16轮完全相同的运算,这些运算被称为函数,f,,在运算过程中数据与密钥结合。经过16轮后,左、右半部分合在一起,经过一个末置换(初始置换的逆置换),这样该算法就完成了。,在每一轮中,密钥位移位,然后再从密钥的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个,S,盒将这48位替代成新的32位数据,再将其置换一次。这四步运算构成了函数,f。,然后,通过另一个异或运算,函数,f,的输出与左半部分结合,其结果即成为新的右半部分,原来的右半部分成为新的左半部分。将该操作重复16次,便实现了,DES,的16轮运算。,*,计算机网络安全基础,7.3 数据加密,一轮,DES,*,计算机网络安全基础,7.3 数据加密,假设,B,i,是第,i,次迭代的结果,,L,i,和,R,i,是,B,i,的左半部分和右半部分,,K,i,是第,i,轮的48位密钥,且,f,是实现代替、置换及密钥异或等运算的函数,那么每一轮就是:,L,i,=R,i-1,R,i,=L,i-1,f(R,i-1,K,i,),*,计算机网络安全基础,7.3 数据加密,3,初始置换,初始置换在第一轮运算之前执行,对输入分组实施如下表所示的变换。此表应从左向右、从上向下读。例如,初始置换把明文的第58位换到第1位的位置,把第50位换到第2位的位置,把第42位换到第3位的位置,等等。,58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,*,计算机网络安全基础,7.3 数据加密,4密钥置换,一开始,由于不考虑每个字节的第8位,,DES,的密钥由64位减至56位,如下表所示。每个字节第8位可作为奇偶校验位以确保密钥不发生错误。在,DES,的每一轮中,从56位密钥产生出不同的48位子密钥(,Sub Key),,这些子密钥,K,i,由下面的方式确定。,57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4,*,计算机网络安全基础,7.3 数据加密,首先,56位密钥被分成两部分,每部分28位。然后,根据轮数,这两部分分别循环左移,l,位或2位。下表给出了每轮移动的位数。,轮,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,位数,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,*,计算机网络安全基础,7.3 数据加密,移动后,就从56位中选出48位。因为这个运算不仅置换了每位的顺序,同时也选择子密钥,因而被称作压缩置换。这个运算提供了一组48位的集。下表定义了压缩置换(也称为置换选择)。例如,处在第33位位置的那一位在输出时移到了第35位的位置,而处在第18位位置的那一位被略去了。,14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32,*,计算机网络安全基础,7.3 数据加密,因为有移动运算,在每一个子密钥中使用了不同的密钥子集的位。虽然不是所有的位在子密钥中使用的次数均相同,但在16个子密钥中,每一位大约使用了其中14个子密钥。,5扩展置换,这个运算将数据的右半部分,R,i,从32位扩展到了48位。由于这个运算改变了位的次序,重复了某些位,故被称为扩展置换。,这个操作有两个方面的目的:它产生了与密钥同长度的数据以进行异或运算,它提供了更长的结果,使得在替代运算时能进行压缩。,*,计算机网络安全基础,7.3 数据加密,下图显示了扩展置换,有时它也叫做,E,盒。对每个4位输入分组,第1和第4位分别表示输出分组中的两位,而第2和第3位分别表示输出分组中的一位。,*,计算机网络安全基础,7.3 数据加密,下表给出了哪一输出位对应于哪一输入位。例如,处于输入分组中第3位的位置的位移到了输出分组中第4位的位置,而输入分组中第21位的位置的位移到了输出分组中第30和第32位的位置。,尽管输出分组大于输入分组,但每一个输入分组产生唯一的输出分组。,32,1,2,3,4,5,4,5,6,7,8,9,8,9,10,11,12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21,22,23,24,25,24,25,26,27,28,29,28,29,30,31,32,1,*,计算机网络安全基础,7.3 数据加密,6,S,盒代替,压缩后的密钥与扩展分组异或以后,将48位的结果送入,进行代替运算。替代由8个代替盒,或,S,盒完成。每一个,S,盒都有 6位输入,4位输出,且这8个,S,盒是不同的。(,DES,的这8个,S,盒占的存储空间为256字节。)48位的输入被分为8个6位的分组,每一分组对应一个,S,盒代替操作:分组1由,S-,盒1操作,分组2由,S-,盒2操作,依次类推。,*,计算机网络安全基础,7.3 数据加密,每个,S,盒是一个4行、16列的表。盒中的每一项都是一个4位的数。,S,盒的6个位输入确定了其对应的输出在哪一行哪一列。下面列出所有的8个,S,盒。,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,13,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,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,*,计算机网络安全基础,7.3 数据加密,7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,13,8,11,5,6,5,0,3,4,7,2,12,1,10,14,9,10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,13,7,0,9,3,4,6,10,2,8,5,14,12,11,5,1,13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,S,盒3:,S,盒4:,*,计算机网络安全基础,7.3 数据加密,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,11,3,8,9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,1,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3,S,盒5:,S,盒6:,*,计算机网络安全基础,7.3 数据加密,4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,S,盒7:,S,盒8:,13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11,*,计算机网络安全基础,7.3 数据加密,输入位以一种非常特殊的方式确定了,S,盒中的项。假定将,S,盒的6位的输入标记为,b,1,、b,2,、b,3,、b,4,、b,5,、b,6,。,则,b,1,和,b,6,组合构成了一个2位的数,从0到3,它对应着表中的一行。从,b,2,到,b,5,构成了一个4位的数,从0到15,对应着表中的一列。,例如,假设第6个,S,盒的输入(即异或函数的第31位到36位)为110011。第1位和最后一位组合形成了11,它对应着第6个,S,盒的第三行。中间的4位组合在一起形成了1001,它对应着同一个,S,盒的第9列。,S,盒6的第三行第9列处的数是14(记住,行、列的记数均从0开始而不是从1开始),则值1110就代替了110011。,*,计算机网络安全基础,7.3 数据加密,7,P,盒置换,S,盒代替运算后的32位输出依照,P,盒进行置换。该置换把每输入位映射到输出位,任意一位不能被映射两次,也不能被略去,这个置换叫做直接置换。下表给出了每位移到的位置。例如,第21位移到了第4位处,同时第4位移到了第31位处。最后,将,P,盒置换的结果与最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始另一轮。,16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25,*,计算机网络安全基础,7.3 数据加密,8末置换,末置换是初始置换的逆过程,下表列出了该置换。应注意,DES,在最后一轮后,左半部分和右半部分并未交换,而是将,R,16,与,L,16,并在一起形成一个分组作为末置换的输入。,40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27,34,2,42,10,50,18,58,26,33,1,41,9,49,17,57,25,*,计算机网络安全基础,7.3 数据加密,9,DES,解密,在经过所有的代替、置换、异或和循环移动之后,获得了这样一个非常有用的性质:加密和解密可使用相同的算法。,DES,使得用相同的函数来加密或解密每个分组成为可能,二者的唯一不同之处是密钥的次序相反。这就是说,如果各轮的加密密钥分别是,K1,K2,K3,K16,那么解密密钥就是,K16,K15,K14,K1。,为各轮产生密钥的算法也是循环的。密钥向右移动,每次移动个数为0,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1。,*,计算机网络安全基础,7.3 数据加密,10三重,DES,DES,的唯一密码学缺点就是密钥长度较短。解决密钥长度的问题的办法之一是采用三重,DES。,三重,DES,方法需要执行三次常规的,DES,加密步骤,但最常用的三重,DES,算法中仅仅用两个56位,DES,密钥。设这两个密钥为,K,1,和,K,2,,,其算法的步骤是:,(1)用密钥,K1,进行,DES,加密;,(2)用步骤(1)的结果使用密钥,K2,进行,DES,解密;,(3)用步骤(2)的结果使用密钥,K1,进行,DES,加密。,*,计算机网络安全基础,7.3 数据加密,这个过程称为,EDE,,因为它是由加密解密加密(,Encrypt Decrypt Encrypt),步骤组成的。在,EDE,中,中间步骤是解密,所以,可以使,K,1,=K,2,来用三重,DES,方法执行常规的,DES,加密。,*,计算机网络安全基础,7.3 数据加密,11,DES,举例,已知明文,m=computer,,密钥,k=program,,用,ASCII,码表示为:,m=01100011 01101111 01101101 01110000 01110101 01110100 01100101 01110010,k=01110000 01110010 01101111 01100111 01110010 01100001 01101101,因为,k,只有56位,必须插入第8,16,24,32,40,48,56,64位奇偶校验位,合成64位。而这8位对加密过程没有影响。,*,计算机网络安全基础,7.3 数据加密,m,经过,IP,置换后得到,L,0,= 11111111 10111000 01110110 01010111,R,0,= 00000000 11111111 00000110 10000011,密钥,k,通过,PC-1,得到,C,0,= 11101100 10011001 00011011 1011,D,0,= 10110100 01011000 10001110 0110,再各自左移一位,通过,PC-2,得到48位,k,1,=00111101 10001111 11001101 00110111 00111111 00000110,R,0,(32,位)经,E,作用膨胀为48位,,10000000 00010111 11111110 10000000 11010100 00000110,*,计算机网络安全基础,7.3 数据加密,再和,k,1,作异或运算得到(分成8组),101111 011001 100000 110011 101101 111110 101101 001110,通过,S,盒后输出位32比特,,01110110 00110100 00100110 10100001,S,盒的输出又经过,P,置换得到,01000100 00100000 10011110 10011111,这时 :,所以,第一趟的结果是: 00000000 11111111 00000110 10000011 10111011 10011000 11101000 11001000,*,计算机网络安全基础,7.3 数据加密,如此,迭代16次以后,得到密文:,01011000 10101000 01000001 10111000 01101001 11111110 10101110 00110011,明文或密钥每改变一位,都会对结果密文产生剧烈的影响。任意改变一位,其结果大致有将近一半的位发生了变化。,*,计算机网络安全基础,7.3 数据加密,7.3.2国际数据加密算法,国际数据加密算法(,International Data Encryption Algorithm)IDEA,与,DES,一样,也是一种使用一个密钥对64位数据块进行加密的常规共享密钥加密算法。同样的密钥用于将64位的密文数据块恢复成原始的64位明文数据块。,IDEA,使用128位(16字节)密钥进行操作,这么长的密钥被认为即使在多年后仍是有效的。,IDEA,算法通过一系列的加密轮次进行操作,每轮都使用从完整的加密密钥中生成的一个子密钥,使用一个称为“压码”的函数在每轮中对数据位进行编码。与,DES,不同的是,IDEA,不使用置换。,*,计算机网络安全基础,7.3 数据加密,7.3.3 Blowfish,算法,Blowfish,是,Bruce,Schneier,设计的,可以免费使用。,Blowfish,是一个,16,轮的分组密码,明文分组长度为,64,位,使用变长密钥(从,32,位到,448,位)。,Blowfish,算法由两部分组成:密钥扩展和数据加密。,1,数据加密,2,函数,F,3,密钥扩展,*,计算机网络安全基础,7.3 数据加密,*,计算机网络安全基础,7.3 数据加密,7.3.4 GOST,算法,GOST,是前苏联设计的分组密码算法,为前苏联国家标准局所采用,标准号为:,28147-89,*,计算机网络安全基础,7.3 数据加密,7.3.5 PKZIP,算法,PKZIP,加密算法是一个一次加密一个字节的、密钥长度可变的序列密码算法,它被嵌入在,PKZIP,数据压缩程序中。,该算法使用了三个,32,位变量的,key0,、,key1,、,key2,和一个从,key2,派生出来的,8,位变量,key3,。由密钥初始化,key0,、,key1,和,key2,并在加密过程中由明文更新这三个变量。,*,计算机网络安全基础,7.4,公用密钥私有密钥密码学,公用密钥私有密钥密码学又称公用密钥密码。它通过使用两个数字互补密钥,绕过了排列共享的问题。这两个密钥,一个是尽人皆知的,而另一个只有拥有者才知道,尽人皆知的密钥叫做公用密钥,而只有密钥拥有者才知道的密钥叫做私有密钥,或称专用密钥。这两种密钥合在一起称为密钥对。公用密钥可以解决安全分配密钥问题,因为它不需要与保密密钥通信,所需传输的只有公用密钥。这种公用密钥不需要保密,但对保证其真实性和完整性却非常重要。,如果某一信息用公用密钥加密,则必须用私有密钥解密,这就是实现保密的方法。如果某一信息用私有密钥加密,那么,它必须用公用密钥解密。这就是实现验证的方法。,*,计算机网络安全基础,7.4,公用密钥私有密钥密码学,公钥密码系统可用于以下三个方面:,(,1,)通信保密:此时将公钥作为加密密钥,私钥作为解密密钥,通信双方不需要交换密钥就可以实现保密通信。这时,通过公钥或密文分析出明文或私钥是不可行的。,(,2,)数字签名:将私钥作为加密密钥,公钥作为解密密钥,可实现由一个用户对数据加密而使多个用户解读。,(,3,)密钥交换:通信双方交换会话密钥,以加密通信双方后续连接所传输的信息。每次逻辑连接使用一把新的会话密钥,用完就丢弃。,*,计算机网络安全基础,7.4,公用密钥私有密钥密码学,7.4.1,Diffie-Hellman,密钥交换算法,1.Diffie-Hellman,算法,Diffie-Hellman,算法常用做密钥的分配并满足:,y,g,x,mod p,(,在,g,自乘幂,x,后,然后除以,p,y,为余数),如果知道,g、x,和,p,,则很容易计算,y。,但是,如果知道,y、g,和,p,,则很难在合理的时间内以类似规模的数计算,x。,当所有的数都很大时,,p,是很大的素数。在此情况下,数,y,叫做公用分量,而,x,叫做私有分量或专用分量。这些分量本身不是密钥,但是,它们可以用来制作共享保密密钥。,*,计算机网络安全基础,7.4,公用密钥私有密钥密码学,2,中间人的攻击,Diffie-Hellman,密钥交换容易遭受中间人的攻击:,(,1,),A,发送公开值(,a,和,p,)给,B,,攻击者,C,截获这些值并把自己产生的公开值发送给,B,。,(,2,),B,发送公开值给,A,,,C,截获它然后把自己的公开值发送给,A,。,(,3,),A,和,C,计算出二人之间的共享密钥,k1,。,(,4,),B,和,C,计算出另外一对共享密钥,k2,。,*,计算机网络安全基础,7.4,公用密钥私有密钥密码学,3,三方或多方,Diffie-Hellman,Diffie-Hellman,密钥交换协议很容易扩展到三方或多方的密钥交换。下例中,,A,、,B,和,C,一起产生秘密密钥。,(,1,),A,选取一个大随机整数,x,,计算,X,a,x,mod p,,然后把,X,发送给,B,;,(,2,),B,选取一个大随机整数,y,,计算,Y,a,y,mod p,,然后把,Y,发送给,C,;,(,3,),C,选取一个大随机整数,z,,计算,Z,a,z,mod p,,然后把,Z,发送给,A,;,(,4,),A,计算,Z=,Z,x,mod p,并发送,Z,给,B;,(,5,),B,计算,X=,X,y,mod p,并发送,X,给,C;,(,6,),C,计算,Y=,Y,z,mod p,并发送,Y,给,A;,(,7,),A,计算,k=,Y,x,mod p;,(,8,),B,计算,k=,Z,y,mod p;,(,9,),C,计算,k=,X,z,mod p,。,*,计算机网络安全基础,7.4,公用密钥私有密钥密码学,7.4.2,RSA,公用密钥私有密钥,RSA,是在,Diffie-Hellman,算法问世两年之后,由,Rivest、Shamir,和,Adelman,在,MIT,作出的,并于1978年公布。,RSA,要求每一个用户拥有自己的一种密钥:,(1)公开的加密密钥,用以加密明文;,(2)保密的解密密钥,用于解密密文。,*,计算机网络安全基础,7.4,公用密钥私有密钥密码学,在,RSA,密钥体制的运行中,当,A,用户发文件给,B,用户时,,A,用户用,B,用户公开的密钥加密明文,,B,用户则用解密密钥解读密文,其特点是:,(1)密钥配发十分方便,用户的公用密钥可以像电话本那样公开,使用方便,每个用户只需持有一对密钥即可实现与网络中任何一个用户的保密通信。,(2),RSA,加密原理基于单向函数,非法接收者利用公用密钥不可能在有限时间内推算出秘密密钥。,(3),RSA,在用户确认和实现数字签名方面优于现有的其他加密机制。,*,计算机网络安全基础,7.4,公用密钥私有密钥密码学,7.4.3,DES,和,RSA,标准的比较,加密机制,DES,RSA,原理,加密钥=解密钥,(秘密),加密钥 解密钥,(公开) (秘密),算法,公开,公开,密钥配送,必要,不必要,密钥数,必须为通信对象数,自己用的一个即可,安全确认,比较困难,容易,加密速度,可达100,MB/S,可达10,KB/S,*,计算机网络安全基础,7.5 数字签名,7.5.1,基本概念,在计算机通信中,当接收者接收到一个消息时,往往需要验证消息在传输过程中有没有被篡改;有时接收者需要确认消息发送者的身份。所有这些都可以通过数字签名来实现。数字签名是公开密钥加密技术的一种应用。,发送方用自己的专用密钥对这个散列值进行加密来形成发送方的数字签名。然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先从接收到的原始报文中计算出,128,位的散列值(或报文摘要),接着再用发送方的公开密钥来对报文附加的数字签名进行解密。如果两个散列值相同,那么接收方就能确认该数字签名是发送方的。,*,计算机网络安全基础,7.5 数字签名,数字签名可以用来证明消息确实是由发送者签发的,而且,当数字签名用于存储的数据或程序时,可以用来验证数据或程序的完整性。数字签名应满足以下条件:,(,1,)签名是可以被确认的,即收方可以确认或证实签名确实是由发方签名的;,(,2,)签名是不可伪造的,即收方和第三方都不能伪造签名;,(,3,)签名不可重用,即签名是消息(文件)的一部分,不能把签名移到其它消息(文件)上;,(,4,)签名是不可抵赖的,即发方不能否认他所签发的消息;,(,5,)第三方可以确认收发双方之间的消息传送但不能篡改消息。,*,计算机网络安全基础,7.5 数字签名,7.5.2,数字签名技术应满足的要求,1,数字签名应具有的性质,(,1,)能够验证签名产生者的身份,以及产生签名的日期和时间;,(,2,)能用于证实被签消息的内容;,(,3,)数字签名可由第三方验证,从而能够解决通信双方的争议。,2,数字签名应满足的要求,(,1,)签名的产生必须使用发方独有的一些信息以防伪造和否认;,(,2,)签名的产生应较为容易;,*,计算机网络安全基础,7.5 数字签名,(,3,)签名的识别和验证应较为容易;,(,4,)对已知的数字签
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!