三章认证技术

上传人:壹****1 文档编号:568911069 上传时间:2024-07-27 格式:PPT 页数:34 大小:374.50KB
返回 下载 相关 举报
三章认证技术_第1页
第1页 / 共34页
三章认证技术_第2页
第2页 / 共34页
三章认证技术_第3页
第3页 / 共34页
三章认证技术_第4页
第4页 / 共34页
三章认证技术_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《三章认证技术》由会员分享,可在线阅读,更多相关《三章认证技术(34页珍藏版)》请在金锄头文库上搜索。

1、 ItLiu http:/三章认证技术Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望 ItLiu http:/本章内容本章内容3.1 3.1 报文完整性鉴别报文完整性鉴别3.2 3.2 数字签名数字签名3.3 3.3 特殊签名特殊签名3.4 3.4 身份认证身份认证 ItLiu http:/想要通过网络安全地传递数据,共享信息,有两个基本的问题想要通过网络安全地传递数据,共享信息,有两个基本的问题必须弄清楚,这就是:必须弄清楚,这就是:传递数据的人,是不是他所声称的哪个人,而不是冒

2、名者;即主体的合法性。所传递的数据,是不是原始正确数据,而没有被第三者所篡改。即客体的合法性。我们需要对主体和客体进行鉴别和认证。对数据客体的鉴别认我们需要对主体和客体进行鉴别和认证。对数据客体的鉴别认证,主要是通过证,主要是通过“报文摘要报文摘要”技术实现;对使用数据的主体的鉴别技术实现;对使用数据的主体的鉴别和认证,则主要通过数字签名、生理特征鉴别技术完成。和认证,则主要通过数字签名、生理特征鉴别技术完成。 ItLiu http:/3.1 3.1 报文完整性鉴别报文完整性鉴别报文完整性鉴别与数据加密技术的最大不同在于,加密是保护信报文完整性鉴别与数据加密技术的最大不同在于,加密是保护信息不

3、被泄密,收方往往要解密。而报文鉴别技术是为保护数据不被篡改,息不被泄密,收方往往要解密。而报文鉴别技术是为保护数据不被篡改,收方不用解密。收方不用解密。l鉴别的基本原理鉴别的基本原理发方先用某种方法(如加密方法)对传递的明文发方先用某种方法(如加密方法)对传递的明文M M生成一个小的数生成一个小的数据块据块F(M)F(M),然后追加在明文,然后追加在明文M M或密文或密文C C的后面一道传送。收方对收到的信的后面一道传送。收方对收到的信息将明文息将明文M M(或密文(或密文C C)和加密块)和加密块F(M)F(M)分开,然后用相同的方法对明文分开,然后用相同的方法对明文M M生成一个小的数据块

4、生成一个小的数据块F(M)F(M),然后将收到的数据块,然后将收到的数据块F(M)F(M)与计算出的数与计算出的数据块据块F(M)F(M)进行比较,若相等,则说明数据完整,没有受到攻击者的篡改;进行比较,若相等,则说明数据完整,没有受到攻击者的篡改;否则,说明传送的信息遭到了攻击者的篡改。否则,说明传送的信息遭到了攻击者的篡改。 ItLiu http:/l提供报文鉴别的算法提供报文鉴别的算法前面的原理讲到鉴别函数前面的原理讲到鉴别函数F,它只给出了基本加密功能,没有,它只给出了基本加密功能,没有给出具体的算法,我们现在就介绍标准与算法。给出具体的算法,我们现在就介绍标准与算法。一、杂凑函数一、

5、杂凑函数(Hash Function)杂凑函数也叫杂散函数、压缩函数。杂凑函数也叫杂散函数、压缩函数。l概念概念:杂凑函数:杂凑函数H是一个公开函数,用于将任意长度的报文是一个公开函数,用于将任意长度的报文M映射为映射为较短的定长值较短的定长值H(M),作为认证符。称函数值,作为认证符。称函数值H(M)为杂凑值、杂凑为杂凑值、杂凑码或报文摘要。码或报文摘要。l特性特性:改变报文中任一比特或几个比特,杂凑码都会发生变化。可以用它来检测报文的完整性,保证报文从开始建立到传输到目的用户,始终没有被篡改或破坏。运行相同算法的报文接收者,应该得到相同的杂凑码,否则收到的报文不可信。 ItLiu http

6、:/l杂凑函数的特点杂凑函数的特点:杂凑函数必须具备以下特点:杂凑函数必须具备以下特点:可对任意长度的报文进行运算;输出的杂凑码长度值固定;给定M,很容易计算出H(m);给定H(m),很难求出M;给定M,要找到另一个M并满足H(M)=H(M)很难;要找出两个随机的报文M和M,使H(M)=H(M)很难。前三条是满足完整性鉴别的条件,随后两条是满足单向函数需要,前三条是满足完整性鉴别的条件,随后两条是满足单向函数需要,最后一条是抗碰撞攻击的需要,即用于阻止最后一条是抗碰撞攻击的需要,即用于阻止“生日攻击生日攻击”。 ItLiu http:/二、二、生日攻击生日攻击生日攻击源于生日问题:有多少人在一

