资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第五章 消息认证与数字签名,回顾,计算机系统安全的五个属性:,可用性(,Availability,),可靠性(,Reliability,),完整性(,Integrity,),保密性(,Confidentiality,),不可抵赖性(,Non-Repudiation,),消息认证,完整性需要验证:,信息发送方是否真实?接收方是否真实?,信息在传输过程中是否被改变?,信息的到达时间是否在指定的期限内?,完整性技术:,奇偶校验,检错码,纠错码,消息验证码(,MAC,),散列函数,散列函数:,特性:,一致性,随机性,唯一性,单向性,MAC,HMAC,散列函数的用法,对称密钥加密,报文消息摘要,提供保密、鉴别,对称密钥加密,消息摘要,提供鉴别,E,k,M|H(M,),M|E,k,H(M,),发方私钥加密,消息摘要,提供鉴别、数字签名,对称密钥加密,发方私钥加密消息摘要的结果,提供鉴别、数字签名、保密,M|E,ka,H(M,),E,k,M|E,ka,H(M,),共享密值,提供鉴别,共享密值、对称加密,提供鉴别、数字签名、保密,M|H(M|S),E,k,M|H(M)|S,MD5,来历,MD5,的全称是,message-digest algorithm 5(,信息,-,摘要算法,),,在,90,年代初由,MIT laboratory for computer science,和,RSA data security inc,的,Ronald l.,Rivest,开发出来,经,MD2,、,MD3,和,MD4,发展而来。,http:/www.ietf.org/rfc/rfc1321.txt,,是一份最权威的文档,由,Ronald l.,Rivest,在,1992,年,8,月向,IETF,提交。,用途,MD5,的作用是对一段信息,(message),生成信息摘要,(message-digest),,该摘要对该信息具有唯一性,可以作为数字签名。用于验证文件的有效性,(,是否有丢失或损坏的数据,),对用户密码的加密,在哈希函数中计算散列值。,特点,输入一个任意长度的字节串,生成一个,128,位的整数。由于算法的某些不可逆特征,在加密应用上有较好的安全性。并且,,MD5,算法的使用不需要支付任何版权费用。,说明,唯一性,和,不可逆性,都不是绝对的,从理论上分析是一种,多对一,的关系,但两个不同的信息产生相同摘要的概率很小。,不可逆,是指从输出反推输入所需的运算量和计算时间太大,使用穷搜字典的方法又需要太多的存储空间。,MD5,算法描述,算法输入是一个字节串,每个字节是,8,个,bit,。,Step1,:补位,扩展数据至,LEN=K*64+56,个字节,,K,为整数。,补位方法:,补一个,1,,然后补,0,。相当于补一个,0 x80,的字节,再补值为,0,的字节。这一步里总共补充的字节数为,0,63,个。,共六个步骤,Step2,:附加数据长度,用一个,64,位的整数表示数据的原始长度,(,以,bit,为单位,),,将这个数字的,8,个字节按,低位在前,高位在后,的顺序附加在补位后的数据后面。这时,数据被填补后的总长度为:,LEN=K*64+56+8=(K+1)*64 Bytes,。,注意:这个,64,位整数是输入数据的原始长度而不是填充字节后的长度。,Step3,:初始化,MD5,参数,有四个,32,位整数变量,(A,B,C,D),用来计算信息摘要,每一个变量被初始化成以下以十六进制数表示的数值,低位的字节在前面。,word A:01 23 45 67 word B:89,ab,cd,ef,word C:,fe,dc,ba,98 word D:76 54 32 10,注意:低位的字节在前面指的是,Little,Endian,平台上内存中字节的排列方式。,Step4,:处理位操作函数,定义四个,MD5,基本的按位操作函数:,X,,,Y,,,Z,为,32,位整数。,F(X,Y,Z)=(X and Y)or(,not(X,)and Z)G(X,Y,Z)=(X and Z)or(Y and,not(Z,)H(X,Y,Z)=X,xor,Y,xor,Z I(X,Y,Z)=Y,xor,(X or,not(Z,),再定义四个分别用于四轮变换的函数。设,Mj,表示消息的第,j,个子分组(从,0,到,15,),,s,表示循环左移,s,位,则四种操作为:,FF(a,b,c,d,Mj,s,ti,),表示,a=,b+(a+(F(b,c,d)+Mj+ti,)s),GG(a,b,c,d,Mj,s,ti,),表示,a=,b+(a+(G(b,c,d)+Mj+ti,)s),HH(a,b,c,d,Mj,s,ti,),表示,a=,b+(a+(H(b,c,d)+Mj+ti,)s),II(a,b,c,d,Mj,s,ti,),表示,a=,b+(a+(I(b,c,d)+Mj+ti,)s),Step5,:对输入数据作变换,处理数据,,N,是总的字节数,以,64,个字节为一组,每组作一次循环,每次循环进行四轮操作。要变换的,64,个字节用,16,个,32,位的整数数组,M0.15,表示。而数组,T1.64,表示一组常数,,Ti,为,4294967296*,abs(sin(i,),的,32,位整数部分,,i,的单位是弧度,,i,的取值从,1,到,64,。,具体过程如下:,/*,设置主循环变量*,/For i=0 to N/16-1 do,/*,每循环一次,把数据原文存放在,16,个元素的数组,X,中,.*/For j=0 to 15 doSet,Xj,to,Mi,*16+j.end/,结束对,J,的循环,/*Save A as AA,B as BB,C as CC,and D as DD.*/AA=ABB=BCC=CDD=D,/*,第,1,轮*,/,/*,以,abcd,k s i,表示如下操作,a=b+(a+,F(b,c,d,)+,Xk,+,Ti,)s).*/*Do the following 16 operations.*/ABCD 0 7 1 DABC 1 12 2 CDAB 2 7 3 BCDA 3 22 4ABCD 4 7 5 DABC 5 12 6 CDAB 6 7 7 BCDA 7 22 8ABCD 8 7 9 DABC 9 12 10 CDAB 10 17 11 BCDA 11 22 12ABCD 12 7 13 DABC 13 12 14 CDAB 14 17 15 BCDA 15 22 16,/*,第,2,轮*,/,/*,以,abcd,k s i,表示如下操作,a=b+(a+,G(b,c,d,)+,Xk,+,Ti,)s).*/*Do the following 16 operations.*/ABCD 1 5 17 DABC 6 9 18 CDAB 11 14 19 BCDA 0 20,20,ABCD 5 5 21 DABC 10 9 22 CDAB 15 14 23 BCDA 4 20 24ABCD 9 5 25 DABC 14 9 26 CDAB 3 14 27 BCDA 8 20 28ABCD 13 5 29 DABC 2 9 30 CDAB 7 14 31 BCDA 12 20 32,/*,第,3,轮*,/,/*,以,abcd,k s i,表示如下操作,a=b+(a+,H(b,c,d,)+,Xk,+,Ti,)s).*/*Do the following 16 operations.*/ABCD 5 4 33 DABC 8 11 34 CDAB 11 16 35 BCDA 14 23 36ABCD 1 4 37 DABC 4 11 38 CDAB 7 16 39 BCDA 10 23 40ABCD 13 4 41 DABC 0 11 42 CDAB 3 16 43 BCDA 6 23 44ABCD 9 4 45 DABC 12 11 46 CDAB 15 16 47 BCDA 2 23 48,/*,第,4,轮*,/,/*,以,abcd,k s i,表示如下操作,a=b+(a+,I(b,c,d,)+,Xk,+,Ti,)s).*/*Do the following 16 operations.*/ABCD 0 6 49 DABC 7 10 50 CDAB 14 15 51 BCDA 5 21 52ABCD 12 6 53 DABC 3 10 54 CDAB 10 15 55 BCDA 1 21 56ABCD 8 6 57 DABC 15 10 58 CDAB 6 15 59 BCDA 13 21 60ABCD 4 6 61 DABC 11 10 62 CDAB 2 15 63 BCDA 9 21 64,/*,然后进行如下操作*,/,A=A+AAB=B+BBC=C+CCD=D+DD,Next I/*,结束对,I,的循环*,/,Step6,:输出结果,A,,,B,,,C,,,D,连续存放,共,16,个字节,,128,位。按十六进制依次输出这个,16,个字节。,数字签名,问题的提出,假定,John,向,Mary,发送一个带鉴别的报文,可能会出现如下的争执:,1,、,Mary,可能伪造不同的报文,并声称它来自,John,。,Mary,只要简单地生成一个报文,并附加使用由,John,和,Mary,所共享的密钥生成的鉴别码即可。,2,、,John,可以否认发送过该报文。,因为,Mary,伪造一个报文是可能的,无法证明,John,发送过该报文这一事实。,分类,直接数字签名,功能:,鉴别、数字签名。,弱点:,(1),方案的有效性依赖于发方私钥的安全性。,(2),某个私钥真的可能在时间,T,在,X,处被盗。,(,a,),利用发送方的私钥加密,(,b,),利用发送方的私钥报文散列码加密,需仲裁的数字签名,(c),公开密钥加密,仲裁不能看到报文内容,(1)XA,:,ID,x,/E,KRx,ID,x,/E,KUy,E,KRx,M,(2)AY,:,E,KRa,ID,x,/E,KUy,E,KRx,M,/T,注:,X,发方;,Y,收方;,A,仲裁;,M,报文,(a),常规加密,仲裁能看到报文内容,(1)XA,:,M/,E,Kxa,ID,x,/H(M),(2)AY,:,E,Kay,ID,x,/M/E,Kxa,ID,x,/H(M),/T,(b),常规加密,仲裁不能看到报文内容,(1)XA,:,ID,x,/E,Kxy,M/E,Kxa,ID,x,/H(E,Kxy,M,),(2)AY,:,E,Kay,ID,x,/E,Kxy,M/E,Kxa,ID,x,/H(E,Kxy,M),/T,数字签名算法,签名算法:,RSA,、,DSA,、,MD5,、,SHA,等,验证算法,数字证书,采用公钥密码体制,如,RSA,。,格式一般采用,X.509,国际标准。,由权威公正的第三方机构即,CA,中心签发。,数字证书,数字水印,信息隐藏原理,也称为信息伪装技术,它是利用人类感觉器官对数字信号的感觉冗余,将一个消息(,秘密信息,)隐藏在另一个消息(,非秘密信息,)之中,实现隐蔽通信或隐蔽标志。,信息隐藏系统模型,特点,自恢复性:,秘密数据在一定程度破坏后,接收方仍然能恢复隐藏信息。,鲁棒性:,不因宿主文件的某种改动而导致隐藏信息丢失的能力。,安全性:,隐藏算法具有较强的抗攻击的能力,使隐藏信息不会被破坏。,不可检测性:,隐藏宿主与原始宿主具有一致的特性,使攻击者无法判断是否有隐藏信息。,透明性:,经过一系列的隐藏处理后,目标数据没有明显的降质现象,而隐藏的数据却无法人为地看见或听见。,分类,原图,数字水印,嵌入后的图像,川大一角,原图,数字水印,嵌入后的图像,
展开阅读全文