《沈鑫剡编著网络安全教材配套课件第4章》由会员分享,可在线阅读,更多相关《沈鑫剡编著网络安全教材配套课件第4章(33页珍藏版)》请在金锄头文库上搜索。
1、 2006工程兵工程学院 计算机教研室网络安全第四章网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全第第4章章 报文摘要算法报文摘要算法本章主要内容本章主要内容n基本概念和特点;基本概念和特点;nMD5MD5;nSHASHA;nHMACHMAC;n报文摘要应用。报文摘要应用。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全4.1 基本概念和特点基本概念和特点本讲主要内容本讲主要内容n完整性检测;完整性检测;n报文摘要算法特点。报文摘要算法特点。网络安全基础网络安全基础网络安全基础网络
2、安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全一、一、 完整性检测完整性检测 检错码检错码C=fC=f(D D);); 假定接收端接收到假定接收端接收到CC和和D D 只有当只有当C =fC =f( D D )时,接收端确认传输过)时,接收端确认传输过程正确。程正确。1 1检错码检错码网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全一、一、 完整性检测完整性检测 发送端检错码发送端检错码C=C=EK(f(D) ; 检测出精心篡改的前提是:函数检测出精心篡改的前提是:函数f f()有着如下()有着如下特性:对于任何特性:对
3、于任何x x,找不出,找不出y y,xyxy,但,但f f(x x)= = f f(y y)。)。2 2报文摘要和完整性检测过程报文摘要和完整性检测过程网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全二、二、报文摘要算法特点报文摘要算法特点 假定假定MDMD为报文摘要算法,为报文摘要算法,MDMD(X X)是算法对报文)是算法对报文X X作用后产生的作用后产生的标识信息,标识信息,MDMD必须满足如下要求:必须满足如下要求:n能够作用于任意长度的报文;能够作用于任意长度的报文;n产生有限位数的标识信息;产生有限位数的标识信息;n易于实现;
4、易于实现;n具有单向性。只能根据报文具有单向性。只能根据报文X X求出求出MDMD(X X),从计算可行性讲,无法),从计算可行性讲,无法根据标识信息根据标识信息h h,得出报文,得出报文X X,且使得,且使得MDMD(X X)=h=h;n具有抗碰撞性。从计算可行性讲,对于任何报文具有抗碰撞性。从计算可行性讲,对于任何报文X X,无法找出另一个,无法找出另一个报文报文Y Y,X XY Y,但(,但(X X)()(Y Y););n具有高灵敏性。即使只改变报文具有高灵敏性。即使只改变报文X X中一位二进制位,也使得重新计算中一位二进制位,也使得重新计算后的(后的(X X)变化很大。)变化很大。网络
5、安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全4.2 MD5本讲主要内容本讲主要内容n添加填充位;添加填充位;n分组操作;分组操作;nMD5MD5运算过程。运算过程。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全一、一、添加填充位添加填充位 假定假定报文的长度为报文的长度为X X,首先添加首位为,首先添加首位为1 1,其余位为其余位为0 0的填充位,填充位的长度的填充位,填充位的长度Y Y由下由下式确定。式确定。(X+YX+Y)mod 512=448mod 512=448网络安全基础
6、网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全二、分组操作二、分组操作n长度字段为长度字段为64位,(报文填充)位,(报文填充)mod=448,保证总长,保证总长是是512的整数倍;的整数倍;n报文以报文以512位为单位分段,前一段位为单位分段,前一段MD5的运算结果和当前的运算结果和当前段数据作为段数据作为MD5输入,运算结果为输入,运算结果为128位;位;n初始向量初始向量IV和第一段数据作为和第一段数据作为MD5输入。输入。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全n128128位
7、位IVIV和中间结果和中间结果C Ci i分为分为4 4个个3232位字:位字:A A、B B、C C和和D D;n512512位数据段位数据段Y Yi i分为分为1616个个3232位字;位字;n4 4级运算级运算FFFF、GGGG、HHHH和和IIII中的每一级完成中的每一级完成1616次运次运算,算, 分解分解Y Yi i产生的产生的1616个字分别参加个字分别参加1616次运算;次运算;n每一次运算改变其中一个字的值,每一次运算改变其中一个字的值,4 4个字个字1616次运次运算中分别改变算中分别改变4 4次;次;n每一次运算结果和每一次运算结果和4 4个字的当前值和分解个字的当前值和
8、分解Y Yi i产生产生的其中一个字有关;的其中一个字有关;n4 4级运算后的最终结果和上一次中间结果相加,级运算后的最终结果和上一次中间结果相加,构成本次中间结果。构成本次中间结果。三、三、MD5运算过程运算过程网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全4.3 SHA本讲主要内容本讲主要内容nSHA-1与与MD5之间的异同;之间的异同;nSHA-1运算过程;运算过程;nSHA-1与与MD5安全性和计算复杂性比较。安全性和计算复杂性比较。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机
9、网络安全一、一、 SHA-1与与MD5之间的异同之间的异同1 1SHA-1SHA-1与与MD5MD5之间的相同点之间的相同点nSHA-1SHA-1有着与有着与MD5MD5相同的填充过程;相同的填充过程;nSHA-1SHA-1也将报文分成也将报文分成512512位长度的数据段;位长度的数据段;n对数据段进行与对数据段进行与MD5MD5相同的分组操作。相同的分组操作。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全一、一、 SHA-1与与MD5之间的异同之间的异同2 2SHA-1SHA-1与与MD5MD5之间的不同点之间的不同点n初始初始向量
10、和每一段数据段的运算结果是向量和每一段数据段的运算结果是5 5个个3232位位的字,即的字,即160160位;位;n每一级操作进行每一级操作进行2020次迭代运算,次迭代运算,4 4级共级共8080次迭代次迭代运算;运算;n需要将需要将1616个个3232位字的数据段扩展为位字的数据段扩展为8080个个3232位字;位字;n扩展后的扩展后的8080个个3232位字分别参加位字分别参加8080次迭代运算;次迭代运算;n每一级操作使用相同的常量,因此,只需要每一级操作使用相同的常量,因此,只需要4 4个个不同的常量。不同的常量。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网
11、络安全计算机网络安全计算机网络安全二、二、SHA-1运算过程运算过程1 1SHA-1SHA-1数据段扩展过程数据段扩展过程 假定假定构成数据段的构成数据段的1616个个3232位字是位字是MkMk(0 0k k1515),扩展后的),扩展后的8080个个3232位字是位字是WiWi(0 0i i7979),扩展过程如下。),扩展过程如下。Wt= Mt Wt= Mt (0 0t t1515)Wt= Wt-3 Wt= Wt-3 Wt-8 Wt-8 Wt-14 Wt-14 Wt-16 Wt-16 (1616t t7979)网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计
12、算机网络安全计算机网络安全二、二、SHA-1运算过程运算过程2 2每一级运算过程每一级运算过程每一级运算使用的函数如下:每一级运算使用的函数如下:F F1 1(X,Y,ZX,Y,Z)X XY OR /XY OR /XZ ZF F2 2(X,Y.ZX,Y.Z)X X Y Y Z Z F F3 3(X,Y,ZX,Y,Z)X XY OR XY OR XZ OR YZ OR YZ ZF F4 4(X,Y,ZX,Y,Z)X X Y Y Z Z网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全二、二、SHA-1运算过程运算过程2 2每一级运算过程每一级
13、运算过程 完成完成每一级运算过程需要每一级运算过程需要2020次迭代运算,第次迭代运算,第i i级级运算进行的运算进行的2020次迭代运算如下。次迭代运算如下。FOR j=FOR j=(i i1 1)20 to20 to(i i1 1)20+1920+19 TEMP=S TEMP=S5 5(A A)+F+Fi i(B,C,DB,C,D)+E+Wj+K+E+Wj+Ki i; ; E=D;D=C;C E=D;D=C;C= S= S3030(B B);B=A;A=TEMP;B=A;A=TEMP; 网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全
14、三三、 SHA-1与与MD5安全性和计算复杂性比较安全性和计算复杂性比较1 1安全性安全性 由于由于SHA-1SHA-1的摘要长度是的摘要长度是160160位,位,MD5MD5的摘要长度的摘要长度是是128128位,因此,位,因此,SHA-1SHA-1的抗碰撞性更好。的抗碰撞性更好。2 2计算复杂性计算复杂性 SHA-1 SHA-1的计算复杂性高于的计算复杂性高于MD5MD5,因此,因此,SHA-1SHA-1比比MD5MD5需要更多的计算时间。需要更多的计算时间。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全4.4 HMAC本讲主要内容
15、本讲主要内容n完整性检测要求;完整性检测要求;nHMACHMAC运算过程和运算思路。运算过程和运算思路。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全一、一、完整性检测要求完整性检测要求 报文报文摘要的主要用途是对报文进行完整性检测,摘要的主要用途是对报文进行完整性检测,由于报文摘要算法的公开性,获得报文,便可计算由于报文摘要算法的公开性,获得报文,便可计算出对应的报文摘要,因此,必须将报文摘要算法和出对应的报文摘要,因此,必须将报文摘要算法和加密算法相结合才能实现报文的完整性检测。加密算法相结合才能实现报文的完整性检测。网络安全基础网
16、络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全二、二、 HMAC运算思路和运算过程运算思路和运算过程1 1HMACHMAC运算思路运算思路 完整性完整性检测要求发送端和接收端完成报文摘要检测要求发送端和接收端完成报文摘要和加密解密运算和加密解密运算。为了。为了简化运算过程,发送端将报简化运算过程,发送端将报文和密钥串接后再进行报文摘要运算,即文和密钥串接后再进行报文摘要运算,即h=MDh=MD(P PK K)。)。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全2 2HMACHMAC运算运算过程
17、过程n密钥密钥K K扩展为扩展为b b位(报文摘要算法位(报文摘要算法要求的数据段长度);要求的数据段长度);nK+ipadK+ipad作为其中一个数据段进作为其中一个数据段进行报文摘要运算;行报文摘要运算;n将报文摘要运算结果(将报文摘要运算结果(n n位)扩位)扩展为展为b b位,位, K+opadK+opad作为其中一作为其中一个数据段进行报文摘要运算;个数据段进行报文摘要运算;n报文摘要运算结果作为散列消息报文摘要运算结果作为散列消息认证码(认证码(HMACHMAC)。)。二、二、 HMAC运算思路和运算过程运算思路和运算过程网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安
18、全计算机网络安全计算机网络安全计算机网络安全HMACHMAC完成完整性检测过程完成完整性检测过程二、二、 HMAC运算思路和运算过程运算思路和运算过程网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全4.5 报文摘要应用报文摘要应用本讲主要内容本讲主要内容n完整性检测;完整性检测;n消息鉴别;消息鉴别;n口令安全存储;口令安全存储;n数字签名。数字签名。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全一、一、完整性检测完整性检测 f f是是报文摘要算法,可以是报文摘要算法,可以是MD5
19、MD5、SHA-1SHA-1,或其他报文摘要算法,或其他报文摘要算法。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全二、消息鉴别二、消息鉴别 为了为了实现消息鉴别,一是使得接收端实现消息鉴别,一是使得接收端和发送端和发送端X X拥有相同的密钥拥有相同的密钥K K,且密钥,且密钥K K只有只有接收端和发送端接收端和发送端X X知道。二是对于消息知道。二是对于消息M M,使得发送端使得发送端X X生成的附加信息生成的附加信息C=EC=EK K(MDMD(M M)。)。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安
20、全计算机网络安全计算机网络安全三、口令安全存储三、口令安全存储 为了为了防止黑客窃取存储在计算机中的防止黑客窃取存储在计算机中的用户账号,对于每一个账号,计算机不以用户账号,对于每一个账号,计算机不以明文方式存储口令,而是存储口令的报文明文方式存储口令,而是存储口令的报文摘要,如果某个账户的口令是摘要,如果某个账户的口令是PASSPASS,计算,计算机中存储机中存储MDMD(PASSPASS)。)。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全四、数字签名四、数字签名1. 1. 数字签名数字签名特征特征 数字签名数字签名用于解决网络中传
21、输的信息的用于解决网络中传输的信息的真实性问题,它具有如下特征:真实性问题,它具有如下特征:n接收者能够核实发送者对报文的数字签名;接收者能够核实发送者对报文的数字签名;n发送者事后无法否认对报文的数字签名;发送者事后无法否认对报文的数字签名;n接收者无法伪造发送者对报文的数字签名。接收者无法伪造发送者对报文的数字签名。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全2 2基于基于RSARSA数字签名数字签名原理原理n规则规则一:一:EPKA(DSKA(P)=P,通过公钥,通过公钥PKA加密还原的一定是通过私加密还原的一定是通过私钥钥SK
22、A解密运算的结果;解密运算的结果;n规则二:无法根据报文摘要规则二:无法根据报文摘要h,求出报文,求出报文X,且使得,且使得MD(X)h;根据上述规则,一旦满足条件根据上述规则,一旦满足条件MD(P)=EPKA(数字签名),得出数字签名(数字签名),得出数字签名DSKA(MD(P),可以断定报文),可以断定报文P由知道私钥由知道私钥SKA的用户发送,知道私的用户发送,知道私钥钥SKA的用户是和公钥的用户是和公钥PKA绑定的用户。绑定的用户。四、数字签名四、数字签名网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全 证书证书分两部份:一部份是
23、分两部份:一部份是用明文方式给出的用于确认公用明文方式给出的用于确认公钥钥PKBPKB和用户和用户B B之间绑定关系的之间绑定关系的证明。另一部份是用认证中心证明。另一部份是用认证中心的私钥的私钥SKCASKCA对上述明文的报文对上述明文的报文摘要进行解密运算后生成的密摘要进行解密运算后生成的密文(文(D DSKCASKCA(MDMD(P P)。)。四、数字签名四、数字签名网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全四、数字签名四、数字签名网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机
24、网络安全四、数字签名四、数字签名 公公钥基础设施钥基础设施(PKIPKI)提供了管理、控制证书全过程的方)提供了管理、控制证书全过程的方案,包括证书的生成、更新、撤销和交叉认证案,包括证书的生成、更新、撤销和交叉认证机制。机制。PKIPKI包含包含以下组成部分。以下组成部分。n终端实体;终端实体;n认证中心(认证中心(CACA););n注册中心(注册中心(RARA););n证证书库。书库。网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全n认证中心的目的就是证明用户和公钥之间的绑定;认证中心的目的就是证明用户和公钥之间的绑定;n认证中心通过
25、证书证明这种绑定,证书由明文和密文两部分组成,密文部认证中心通过证书证明这种绑定,证书由明文和密文两部分组成,密文部分称为数字签名,它是用认证中心私钥加密明文报文摘要后的密文;分称为数字签名,它是用认证中心私钥加密明文报文摘要后的密文;n认证中心和公钥之间绑定由上一级认证中心用证书证明。认证中心和公钥之间绑定由上一级认证中心用证书证明。四、数字签名四、数字签名网络安全基础网络安全基础网络安全基础网络安全基础计算机网络安全计算机网络安全计算机网络安全计算机网络安全 USB USB keykey是一个智能卡,有运算功能。当用户向是一个智能卡,有运算功能。当用户向银行发送业务请求,且需要为业务请求生成数字签名银行发送业务请求,且需要为业务请求生成数字签名时,将业务请求的报文摘要传输给时,将业务请求的报文摘要传输给USB keyUSB key,由,由USB USB keykey生成,并输出数字签名。生成,并输出数字签名。四、数字签名四、数字签名