7、起,能使两个人的生日生日攻击源于生日问题:有多少人在一起,能使两个人的生日相同(指月、日相同)的概率不小于相同(指月、日相同)的概率不小于50%?我们来求解一下:令?我们来求解一下:令Pm为为m个人在一起,不存在相同生日的概率,则个人在一起,不存在相同生日的概率,则m-1个人中无相同生日个人中无相同生日的概率为的概率为Pm-1,第,第m个人与另外个人与另外m-1个人无相同生日的概率应为个人无相同生日的概率应为 365-(m-1)/365=(366-m)/365。递推得:。递推得:Pm = (366-m)/365 *Pm-1、 P1 = 1P2 = (366-2)/365*P1 = 364/36

8、5P3 = 363/365*P2 = (1/3652)*(364!/362!)P4 = 362/365*P3 = (1/3653)*(364!/361!)Pm = (1/365m-1)*(364!/(365-m)!)不难验证,当不难验证,当m23时,时,Pm 217 (217=131072)时,时,Pm50% ,则有相同的,则有相同的0,1符号串的符号串的概率超过概率超过50% 。 ItLiu http:/生日攻击便是根据这一原理,若攻击者为被攻击者杜撰一份文件,生日攻击便是根据这一原理,若攻击者为被攻击者杜撰一份文件,在不改变原文原意的前提下,行文可以有很多无关紧要的小差别,假在不改变原文原

9、意的前提下,行文可以有很多无关紧要的小差别,假设有设有16处这样的差别,于是有处这样的差别,于是有216种不同的文件,令这样文件的杂凑码种不同的文件,令这样文件的杂凑码的集合为的集合为A。攻击者再杜撰另一份文件,关键的信息意义相反,但也有攻击者再杜撰另一份文件,关键的信息意义相反,但也有16处无处无关紧要的小差别。也有关紧要的小差别。也有216个这样的文件,设这些文件的杂凑码的集合个这样的文件,设这些文件的杂凑码的集合为为B。A与与B的全体为的全体为32位的位的0,1符号串,共符号串,共2*216=217个。根据生日问题的个。根据生日问题的结果,以结果,以50%的概率存在两个相同的符号串。若一

10、个在的概率存在两个相同的符号串。若一个在A,另一个在,另一个在B,攻击者便可以用,攻击者便可以用B中对应的文件取代中对应的文件取代A中的文件,达到攻击的目的。中的文件,达到攻击的目的。比直接找一攻击文件,和确定的文件有相同的比直接找一攻击文件,和确定的文件有相同的H(M)要简单。要简单。 ItLiu http:/三、三、一个简单的杂凑函数一个简单的杂凑函数这里介绍一个简单的杂凑函数。它将报文分成这里介绍一个简单的杂凑函数。它将报文分成n比特长的分组,然比特长的分组,然后将个分组的相同比特按位求异或,即后将个分组的相同比特按位求异或,即Ci = bi1bbi2i2bbimim,其中,其中C Ci

11、 i为为杂凑码的第杂凑码的第i i位,位,1in1in,m m为报文的分组数为报文的分组数( (每块每块n n比特比特) ),b bijij为第为第j j个分个分组的第组的第i i位,位,为异或操作。为异或操作。 这种方法对每一个比特都产生一个简单的奇偶校验位。如果报文内这种方法对每一个比特都产生一个简单的奇偶校验位。如果报文内容是随机的,该函数能有效地检查数据完整性,每一个容是随机的,该函数能有效地检查数据完整性,每一个n n位杂凑值是均匀位杂凑值是均匀的,因而一个数据错误导致两个杂凑值相同的概率为的,因而一个数据错误导致两个杂凑值相同的概率为2 2-n-n。如果报文内容。如果报文内容不随机

12、,如英文文本文件,每一个字节的高位总是不随机,如英文文本文件,每一个字节的高位总是0 0,如果使用的杂凑码,如果使用的杂凑码是是128128位,则对这种数据的有效性不是位,则对这种数据的有效性不是2 2-128-128,而是,而是2 2-112-112。杂凑函数操作功能表杂凑函数操作功能表比特比特1比特比特2比特比特n分组分组1b11b21bn1分组分组2b12b22bn2分组分组mb1nb2nbnm杂凑码杂凑码c1c2cn ItLiu http:/这种方法提供了很好的完整性检测,但不具有安全性保护。这种方法提供了很好的完整性检测,但不具有安全性保护。l数据块链技术数据块链技术:使用杂凑函数时

13、,也可以采用象:使用杂凑函数时,也可以采用象MAC码那样形成一码那样形成一个数据链,不同之处在于,它不要密钥。设明文信息为个数据链,不同之处在于,它不要密钥。设明文信息为M,将,将M分分成大小相等的数据块,它们分别为成大小相等的数据块,它们分别为M1,M2,Mn,然后执行以下操,然后执行以下操作:作:H0 = 初始值初始值Hi = Em(Hi-1)G = Hn常见的杂凑算法有常见的杂凑算法有MD5,SHA,HMAC等方法,下面分别介绍。等方法,下面分别介绍。 ItLiu http:/lMD5杂凑算法杂凑算法MD (Message Digest)意为报文摘要。由意为报文摘要。由Ron River

14、st 于于1990年年作为作为RFC提出,提出,1992年年RFC 1320,1321公布了公布了MD5算法的细节。算法的细节。其功能是将不定长的报文加密成定长的其功能是将不定长的报文加密成定长的“报文摘要报文摘要”。l算法描述算法描述:MD5算法如下图示。其输入为任意长度的报文算法如下图示。其输入为任意长度的报文(图中用图中用k比特表示比特表示),分为,分为512比特长的分组,输出为比特长的分组,输出为128比特长的报文摘要。比特长的报文摘要。 ItLiu http:/lMD5的处理过程的处理过程:1)报文分组,填充报文报文分组,填充报文:先将报文:先将报文M按按512位分组,最后一组必须是

15、位分组,最后一组必须是448位,不足部分填充至位,不足部分填充至448位。填充内容是位。填充内容是“100000“(如果(如果报文刚好分成报文刚好分成512位的整数组,也必须增加位的整数组,也必须增加448位的填充位)。在位的填充位)。在448位后再追加位后再追加64位的附加报文长度,留作下一步使用;位的附加报文长度,留作下一步使用;2)填写报文原始长度填写报文原始长度:在上一步最后一组末:在上一步最后一组末64位的附加报文长度中位的附加报文长度中以以little-endian方式来表示报文的原始长度。如果原始报文长度大于方式来表示报文的原始长度。如果原始报文长度大于264,则以,则以264为

16、模取余填写。为模取余填写。Little-endian指按数据的最低有效位优先指按数据的最低有效位优先(存于低地址)的原则填写(相反的操作叫(存于低地址)的原则填写(相反的操作叫big-endian)。)。至此,报文的长度为至此,报文的长度为512位的整数倍(设为位的整数倍(设为L倍),即将报文分倍),即将报文分成了成了L个分组:个分组:Y0,Y1,YL-1,每一个分组又可表示为,每一个分组又可表示为16个个32位长的位长的字。这样,报文中的总字数字。这样,报文中的总字数N=L*16,因此报文又可以按字表示为,因此报文又可以按字表示为M0,1,N-1。 ItLiu http:/3)初始化初始化M

17、DMD缓冲区缓冲区:算法使用了一个:算法使用了一个128128位的缓冲区,以存储中间结果位的缓冲区,以存储中间结果和最终杂凑码,缓冲区分为和最终杂凑码,缓冲区分为4 4个个3232位长的寄存器位长的寄存器A,B,C,DA,B,C,D。其初值分别取。其初值分别取为:为:A=01234567,B=89ABCDEF,C=FEDCBA98,D=76543210A=01234567,B=89ABCDEF,C=FEDCBA98,D=765432104 4)处理报文分组处理报文分组:每一分组:每一分组Y Yq q(q=0,1,L-1)(q=0,1,L-1)都经过一个逻辑函数处都经过一个逻辑函数处理,四轮处理

18、相似,下图是它的逻辑图。理,四轮处理相似,下图是它的逻辑图。每轮的输入是当前处理的每轮的输入是当前处理的512512位长的报文分组位长的报文分组Y Yq q和缓冲区的当前和缓冲区的当前值值A,B,C,DA,B,C,D。每轮结构一样,但逻。每轮结构一样,但逻辑函数不同,分别为辑函数不同,分别为F,G,H,IF,G,H,I。每。每轮处理还要加上常数表轮处理还要加上常数表T T中中1616个元个元素,素,Ti=2Ti=23232*abs(sin(i)*abs(sin(i)的整数的整数部分。第部分。第4 4轮的轮的输出再与第输出再与第1 1轮的输入作模轮的输入作模3232位相位相加,结果就是杂凑函数加

19、,结果就是杂凑函数H HMD5MD5的输出。的输出。 ItLiu http:/5)输出:报文的L个分组都被处理完后,最后一个HMD5产生的输出就是报文的摘要,即MD5杂凑码。步骤3)到步骤5)的处理过程用数学形式表示为:CV0 = IVCVq+1 = CVq+RF1(Yq,RFH(Yq,RFG(Yq,RFF(Yq,CVq)MD = CVL其中,IV是步骤3)所取的缓冲区ABCD的初值,Y 是报文的第q个512位长的分组,L是报文经过步骤1)和步骤2)处理过的分组数,CVq为处理报文的第q个分组时输入的链接变量(即前一轮压缩函数的输出),RFx为使用基本逻辑函数x的轮函数,+为字加,即模32加。

20、MD为最终输出的MD5杂凑码。 ItLiu http:/lMD5 的杂凑函数的杂凑函数:杂凑函数(也叫压缩函数)杂凑函数(也叫压缩函数)HMD5中有中有4轮处理过程,每轮又轮处理过程,每轮又对缓冲区对缓冲区ABCD进行进行16步迭代,每一步的运算形式为:步迭代,每一步的运算形式为:a b+CLSg(a+g(b,c,d)+Xk+Ti)其中其中a,b,c,d为缓冲区的为缓冲区的4个字,运个字,运算算完成后再右循环一个字,即得完成后再右循环一个字,即得这一步迭代的输出。这一步迭代的输出。g是基本逻辑是基本逻辑函数函数F,G,H,I之一。之一。清清g(也叫(也叫CLSg)是左循环移)是左循环移s位,位

21、,s的取值参见下一的取值参见下一PPT。Xi = Mq*16+i,即第,即第q个报文分个报文分组的第组的第i个字个字(i=1,2,16)。 ItLiu http:/设设Mj表示消息的第表示消息的第j个子分组(从个子分组(从0到到15)l第一轮第一轮FF(a,b,c,d,M0,7,0xd76aa478)FF(d,a,b,c,M1,12,0xe8c7b756)FF(c,d,a,b,M2,17,0x242070db)FF(b,c,d,a,M3,22,0xc1bdceee)FF(a,b,c,d,M4,7,0xf57c0faf)FF(d,a,b,c,M5,12,0x4787c62a)FF(c,d,a,b

22、,M6,17,0xa8304613)FF(b,c,d,a,M7,22,0xfd469501)FF(a,b,c,d,M8,7,0x698098d8)FF(d,a,b,c,M9,12,0x8b44f7af)FF(c,d,a,b,M10,17,0xffff5bb1)FF(b,c,d,a,M11,22,0x895cd7be)FF(a,b,c,d,M12,7,0x6b901122)FF(d,a,b,c,M13,12,0xfd987193)FF(c,d,a,b,M14,17,0xa679438e)FF(b,c,d,a,M15,22,0x49b40821)l第二轮第二轮GG(a,b,c,d,M1,5,0xf

23、61e2562)GG(d,a,b,c,M6,9,0xc040b340)GG(c,d,a,b,M11,14,0x265e5a51)GG(b,c,d,a,M0,20,0xe9b6c7aa)GG(a,b,c,d,M5,5,0xd62f105d)GG(d,a,b,c,M10,9,0x02441453)GG(c,d,a,b,M15,14,0xd8a1e681)GG(b,c,d,a,M4,20,0xe7d3fbc8)GG(a,b,c,d,M9,5,0x21e1cde6)GG(d,a,b,c,M14,9,0xc33707d6)GG(c,d,a,b,M3,14,0xf4d50d87)GG(b,c,d,a,M8

24、,20,0x455a14ed)GG(a,b,c,d,M13,5,0xa9e3e905)GG(d,a,b,c,M2,9,0xfcefa3f8)GG(c,d,a,b,M7,14,0x676f02d9)GG(b,c,d,a,M12,20,0x8d2a4c8a) ItLiu http:/l第三轮第三轮HH(a,b,c,d,M5,4,0xfffa3942)HH(d,a,b,c,M8,11,0x8771f681)HH(c,d,a,b,M11,16,0x6d9d6122)HH(b,c,d,a,M14,23,0xfde5380c)HH(a,b,c,d,M1,4,0xa4beea44)HH(d,a,b,c,M4

25、,11,0x4bdecfa9)HH(c,d,a,b,M7,16,0xf6bb4b60)HH(b,c,d,a,M10,23,0xbebfbc70)HH(a,b,c,d,M13,4,0x289b7ec6)HH(d,a,b,c,M0,11,0xeaa127fa)HH(c,d,a,b,M3,16,0xd4ef3085)HH(b,c,d,a,M6,23,0x04881d05)HH(a,b,c,d,M9,4,0xd9d4d039)HH(d,a,b,c,M12,11,0xe6db99e5)HH(c,d,a,b,M15,16,0x1fa27cf8)HH(b,c,d,a,M2,23,0xc4ac5665)l第四

26、轮第四轮II(a,b,c,d,M0,6,0xf4292244)II(d,a,b,c,M7,10,0x432aff97)II(c,d,a,b,M14,15,0xab9423a7)II(b,c,d,a,M5,21,0xfc93a039)II(a,b,c,d,M12,6,0x655b59c3)II(d,a,b,c,M3,10,0x8f0ccc92)II(c,d,a,b,M10,15,0xffeff47d)II(b,c,d,a,M1,21,0x85845dd1)II(a,b,c,d,M8,6,0x6fa87e4f)II(d,a,b,c,M15,10,0xfe2ce6e0)II(c,d,a,b,M6,1

27、5,0xa3014314)II(b,c,d,a,M13,21,0x4e0811a1)II(a,b,c,d,M4,6,0xf7537e82)II(d,a,b,c,M11,10,0xbd3af235)II(c,d,a,b,M2,15,0x2ad7d2bb)II(b,c,d,a,M9,21,0xeb86d391) ItLiu http:/4轮中不同的逻辑函数轮中不同的逻辑函数F,G,H,I的定义以及它们的真值表见下表。的定义以及它们的真值表见下表。MD5定义的逻辑函数定义的逻辑函数轮数轮数非线性函数非线性函数函数表达式函数表达式第一轮第一轮(1i16)F(B,C,D)(B C) (B) D)第二轮第

28、二轮(17i32)G(B,C,D)(B D) (C (D) )第三轮第三轮(33i48)H(B,C,D)BCD第四轮第四轮(49i64)I(B,C,D)C(B(B (D)MD5逻辑函数真值表逻辑函数真值表输入输入输出输出BCDFGHI00000010011010010011001110011000011101010111011001111110 ItLiu http:/lMD5的安全性的安全性:MD5有这样一个性质,杂凑码中的每一个比特都是所有输入比有这样一个性质,杂凑码中的每一个比特都是所有输入比特的函数,因此获得了很好的混淆效果,从而不可能随机选择两个特的函数,因此获得了很好的混淆效果,从

29、而不可能随机选择两个具有相同杂凑码的报文。比如说,找出两个具有相同杂凑码的报文具有相同杂凑码的报文。比如说,找出两个具有相同杂凑码的报文需要执行需要执行O(264)次运算;而寻找具有给定杂凑码的一个报文,要执行次运算;而寻找具有给定杂凑码的一个报文,要执行O(2128)次运算。次运算。但从密码分析的角度来看,若用穷尽搜索方法,需进行但从密码分析的角度来看,若用穷尽搜索方法,需进行O(264) 次运算,但用第次运算,但用第类生日攻击,分析所需时间要短得多。因此认为类生日攻击,分析所需时间要短得多。因此认为MD5易受第易受第类生日攻击的威胁。类生日攻击的威胁。 ItLiu http:/3.2 2

30、数字签名数字签名(Digital Signature)(Digital Signature)在生活中,许多事务的处理需要当事者签名。签名起到认证、核在生活中,许多事务的处理需要当事者签名。签名起到认证、核准的作用。实质上,签名是证明当事者身份与数据真实性的一种信准的作用。实质上,签名是证明当事者身份与数据真实性的一种信息。它可以用不同的形式来表示。传统的表示形式有手签、印章和息。它可以用不同的形式来表示。传统的表示形式有手签、印章和指印,而以计算机网络为基础的事务中,采用数字签名的表示形式。指印,而以计算机网络为基础的事务中,采用数字签名的表示形式。完善的签名必须满足以下三个条件:完善的签名必

31、须满足以下三个条件:n签名者事后无法否认自己的签名;n第三者无法伪造签名;n收方无法伪造一份文件,声称来自发方。在书面签名中在书面签名中, ,文件内容和签名是分离的。而数字签名则不同,文件内容和签名是分离的。而数字签名则不同,它们可以彼此分离,也可以融为一体,即经过签名变换后的文件内它们可以彼此分离,也可以融为一体,即经过签名变换后的文件内容和签名形成一个整体数据。容和签名形成一个整体数据。利用非对称密码体制或对称密码体制均可获得数字签名。下面分利用非对称密码体制或对称密码体制均可获得数字签名。下面分别介绍。别介绍。 ItLiu http:/l基于非对称密码体制的数字签名基于非对称密码体制的数

32、字签名签名原理:设M,C,E,D,K=(Ke,Kd)是一个公开密钥体制,如果对于全体明文M都有E(D(C,Kd),Ke) = C则称可确保数据的安全性。进而如果D(E(M,Ke),Kd) = E(D(M,Kd),Ke) = M则可同时确保数据的安全性和真实性。凡能确保数据真实性的公开密钥体制都可用来作为数字签名。如RSA密码。为了获得数字签名,当事双方首先应达成书面协议,确定签名的产生、验证方法及如何解决纠纷等事宜。4-23 ItLiu http:/通信过程:设用户设用户A将文件签名,然后发送给用户将文件签名,然后发送给用户B。其过程如下:。其过程如下:A、B都将自己的公开密钥公开登记,以此作

33、为对方及仲裁方验证签名的依据之一。A用自己的私密密钥KdA对明文M进行签名:SA = D(M,KdA)SA即为即为A对对M的签名。注意,这里签名与明文已经揉合成一个整体。的签名。注意,这里签名与明文已经揉合成一个整体。若不需保密,则可将若不需保密,则可将SA发给发给B。若需要保密,则从公钥库中查到。若需要保密,则从公钥库中查到B的的公开密钥公开密钥KeB,用,用KeB对对SA进行加密:进行加密:C = E(SA,KeB)最后最后A将将C发给发给B,A保留保留SA或或C。B收到密文后,若没加密,则用A的公开密钥KeA对签名进行验证:E(SA,KeA) = E(D(M,KdA), KdA)= P

34、ItLiu http:/若是加密的保密通信,则先解密再验证签名:若是加密的保密通信,则先解密再验证签名:D(C,KdB) = D(E(SA,KeB),KdB) = SAE(SA,KeA) = E(D(M,KdA),KeA) = M验证签名的过程即为恢复明文的过程。如能恢复出正确的验证签名的过程即为恢复明文的过程。如能恢复出正确的M,则说明,则说明SA是是A的签名,否则的签名,否则SA不是不是A的签名。的签名。然后然后B发回发回A“收到收到M”签名信息,将收到的签名信息,将收到的SA或或C留底备查。留底备查。A收到回执后,同样验证签名,以确收到的确实是认是B的回执,也留底备查。由于只有由于只有A

35、拥有拥有KdA,而且由公开的,而且由公开的KeA去计算去计算KdA在计算上不可行,在计算上不可行,因此签名操作只有因此签名操作只有A能进行,任何其他人均无法操作。因此,能进行,任何其他人均无法操作。因此,KdA相当相当于于A的印章或指纹,而的印章或指纹,而SA就相当于就相当于A的签名。的签名。事后,如果事后,如果A、B就签名的真伪发生争执,可向公正的仲裁者出示自就签名的真伪发生争执,可向公正的仲裁者出示自己留底的签名数据,并由仲裁者当众验证签名。如果能够恢复出正确己留底的签名数据,并由仲裁者当众验证签名。如果能够恢复出正确的明文,则说明是的明文,则说明是A的签名,否则不是。从而判断谁在抵赖或撒

36、谎。的签名,否则不是。从而判断谁在抵赖或撒谎。 ItLiu http:/l注意事项注意事项:1)B事先不知道事先不知道A的明文的明文M,那么,那么B怎样判断恢复出的明文怎样判断恢复出的明文M正确正确与否呢?与否呢?2)这样阻止)这样阻止B或或A用用A以前发给以前发给B的签名报文,或用的签名报文,或用A发给其他人的发给其他人的签名报文来伪造、冒充当前签名报文来伪造、冒充当前A发给发给B的签名报文呢?的签名报文呢?签名本身不能解决这个问题。但只要合理设计明文格式便可解签名本身不能解决这个问题。但只要合理设计明文格式便可解决这些问题。所以,明文格式应是签名协议的内容之一,一种可行决这些问题。所以,明

37、文格式应是签名协议的内容之一,一种可行的明文格式如下:的明文格式如下:明文明文 = 形式上,可将形式上,可将A发给发给B的第的第i份报文表示为:份报文表示为:M = (A,B,i,T,D,C),将附加报头信息记为:将附加报头信息记为:M1 = (A,B,i)。A发给发给B的最终报文为的最终报文为M1,M,其中,其中M1为明文形式,为明文形式,M为密文形式,这就可避免上述第二中情况。为密文形式,这就可避免上述第二中情况。 ItLiu http:/lEl Gamal 签名签名:El Gamal 方法是一种比较经典的数字签名方法。其合理性依赖方法是一种比较经典的数字签名方法。其合理性依赖于计算有限域

38、上离散对数的困难性。于计算有限域上离散对数的困难性。1)准备:选择一素数)准备:选择一素数p,m是明文,是明文,mGF(p),0mp-1,选择选择GF(p)上的本原元上的本原元g。系统的。系统的p,g是公开的。用户是公开的。用户A任选一数任选一数rAGF(p),计算,计算kA grA mod p 。 kA作为公钥公开。作为公钥公开。rA是是A的私钥,由的私钥,由A保密。保密。设为了对信息设为了对信息m进行签名,发送方进行签名,发送方A选一选一sGF(p),要求,要求gcd(s,p-1) = 1。2)签名:计算)签名:计算 W = gs mod p,由,由m = rW+sV mod (p-1)解

39、出解出V,A将将(W,V) 作为作为m的数字签名,即将的数字签名,即将 (m,W,V) 发送给收方发送给收方B。3)验证:收方)验证:收方B收到明文和签名后,便验证:收到明文和签名后,便验证:gm kAW * WV mod (p-1)若该等式成立,便接收若该等式成立,便接收(m,W,V),若不成立,说明签字无效,拒,若不成立,说明签字无效,拒收收(m,W,V)。这是因为:。这是因为:gm grW+sV kAW * WV mod p ItLiu http:/l示例:示例:1)准备:已知)准备:已知p=11,GF(11)的本原元有的本原元有2,6,7,8。取。取 g = 7 ,rA = 3,则公钥

40、则公钥kA grA mod p 73 mod 11 2。故公钥集:。故公钥集:(kA,g,p) = (2,7,11)若若m=6,选,选s = 7,满足,满足 gcd(s, p-1) = gcd(7, 10) = 1。2)签名:)签名:W gs mod p 77 mod 11 6由由 m rAW+sV mod (p-1),即,即 6 3*6+7*V mod 10 解得:解得:7V-12 8,V7-1*8 mod 10,而,而7-1 3,故,故V 4。密文集密文集(m,W,V) = (6,6,4)3)验证:确认下式是否成立:)验证:确认下式是否成立:gm = kAWWV mod p左边左边 = g

41、m = 76 mod 11 = 4,右边右边 = kWWV mod p = 2664 mod 11 = 4签名有效,接收原文签名有效,接收原文6。 ItLiu http:/l数字签名标准数字签名标准(Digital Signature Standard-DSS)在许多情况下,一个报文可能只需要加密解密一次。所以,当报在许多情况下,一个报文可能只需要加密解密一次。所以,当报文需要加密时,可以使用任何已知是安全的密码体制就够了。而签名文需要加密时,可以使用任何已知是安全的密码体制就够了。而签名则不同,签名的报文能使合法文件有效,所以在报文签名后人们非常则不同,签名的报文能使合法文件有效,所以在报文

42、签名后人们非常希望很多年以后仍然可以用来验证这个签名。所以,重要的是采取更希望很多年以后仍然可以用来验证这个签名。所以,重要的是采取更多的预防措施来考虑签名方案的安全性,而不是密码体制的安全性。多的预防措施来考虑签名方案的安全性,而不是密码体制的安全性。美国数字签名标准美国数字签名标准DDS公布与公布与1994年。是一种基于非对称密码体年。是一种基于非对称密码体制的签名方法。它包含发送者的签名和接收者的验证两部分。该方案制的签名方法。它包含发送者的签名和接收者的验证两部分。该方案有利于签名者的计算,因此适用于向智能卡那样的应用系统,即签名有利于签名者的计算,因此适用于向智能卡那样的应用系统,即

43、签名者(智能卡)的计算能力较低且计算时间要短,而签名的验证者(银者(智能卡)的计算能力较低且计算时间要短,而签名的验证者(银行的中央计算机)计算能力较强。行的中央计算机)计算能力较强。 ItLiu http:/3.3 3.3 特殊签名特殊签名下面介绍几种特殊的签名技术下面介绍几种特殊的签名技术l盲签名(盲签名(Blind SignatureBlind Signature)一般数字签名中,总是先知道文件内容后才签名。但有时我们需要一般数字签名中,总是先知道文件内容后才签名。但有时我们需要对某个文件签名,但又不能知道文件内容,这就是盲签名。对某个文件签名,但又不能知道文件内容,这就是盲签名。盲签名

44、的目的是保护签名者的匿名性。例如,对于电子货币,银行盲签名的目的是保护签名者的匿名性。例如,对于电子货币,银行需要对其签名,以保证货币的合法性。同时用户有不希望银行知道这张需要对其签名,以保证货币的合法性。同时用户有不希望银行知道这张货币在谁的手上,从而追踪出他怎样花钱。货币在谁的手上,从而追踪出他怎样花钱。盲签名的基本原理是对签名者盲签名的基本原理是对签名者B B隐藏被签内容,同时给签名持有者隐藏被签内容,同时给签名持有者A A施加一定的制约,使其很难作弊。方法为:施加一定的制约,使其很难作弊。方法为:(1 1)A A将欲签名的明文乘上一个随机数,称为盲因子(将欲签名的明文乘上一个随机数,称

45、为盲因子(Blinding Factor Blinding Factor ),形成密文,从而不让),形成密文,从而不让B B知道明文内容。知道明文内容。(2 2)为了防止)为了防止A A欺诈,欺诈,B B要求要求A A提供提供n n个相同内容但分别乘以不同盲因子的个相同内容但分别乘以不同盲因子的密文。密文。(3 3)B B随机抽取其中的随机抽取其中的n-1n-1个密文,要求个密文,要求A A提供相应的盲因子,以检查内提供相应的盲因子,以检查内容的合法性。容的合法性。(4 4)若检查无误,)若检查无误,B B对剩余的那个进行签名,并返回给对剩余的那个进行签名,并返回给A A。(5 5)A A在消

46、去盲因子之后,便获得了在消去盲因子之后,便获得了B B签名的明文。签名的明文。经过上述步骤,经过上述步骤,B B不知道所签内容,不知道所签内容,A A作弊成功的可能性只有作弊成功的可能性只有1/n1/n。这。这种方式称之为分割种方式称之为分割- -选择(选择(cut-and-choosecut-and-choose)机制。)机制。 ItLiu http:/l群签名群签名在协同工作环境中,有时需要进行群签名在协同工作环境中,有时需要进行群签名(Group Signature),让群,让群成员代表整个群产生签名。成员代表整个群产生签名。实际生活中,群签名有许多应用范围。例如,可以应用到实际的招实际

47、生活中,群签名有许多应用范围。例如,可以应用到实际的招投标工作中。所有的公司应邀参加投标,每个公司都匿名地采用群签名投标工作中。所有的公司应邀参加投标,每个公司都匿名地采用群签名的方式对自己公司的标书签名。事后当甲方选中了一个满意的标书,就的方式对自己公司的标书签名。事后当甲方选中了一个满意的标书,就可识别出签名的公司,而其他标书仍保持匿名。中标者若想反悔也无济可识别出签名的公司,而其他标书仍保持匿名。中标者若想反悔也无济于事,因为在没有他参加下仍可以正确地识别出他的签字。于事,因为在没有他参加下仍可以正确地识别出他的签字。群签名具有以下性质:群签名具有以下性质:(1)只有群成员才能签名;)只

48、有群成员才能签名;(2)验证者可确认签名是否来自这个群;)验证者可确认签名是否来自这个群;(3)验证者没法确定究竟是群的哪个成员实施的签名(匿名性);)验证者没法确定究竟是群的哪个成员实施的签名(匿名性);(4)当有争议时,可由群成员或第三方可信赖机构识别出群签名的签)当有争议时,可由群成员或第三方可信赖机构识别出群签名的签字者(审计性)。字者(审计性)。 ItLiu http:/3.4 身份认证身份认证除了进行信息认证和数字签名外,还要进行身份认证,即对数除了进行信息认证和数字签名外,还要进行身份认证,即对数据来源的可靠性,通信实体的真实性加以认证。以防止欺骗和伪装据来源的可靠性,通信实体的

49、真实性加以认证。以防止欺骗和伪装等攻击。等攻击。比如,比如,A、B两个网络用户,想通过网络先建立安全的共享密钥,两个网络用户,想通过网络先建立安全的共享密钥,再进行保密通信。那么再进行保密通信。那么A如何确定自己正在和如何确定自己正在和B通信,而不是和假冒通信,而不是和假冒B的第三者的第三者C通信呢?反过来,通信呢?反过来, B又如何确定自己正在和又如何确定自己正在和A通信,而通信,而不是和假冒不是和假冒A的第三者的第三者C通信呢?这种通信方式为双向通信,此时的通信呢?这种通信方式为双向通信,此时的身份认证称为相互认证。类似地,对于单向通信来说,认证就是单身份认证称为相互认证。类似地,对于单向

50、通信来说,认证就是单向认证。向认证。数字签名能保证信息确实是从对方发出的,但不能判别是新鲜数字签名能保证信息确实是从对方发出的,但不能判别是新鲜的数据还是旧数据的重放,而身份认证就能解决这一问题。即确认的数据还是旧数据的重放,而身份认证就能解决这一问题。即确认数据来源的可靠性和实时性。防止假冒和重放的攻击。数据来源的可靠性和实时性。防止假冒和重放的攻击。 ItLiu http:/l相互认证相互认证相互认证的主要功能是,满足参与网络通信双方达到相互识别与相互认证的主要功能是,满足参与网络通信双方达到相互识别与交换会话。手段不外乎是加密通信。但事情远不是这样简单。通信双方交换会话。手段不外乎是加密

51、通信。但事情远不是这样简单。通信双方A、B在建立共享密钥时需要考虑的核心问题是保密性和实时性。在建立共享密钥时需要考虑的核心问题是保密性和实时性。保密性:保密性是防止传递会话密钥时的泄密和伪造。采用的措施就是以密文的形式传递密钥。所以,A、B双方事先必须有对称密钥体制的会话密钥或非对称密码体制的公钥。实时性:实时性是为了方式报文的重放攻击。所谓重放,就是攻击者将某一方传递的信息复制下来,过一段时间再向对方重放。重放攻击可以使攻击者得到会话密钥,进而解密双方交流的全部报文。防止重放攻击的手段主要有两种:时间戳方法和询问-应答方法。下面分别介绍。 ItLiu http:/l时间戳方法时间戳方法:生

52、活中,发一封平信,本地邮局会在信封上加盖一邮戳,:生活中,发一封平信,本地邮局会在信封上加盖一邮戳,然后转发到目的地,目的地邮局也会在信封上加盖一邮戳,然后有邮递然后转发到目的地,目的地邮局也会在信封上加盖一邮戳,然后有邮递员交到收件人的手中。标有收件时间和投递时间的邮戳,就是时间戳的员交到收件人的手中。标有收件时间和投递时间的邮戳,就是时间戳的一种形式。一种形式。借助这种思想,网络通信双方的报文也附加上时间信息,即时间借助这种思想,网络通信双方的报文也附加上时间信息,即时间戳。在双方主机的时钟同步一致的前提下,接收报文的用户可以将报文戳。在双方主机的时钟同步一致的前提下,接收报文的用户可以将

53、报文中时间戳标记的时间和自己机器的时间相比较,如果相差不大,充分接中时间戳标记的时间和自己机器的时间相比较,如果相差不大,充分接近,则认为收到的报文是新的并接收之;如果两者时间相差很大,则有近,则认为收到的报文是新的并接收之;如果两者时间相差很大,则有理由认为是重放信息,便弃之不用。理由认为是重放信息,便弃之不用。时间戳方法只能用于无连接的通信,而不能用于面向连接的通信。时间戳方法只能用于无连接的通信,而不能用于面向连接的通信。首先因为要做到不同处理器时钟同步,所用协议必须是容错的,以处理首先因为要做到不同处理器时钟同步,所用协议必须是容错的,以处理网络错误;并且是安全的,以对付恶意攻击。第二,双方时钟若偶然出网络错误;并且是安全的,以对付恶意攻击。第二,双方时钟若偶然出现不同步,则正确的信息可能会被误判为重放信息而丢弃,错误的重放现不同步,则正确的信息可能会被误判为重放信息而丢弃,错误的重放信息可能会当作最新信息而接收。信息可能会当作最新信息而接收。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号