消息认证与数字签名优秀课件

上传人:ni****g 文档编号:575377792 上传时间:2024-08-18 格式:PPT 页数:81 大小:563KB
返回 下载 相关 举报
消息认证与数字签名优秀课件_第1页
第1页 / 共81页
消息认证与数字签名优秀课件_第2页
第2页 / 共81页
消息认证与数字签名优秀课件_第3页
第3页 / 共81页
消息认证与数字签名优秀课件_第4页
第4页 / 共81页
消息认证与数字签名优秀课件_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《消息认证与数字签名优秀课件》由会员分享,可在线阅读,更多相关《消息认证与数字签名优秀课件(81页珍藏版)》请在金锄头文库上搜索。

1、消息认证与数字签名1第五章消息认证与数字签名消息认证与数字签名2问题的提出问题的提出通信威胁1. 泄露:把消息内容发布给任何人或没有合法密钥的进程。2. 伪造:从一个假冒信息源向网络中插入消息。3. 内容修改:消息内容被插入删除变换修改。4. 顺序修改:插入删除或重组消息序列。5. 时间修改:消息延迟或重放。6. 否认:接受者否认收到消息,发送者否认发送过消息。消息认证与数字签名3回顾与总结回顾与总结v回顾n对称密码算法l运算速度快、密钥短、多种用途(随机数产生、Hash函数)、历史悠久l密钥管理困难(分发、更换)n非对称密码算法l只需保管私钥、可以相当长的时间保持不变、需要的数目较小l运算速

2、度慢、密钥尺寸大、历史短消息认证与数字签名4v信息安全的需求n保密性(Confidentiality)n完整性(Integrity)l数据完整性,未被未授权篡改或者损坏l系统完整性,系统未被非授权操纵,按既定的功能运行n可用性(Availability)n鉴别(Authenticity):实体身份的鉴别,适用于用户、进程、系统、信息等n不可否认性(Non-repudiation):防止源点或终点的抵赖n消息认证与数字签名5讨论议题讨论议题v定义n消息鉴别(MessageAuthentication):是一个证实收到的消息来自可信的源点且未被篡改的过程。l散列函数(HashFunctions):

3、一个散列函数以一个变长的报文作为输入,并产生一个定长的散列码,有时也称报文摘要,作为输出。n数字签名(DigitalSignature)l是一种防止源点或终点抵赖的鉴别技术。消息认证与数字签名65.1 5.1 消息认证消息认证v鉴别的目的n鉴别的主要目的有二:l第一,验证信息的发送者是真正的,而不是冒充的,此为信源识别;l第二,验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等。v鉴别模型n一个单纯鉴别系统的模型窜扰者信宿信源鉴别编码器鉴别译码器信道安全信道密钥源消息认证与数字签名75.1 5.1 消息认证消息认证v鉴别系统的组成n鉴别编码器和鉴别译码器可抽象为鉴别函数。一个安全的鉴别

4、系统,需满足l1)接收者能够检验和证实消息的合法性、真实性和完整性l2)消息的发送者和接收者不能抵赖l3)除了合法的消息发送者,其它人不能伪造合法的消息n鉴别系统首先要选好恰当的鉴别函数,该函数产生一个鉴别标识,然后在此基础上,给出合理的鉴别协议(AuthenticationProtocol),使接收者完成消息的鉴别。消息认证与数字签名85.1 5.1 消息认证消息认证v鉴别函数n可用来做鉴别的函数分为三类:l1)消息加密函数(Messageencryption):用完整信息的密文作为对信息的鉴别。l2)消息鉴别码MAC(MessageAuthenticationCode):用一个密钥控制的公

5、开函数作用后,产生固定长度的数值作为认证符,也称密码校验和。l3)散列函数(HashFunction):是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。常见的散列函数有:MD4、 MD5、SHA和 SHA-1消息认证与数字签名95.1.1 5.1.1 加密认证加密认证v对称密码体制加密认证n发送者A用只有他与接收者B知道的密钥K加密信息发送给接收者。l因为A是除B以外惟一拥有密钥K的一方,而敌手不知道如何改变密文来产生明文中所期望的变化,因此B知道解密得到的明文是否被改变。这样对称加密就提供了消息认证功能。l对称加密:具有机密性,可认证,不提供签名消息认证与数字签名10 如何自动确

6、定是否收到的明文可解密为可懂的明文如何自动确定是否收到的明文可解密为可懂的明文? ? 一种解决办法是强制明文有某种结构一种解决办法是强制明文有某种结构. .差错控制:差错控制:Error ControlError Control消息认证与数字签名115.1.1 5.1.1 加密认证加密认证v公钥密码体制加密认证n使用公开密钥加密信息的明文只能提供保密而不能提供认证。为了提供认证,发送者A用私钥对信息的明文进行加密,任意接收者都可以用A的公钥解密。n采用这样的结构既可提供了认证,也可提供数字签名。因为只有A能够产生该密文,其它任何一方都不能产生该密文。l从效果上看A已经用私钥对信息的明文进行了签

7、名。l应当注意只用私钥加密不能提供保密性。因为,任何人只要有A的公开密钥就能够对该密文进行解密。消息认证与数字签名125.1.1 5.1.1 加密认证加密认证v问题:通过加密得到信息真实性?n保密性与真实性是两个不同的概念。根本上,信息加密提供的是保密性而非真实性。n加密代价大(公钥算法代价更大)。n鉴别函数与保密函数的分离能提供功能上的灵活性。l广播的信息难以使用加密(信息量大)l某些信息只需要真实性,不需要保密性消息认证与数字签名135.1.2 5.1.2 消息认证码消息认证码v消息认证码n消息认证码MAC或称密码检验和是在一个密钥的控制下将任意长的消息映射到一个简短的定长数据分组,并将它

8、附加在消息后。n设M是变长的消息,K是仅由收发双方共享的密钥,则M的MAC由如下的函数C生成:MAC=Ck(M)l这里的Ck(M)是定长的。发送者每次将MAC附加到消息中,接收者通过重新计算MAC来对消息进行认证。消息认证与数字签名145.1.2 5.1.2 消息认证码消息认证码n如果收到的MAC与计算得出的MAC相同,则接收者可以认为:l消息未被更改过l消息来自与他共享密钥的发送者nMAC函数类似于加密函数,主要区别在于MAC函数不需要可逆性,而加密函数必须是可逆的,因此认证函数比加密函数更不易破解。n因为收发双方共享相同的密钥,上述过程只提供认证而不提供保密,也不能提供数字签名消息认证与数

9、字签名155.1.2 5.1.2 消息认证码(消息认证码(MACMAC)消息认证算法K消息MAC消息MAC认证算法KMAC比较认证码的使用认证码的使用MACMAC的基本用法的基本用法( (a)a)vAB:M|CK(M)v即A使用双方共享的密钥K对明文进行计算,产生一个短小的数据块,即消息验证码MAC=CK(M)。发送给接收方B时,将它附加在报文中。v接收方收到报文使用相同的密钥K执行相同的计算,得到新的MAC。接收方将收到的MAC与计算得到MAC进行比较,如果相匹配,那么可以保证报文在传输过程中维持了完整性:v(1)报文未被更改过v(2)接收者确信报文来自真实的发送者。(无人知晓密钥)v注意:

10、上述认证过程只提供认证、不提供保密性。消息认证与数字签名165.1.3 MAC5.1.3 MAC的基本用法的基本用法vMAC的基本用法(b)提供消息认证与保密,认证码与明文连接提供消息认证与保密,认证码与明文连接Provides authentication - only A and B share K1Provides authentication - only A and B share K1Provides confidentiality - only A and B shareProvides confidentiality - only A and B share K2K2 A B:

11、 EK2(M|CK1(M)消息认证与数字签名175.1.3 MAC5.1.3 MAC的基本用法的基本用法vMAC的基本用法(c)提供消息认证与保密,认证码与密文连接提供消息认证与保密,认证码与密文连接Provides authentication - Using K1Provides authentication - Using K1Provides confidentiality - Using K2Provides confidentiality - Using K2A B: EK2(EK2(M) |CK1(EK2(M)消息认证与数字签名18消息认证消息认证 VS VS 常规加密常规加密v

12、MAC函数类似于加密函数,主要区别在于MAC函数不需要可逆而加密函数必须是可逆的,因此,认证函数比加密函数更不易破解。v保密性与真实性是两个不同的概念v根本上,信息加密提供的是保密性而非真实性v加密代价大(公钥算法代价更大)v认证函数与保密函数的分离能提供功能上的灵活性v某些信息只需要真实性,不需要保密性广播的信息难以使用加密(信息量大)网络管理信息等只需要真实性政府/权威部门的公告消息认证与数字签名195.2 5.2 散列散列(Hash)(Hash)函数函数v散列(Hash)函数n散列函数(又称杂凑函数)是对不定长的输入产生定长输出的一种特殊函数:h=H(M)l其中M是变长的消息lh=H(M

13、)是定长的散列值或称为消息摘要。n散列函数H是公开的,散列值在信源处被附加在消息上,接收方通过重新计算散列值来保证消息未被篡改。n由于函数本身公开,传送过程中对散列值需要另外的加密保护(如果没有对散列值的保护,篡改者可以在修改消息的同时修改散列值,从而使散列值的认证功能失效)。消息认证与数字签名205.2 5.2 散列散列(Hash)(Hash)函数函数v散列(Hash)函数的安全性n以一个x开始。首先计算Z=h(x),并企图找到一个x满足h(x)=h(x)。若他做到这一点,x也将为有效。为防止这一点,要求函数h具有无碰撞特性。l定义1(弱无碰撞):散列函数h称为是弱无碰撞的,指对给定消息xX

14、,在计算上几乎找不到不等于x的xX,使h(x)=h(x)。l定义2(强无碰撞),散列函数h被称为是强无碰撞的,是指在计算上几乎不可能找到任意的相异的x,x,使得h(x)=h(x)。l注:强无碰撞自然含弱无碰撞!消息认证与数字签名215.2.1 5.2.1 散列函数的性质散列函数的性质v散列函数的性质n散列函数的目的是为文件、消息或其他的分组数据产生“指纹”。用于消息认证的散列函数H必须具有如下性质:l1.H能用于任何大小的数据分组,都能产生定长的输出l2.对于任何给定的x,H(x)要相对易于计算l3.对任何给定的散列码h,寻找x使得H(x)=h在计算上不可行l4.对任何给定的分组x,寻找不等于

15、x的y,使得H(x)=H(y)在计算上不可行(弱抗冲突)l5.寻找任何的(x,y),使得H(x)=H(y)在计算上不可行(强抗冲突)消息认证与数字签名225.2.2 5.2.2 散列函数的使用方式散列函数的使用方式v散列函数的基本用法(a、b)Providesconfidentiality-onlyAandBshareKProvidesauthentication-H(M)iscryptographicallyprotectedProvides authentication - H(M) is cryptographically protected消息认证与数字签名235.2.2 5.2.2

16、散列函数的使用方式散列函数的使用方式v散列函数的基本用法(C)使用公开密钥加密方法及发方的私有密钥仅对散列码加密。和b一样,这种方法也提供鉴别。它还提供数字签名,因为只有发方能够生成加密的散列码。事实上这是数字签名的本质。消息认证与数字签名245.2.3 5.2.3 散列函数的使用方式散列函数的使用方式v散列函数的基本用法(d)(d)AB:EKM|EKRaH(M)ProvidesauthenticationanddigitalsignatureProvidesconfidentiality消息认证与数字签名255.2.2 5.2.2 散列函数的使用方式散列函数的使用方式v散列函数的基本用法(e

17、、f)Providesauthentication-onlyAandBshareSProvidesauthentication-onlyAandBshareSProvidesconfidentiality-onlyAandBshareK消息认证与数字签名265.2.3 5.2.3 散列函数的结构散列函数的结构v散列函数的结构n由Merkle于1989年提出nRonRivest于1990年提出MD4n几乎被所有hash函数使用n具体做法:l把原始消息M分成一些固定长度的块Yil最后一块padding并使其包含消息M长度l设定初始值CV0l重复使用压缩函数f,CVi=f(CVi-1,Yi-1)l最

18、后一个CVi为hash值消息认证与数字签名275.2.3 5.2.3 散列函数的结构散列函数的结构v散列函数的结构IV=initialvalue初始值CV=chainingvalue链接值Yi=ithinputblock(第i个输入数据块)f=compressionalgorithm(压缩算法)n=lengthofhashcode(散列码的长度)b=lengthofinputblock(输入块的长度)bY0nIV=CV0fbY1nfbYL-1nCVL-1fCV1nnCVLCV0=IV=initialn-bitvalueCVi=f(CVi-1,Yi-1)(1iL)H(M)=CVL消息认证与数字签

19、名285.2.4 5.2.4 三种常用的三种常用的HASHHASH算法算法v三种常用的HASH算法nMD5nSHA-1nHMAC消息认证与数字签名295.2.4.1 MD55.2.4.1 MD5vMD5简介nMerkle于1989年提出hashfunction模型nRonRivest于1990年提出MD4n1992年,MD5(RFC1321)developedbyRonRivestatMITnMD5把数据分成512-bit块nMD5的hash值是128-bitn在最近数年之前,MD5是最主要的hash算法n现行美国标准SHA-1以MD5的前身MD4为基础消息认证与数字签名305.2.4.1 M

20、D55.2.4.1 MD5vMD5算法n该算法以一个任意长度的报文作为输入,产生一个128bit的报文摘要作为输出。输入是按512bit的分组进行处理的。nStep1:l附加填充比特MM1,|M1|448mod512(即填充长度为512的整数倍减去64)。l例如,如果|M|是448bit,那么填充512bit,形成960bit的报文lPadding内容:1000v首位为1,其余补0至满足要求,即填充后的比特数为512的整数倍减去64,或使得填充后的数据长度与448模512同余。消息认证与数字签名315.2.4.1 MD55.2.4.1 MD5vMD5算法nStep2:附加长度值lAppend6

21、4-bitlengthM1M2(初始报文的位长度)l若|M|264,则仅取低64位l低字节在前(little-endian)l|M2|为512的倍数:Y0,Y1,YL-1消息认证与数字签名325.2.4.1 MD55.2.4.1 MD5vMD5算法nMD5示意图消息认证与数字签名335.2.4.1 MD55.2.4.1 MD5vMD5算法nStep3:InitializeMDbuffer(little-endian)lA=01234567(0x67452301)lB=89ABCDEF(0xEFCDAB89)lC=FEDCBA98(0x98BADCFE)lD=76543210(0x1032547

22、6)nStep4:CompressionlCV0=IVlCVi=HMD5(CVi-1,Yi)nStep5:OutputlMD=CVL消息认证与数字签名345.2.4.1 MD5 5.2.4.1 MD5 MD5 Step 4MD5 Step 4:示意图:示意图消息认证与数字签名355.2.4.1 MD55.2.4.1 MD5vMD5Step4:CV0=IV,CVi=HMD5(CVi-1,Yi)n(A0,B0,C0,D0)(A,B,C,D)lRoundOne(A,B,C,D,T116,X015)lRoundTwo(A,B,C,D,T1732,X015)lRoundThree(A,B,C,D,T33

23、48,X015)lRoundFour(A,B,C,D,T4964,X015)n(A,B,C,D)(A+A0,B+B0,C+C0,D+D0)n512-bit块(X为32-bit表示)在四个Round使用,每个Round包含16次循环,每次处理一个32-bit,nTj=sin(j)*232的整数部分,1j64消息认证与数字签名365.2.4.1 MD55.2.4.1 MD5vMD5Step4:Compressionn每一轮包含对缓冲区ABCD的16步操作所组成的一个序列。lab+(a+g(b,c,d)+Xk+Ti)s)n其中:la,b,c,d=缓冲区的四个字,以一个给定的次序排列;lg=基本逻辑函

24、数F,G,H,I之一;ls=对32位字循环左移s位lXk=Mq16+k=在第q个512位数据块中的第k个32位字lTi=表T中的第i个32位字;l+=模232的加;消息认证与数字签名375.2.4.1 MD55.2.4.1 MD5vMD5Step4:CompressionABCDABCD+CLSs+gXkTiFunctiongg(b,c,d)1F(b,c,d)(bc)(bd)2G(b,c,d)(bd)(cd)3H(b,c,d)bcd4I(b,c,d)c(bd)消息认证与数字签名385.2.4.1 MD55.2.4.1 MD5vMD5Step4:nCV0=IV,CVi=HMD5(CVi-1,Yi

25、)l(A0,B0,C0,D0)(A,B,C,D)?RoundOne(A,B,C,D,T116,X015)?RoundTwo(A,B,C,D,T1732,X015)?RoundThree(A,B,C,D,T3348,X015)?RoundFour(A,B,C,D,T4964,X015)l(A,B,C,D)(A+A0,B+B0,C+C0,D+D0)lMD=CVL消息认证与数字签名395.2.4.1 MD55.2.4.1 MD5vMD5小结:nMD5使用小数在前nDobbertin在1996年找到了两个不同的512-bit块,它们在MD5计算下产生相同的hashn至今还没有真正找到两个不同的消息,它

26、们的MD5的hash相等nMD5不是足够安全的消息认证与数字签名405.2.4.1 MD55.2.4.1 MD5vMD5小结:nMD5在线查询破解nMD5的32位和16位加密算法lMD5通常是32位的编码,而在不少地方会用到16位的编码。16位就是从32位MD5散列中把中间16位提取出来。ladmin的摘要:?16位:7a57a5a743894a0e?32位:21232f297a57a5a743894a0e4a801fc3消息认证与数字签名415.2.4.2 SHA-15.2.4.2 SHA-1vSecureHashAlgorithm简介:n1992年NIST制定了SHA(128位)n1993

27、年SHA成为标准(FIPSPUB180)n1994年修改产生SHA-1(160位)n1995年SHA-1成为新的标准,作为SHA-1(FIPSPUB180-1)nSHA-1要求输入消息长度264n输入按512位的分组进行处理的nSHA-1的摘要长度为160位n基础是MD4消息认证与数字签名425.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1算法:n结构与MD5类似l第一步:pading?与MD5相同,补齐到512的倍数l第二步?分块l第三步?初始化Buffer,160位常量(5个字)?进入循环,160输入+512输入-160输出l第四步?最后的输出为SHA-1的结果消息认证与数

28、字签名435.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1:paddingnStep1:PaddingMM1l|M1|448mod512l如果|M|448mod512,则|M1|=|M|+512lPadding内容:1000nStep2:Append64-bitlengthM1M2,值等于填充前长度l|M|264l高字节在前(big-endian)l|M2|为512的倍数:Y0,Y1,YL-1消息认证与数字签名445.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1:CompressnStep3:InitializeMDbuffer(高字节在前)lA=6745230

29、1(0x67452301)lB=EFCDAB89(0xEFCDAB89)lC=98BADCFE(0x98BADCFE)lD=10325476(0x10325476)lE=C3D2E1F0(0xC3D2E1F0)nStep4:CompressionlCV0=IV,CVi=HSHA-1(CVi-1,Yi)nStep5:OutputlMD=CVL消息认证与数字签名45SHA-1: Step Four示意图消息认证与数字签名465.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1:StepFourOverviewnStep4:CV0=IV,CVi=HSHA-1(CVi-1,Yi)l(A0,

30、B0,C0,D0,E0)(A,B,C,D,E)t0lRound(A,B,C,D,E,Kt,Wt)0t80l(A,B,C,D,E)(A+A0,B+B0,C+C0,D+D0,E+E0)n整个Round包含80次循环,每次处理一个32-bitlWt=Yit0t16lWt=(Wt-16Wt-14Wt-8Wt-3)116t80l每组(16个)Wt可由前一组Wt直接计算消息认证与数字签名475.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1:compressionfunctionnFourrounds:0t80lEE+f(t,B,C,D)+(A5)+Wt+KtlBB32?f(t,B,C,D)

31、=(B&C)|(B&D),Kt=230sqrt(2)0t20?f(t,B,C,D)=BCD,Kt=230sqrt(3) 20t40?f(t,B,C,D)=(B&C)|(B&D)|(C&D),Kt=230sqrt(5)30t60?f(t,B,C,D)=BCD,Kt=230sqrt(10) 60t80消息认证与数字签名485.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1:compressionfunctionnA,B,C,D,E(E+f(t,B,C,D)+S5(A)+Wt+Kt),A,S30(B),C,Dn其中:lA,B,C,D,E=缓冲区的5个字;lt=步数,0=t=79;lf(

32、t,B,C,D)=步t的基本逻辑函数;lSk=循环左移k位给定的32位字;lWt=一个从当前512数据块导出的32位字;lKt=一个用于加法的常量,四个不同的值,如前所述l+=加模232。消息认证与数字签名495.2.4.2 SHA-15.2.4.2 SHA-1v每一轮中20步的每一步运算结构消息认证与数字签名505.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1总结nSHA-1使用big-endiann抵抗生日攻击:160位hash值生日攻击方法没有利用Hash函数的结构和任何代数弱性质,它只依赖于消息摘要的长度,即Hash值的长度。这种攻击对Hash函数提出了一个必要的安全条

33、件,即消息摘要必须足够长。n没有发现两个不同的512-bit块,它们在SHA-1计算下产生相同的“hash”n速度慢于MD5n安全性优于MD5消息认证与数字签名515.3 5.3 数字签名数字签名v数字签名nMessageauthentication保护双方之间的数据交换不被第三方侵犯,但它并不保证双方自身的相互欺骗。n假定A发送一个认证的信息给B,双方之间的争议可能有多种形式:lB伪造一个不同的消息,但声称是从A收到的。lA可以否认发过该消息,B无法证明A确实发了该消息。n例如:股票交易指令亏损后抵赖。消息认证与数字签名525.3.1 5.3.1 数字签名原理数字签名原理v传统签名的基本特点

34、:n与被签的文件在物理上不可分割n签名者不能否认自己的签名n签名不能被伪造n容易被验证v数字签名是传统签名的数字化,基本要求:n与所签文件“绑定”n签名者不能否认自己的签名n签名不能被伪造n容易被自动验证消息认证与数字签名535.3.1 5.3.1 数字签名原理数字签名原理v数字签名与传统的手写签名有如下不同:n签名:手写签名是被签文件的物理组成部分;而数字签名不是被签消息的物理部分,因而需要将签名连接到被签消息上n验证:手写签名是通过将它与其它真实的签名进行比较来验证;而数字签名是利用已经公开的验证算法来验证n数字签名消息的复制品与其本身是一样的;而手写签名纸质文件的复制品与原品是不同的消息

35、认证与数字签名545.3.1 5.3.1 数字签名原理数字签名原理v一个数字签名至少应满足以下几个条件:n依赖性:数字签名必须是依赖于要签名报文的比特模式(类似于笔迹签名与被签文件的不可分离性)n唯一性:数字签名必须使用对签名者来说是唯一的信息,以防伪造和否认n可验证:数字签名必须是在算法上可验证的n抗伪造:伪造一个数字签名在计算上不可行,无论是通过以后的数字签名来构造新报文,还是对给定的报文构造一个虚假的数字签名(类似笔迹签名不可模仿性)n可用性:数字签名的产生、识别和证实必须相对简单,并且其备份在存储上是可实现的消息认证与数字签名555.3.1 5.3.1 数字签名原理数字签名原理v数字签

36、名的类别:n以方式分:l直接数字签名directdigitalsignaturel仲裁数字签名arbitrateddigitalsignaturen以安全性分l无条件安全的数字签名?l计算上安全的数字签名n以可签名次数分l一次性的数字签名l多次性的数字签名消息认证与数字签名565.3.1 5.3.1 数字签名原理数字签名原理v直接数字签名(DDS)n(1)AB:EKRaMl提供了鉴别与签名:l只有A具有KRa进行加密;l传输中没有被篡改;l需要某些格式信息/冗余度;l任何第三方可以用KUa验证签名n(1)AB:EKUbEKRa(M)l提供了保密(KUb)、鉴别与签名(KRa):消息认证与数字签

37、名575.3.1 5.3.1 数字签名原理数字签名原理v直接数字签名(DDS)n(2)AB:M|EKRaH(M)提供鉴别及数字签名lH(M)受到密码算法的保护;l只有A能够生成EKRaH(M)n(2)AB:EKM|EKRaH(M)l提供保密性、鉴别和数字签名。消息认证与数字签名585.3.1 5.3.1 数字签名原理数字签名原理v直接数字签名的缺点n验证模式依赖于发送方的保密密钥:l发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名。l通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在。l改进的方式例如可以要

38、求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心。nX的某些私有密钥确实在时间T被窃取,敌方可以伪造X的签名及早于或等于时间T的时间戳。消息认证与数字签名595.3.1 5.3.1 数字签名原理数字签名原理v仲裁数字签名n引入仲裁者。l通常的做法是所有从发送方X到接收方Y的签名消息首先送到仲裁者A,A将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给Yl仲裁者在这一类签名模式中扮演敏感和关键的角色。n所有的参与者必须极大地相信这一仲裁机制工作正常。消息认证与数字签名605.3.1 5.3.1 数字签名原理数

39、字签名原理v仲裁数字签名n(a)单密钥加密方式,仲裁者可以看见消息lX与A之间共享密钥Kxa,Y与A之间共享密钥Kay;l(1)XA:M|EKxaIDx|H(M)l(2)AY:EKayIDx|M|EKxaIDx|H(M)|Tn解决纠纷:lY:向A发送EKayIDx|M|EKxaIDx|H(M)lA:用Kay恢复IDx,M,和签名(EKxaIDx|H(M),然后用Kxa解密签名并验证散列码消息认证与数字签名615.3.1 5.3.1 数字签名原理数字签名原理v仲裁数字签名n(a)单密钥加密方式,仲裁者可以看见消息l在这种模式下Y不能直接验证X的签名,Y认为A的消息正确,只因为它来自A。因此,双方

40、都需要高度相信AlX必须信任A没有暴露Kxa,并且没有生成错误的签名EKxaIDx|H(M)lY必须信任A仅当散列值正确并且签名确实是X产生的情况下才发送的EKayIDx|M|EKxaIDx|H(M)|Tl双方都必须信任A处理争议是公正的n只要A遵循上述要求,则X相信没有人可以伪造其签名;Y相信X不能否认其签名。上述情况还隐含着A可以看到X给Y的所有信息,因而所有的窃听者也能看到。消息认证与数字签名625.3.1 5.3.1 数字签名原理数字签名原理v仲裁数字签名n(b)单密钥加密方式,仲裁者不可以看见消息lX与A之间共享密钥Kxa,Y与A之间共享密钥Kay;X与Y之间共享密钥Kxyl1)XA

41、:IDx|EKxyM|EKxaIDx|H(EKxyM)l2)AY:EKayIDx|EKxyM|EKxaIDx|H(EKxyM)|Tn(a)和(b)共同存在一个共性问题:lA和发送方联手可以否认签名的信息;lA和接收方联手可以伪造发送方的签名;消息认证与数字签名635.3.1 5.3.1 数字签名原理数字签名原理v仲裁数字签名n(c)双密钥加密方式,仲裁者不可以看见消息l1)XA:IDx|EKRxIDx|EKUy(EKRxM)l2)AY:EKRaIDx|EKUyEKRxM|TlX:对消息M双重加密,形成一个签名的、保密的消息。lA:检查X的公开/私有密钥对是否仍然有效,是,则确认消息。n本模式比

42、上述两个模式具有以下好处:l通信之前各方之间无须共享任何信息,避免了联手作弊;l若KRx暴露,只要KRa未暴露,不会有错误标定日期的消息被发送l从X发送给Y的消息的内容对A和任何其他人是保密的。消息认证与数字签名64案例案例 中国首例电子邮件案例中国首例电子邮件案例1996年7月9日,北京市海淀区法院审理国内第一起电子邮件侵权案。此案的原、被告均系北大心理学系93级女研究生。4月9日。原告薛燕戈收到美国密执安大学教育学院通过互联网发给她的电子邮件。内容是该学院将给她提供1.8万美元金额奖学金的就学机会,她非常高兴。因为这是唯一一所答应给她奖学金美国名牌大学。此后,她久等正式通知,但杳无音训,蹊

43、跷之中委托在美国的朋友去密执安大学查询。4月27日朋友告知,密执安大学收到一封北京时间4月12日10时16分发出的署名薛燕戈的电子邮件,表示拒绝该校的邀请。因此密执安大学以将原准备给薛的奖学金转给他人。消息认证与数字签名65法庭上,薛燕戈说,密执安大学发来的电子邮件,是她和被告张男一起去北大心理学认知心理学实验室看到的,并且存放在张男的电子信箱里。薛燕戈认为,是张男在4月12日10时16分用薛的名义给密执安大学发了一封邮件,谎称薛已接受其他学校的邀请,故不能去该校学习。薛从北大计算中心取得4月12日的电子邮件记录,与美国取证回来的材料完全吻合。因此,薛提出诉讼请求:被告承认并公开道歉,又被告承

44、担原告的调查取证以及和美国学校交涉的费用、医疗费和营养费用、精神损失补偿等人民币1.5万元。张男在法庭上称,事实上她从未以薛的名义给密执安大学发过电子邮件,对此事没有丝毫责任。消息认证与数字签名66此案在开庭审理后,尽管到底谁借原告之名向密执安大学发出拒绝接受入学邀请的电子邮件,使原告丧失了一次出国深造的机会,并没有得出确切结论。但是在休庭之后,被告终于向原告承认,该电子邮件是她所为,并愿意就此向原告道歉并赔偿因其侵权行为给原告造成的精神及财产损失。经过法院调解,原、被告双方当事人自愿达成协议:被告以书面形式向原告赔礼道歉,并赔偿原告精神损害、补偿经济损失共计1.2万元。如果邮件的发送附加了可

45、防伪和可追踪的数字签名,也许本案就不会发生了。消息认证与数字签名675.4 5.4 数字签名算法数字签名算法v数字签名算法n普通数字签名算法lRSAn不可否认的数字签名算法n群签名算法n盲签名算法消息认证与数字签名685.4.1 RSA5.4.1 RSA数字签名算法数字签名算法vRSA签名方案vRSA是最流行的一种加密标准,许多产品的内核都有RSA的软件和类库,RSA与Microsoft、IBM、Sun和Digital都签订了许可协议,使其在生产线上加入了类似的签名特性。与DSS不同,RSA既可用于加密数据,也可用于身份认证。消息认证与数字签名695.4.1 RSA5.4.1 RSA数字签名算

46、法数字签名算法vRSA签名方案n问题:l速度慢l信息量大l第三方仲裁时必须暴露明文信息对照数字签名的各项要求,对照数字签名的各项要求,RSA数字签名体制体现了数字签名数字签名体制体现了数字签名的各项要求:的各项要求:1.散列函数取得消息的信息摘要,从而使对摘要进行加密而产散列函数取得消息的信息摘要,从而使对摘要进行加密而产生的签名依赖于消息;生的签名依赖于消息;(依赖性依赖性)2.RSA私钥的保密性使得签名是唯一的私钥的保密性使得签名是唯一的(唯一性唯一性)3.信息摘要的字节数很少(信息摘要的字节数很少(SHA的的160比特),因而产生签名相比特),因而产生签名相对简单,同样的,签名的识别与证

47、实对简单,同样的,签名的识别与证实 也相对简单。也相对简单。(可用性可用性)4.散列函数的单向性以及散列函数的单向性以及RSA私钥的保密性,使得伪造数字签私钥的保密性,使得伪造数字签名不可行。名不可行。(抗伪造性抗伪造性)消息认证与数字签名705.4.2 5.4.2 不可否认的数字签名不可否认的数字签名v基本思想n一般的数字签名都是由发送方A将消息加密后送给接收方,任何一个只要知道A的公钥者都可以对此签名进行验证。n不可否认的签名是一种特殊的数字签名,它具有一些新颖的特性,没有签名者的合作,接收者就无法验证签名,在某种程度上保护了签名者的利益。n例如,软件开发者可利用不可否认的数字签名对他们的

48、软件进行保护,使得只有付了钱的顾客才能验证签名并相信开发者仍然对软件负责。消息认证与数字签名71v基本思想消息认证与数字签名72消息认证与数字签名735.4.3 5.4.3 群签名方案群签名方案v群签名方案n群中各个成员以群的名义匿名地签发消息,也称为团体签名n例:在投标中,所有投标公司组成一个团体,每个公司都用群签名方式对标书签名n群签名有如下特性:l只有群成员能代表所在的群签名l接收者能验证签名所在的群,但不知道签名者l需要时,可借助于群成员或者可信机构找到签名者消息认证与数字签名745.4.4 5.4.4 盲签名盲签名假定请求签名者A,签名者(仲裁者)B。盲签名就是要求A让B签署一个文件

49、,而不让B知悉文件的内容,仅仅要求以后在需要时B可以对他所签署的文件进行仲裁。n应用:电子货币,电子选举盲签名就是接收者在不让签名者获取所签署消息具体内容的情况下所采取的一种特殊的数字签名技术,它除了满足一般的数字签名条件外,还必须满足下面的两条性质:1.签名者对其所签署的消息是不可见的,即签名者不知道他所签署消息的具体内容。2.签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的关于盲签名,曾经给出了一个非常直观的说明:所谓盲签名,就是先将隐蔽的文件放进信封里,而除去盲因子的过程就是打开这个信封,当文件在一个信封中时,任何人不能读它。对文件签名就是通过在信封里放一张复写纸

50、,签名者在信封上签名时,他的签名便透过复写纸签到文件上。消息认证与数字签名75盲签名的基本思想:求签名者把明文消息盲变换为M,M隐藏了明文M的内容;然后把M给签名者(仲裁者)进行签名,得到签名结果S(M);最后,求签名者取回S(M),采用解盲变换处理得到S(M),就是M的签名消息盲变换签名接收者逆盲变换消息认证与数字签名76v完全盲签名协议:nA把文件用一个随机数乘之,该随机数称为盲因子nA把上面处理过的文件盲文件传送给BnB对盲文件签名nA取回B的签名结果,并用盲因子除之,得到B对原文件的签名n完全盲签名协议使签名者一无所知,虽然具有了盲签名的特点,但是与实际应用还是有差距。:比如:“B欠A

51、一百万美元”,有时签名者希望知道他正在签署的文件是哪方面的内容,而请求签名者又要求签名者不能知道所签文件的确切内容。然而,有一个办法可以让B知道他在签什么,同时仍保持盲签名的有用性质。这个协议的核心是分割选择技术。消息认证与数字签名77v例:盲签名在电子货币中的应用:n顾客A得到银行B对钱款m的盲签名后,自己算出银行的真正签名SB(m)。n在支付时提交出m和SB(m),银行能验证SB(m)是否为m的合法签名,但不知道这是谁的一笔消费。从而使A保持匿名状态,即消费行为不受到监控。消息认证与数字签名78v盲签名协议:n采用分割选择(Cut-and-Choose)技术,可以使签名者B知道他签署的是哪

52、方面的信息,但是还保留盲签名的特征例:每天很多人进入这个国家,而移民局要确信他们没有走私可卡因。官员们可以搜查每一个人,但他们换用了一种概率解决办法。他们检查入境人中的十分之一。十个人中有一个人的行李被检查,其余的九个畅通无阻。长期的走私犯会在大多数时间里逍遥法外,但他们有10%的机会被抓住。并且如果法院制度有效,则抓住一次的处罚将远远超出其它九次所得到的。如果移民局想增大抓住走私犯的可能性,他们将不得不搜查更多的人。如果他们要减少这种可能性,他们只须搜查少量的人。通过操纵概率,他们可以控制协议抓住走私犯的成功程度。消息认证与数字签名79n例:反间谍人员化名的签名l反间谍组织的成员身份保密,甚

53、至机构头目也不知道。机构头目还要给每个成员一个签字文件,文件的内容是:持有该文件的*人具有外交豁免权。l文件中必须使用反间谍组织的成员的化名,另外机构头目也不能对任意的文件签名。假定成员为A,机构头目是签名者B消息认证与数字签名80例:反间谍人员化名的签名l每个成员A准备n份上述形式的文件,其中各使用不同的化名l成员用不同的盲因子盲变换上述文件l将变换后的n个文件传送给BlB随机选择n1个文件出来,确认其符合要求l成员A向B发送相应的盲因子lB用盲因子解读这n1个文件,确认其符合要求l若上述步骤通过,B签署剩下的那一个文件l成员A取回已签名的文件,去掉盲因子得到原文件的签名消息认证与数字签名81nRSA模式的盲签名算法:l设定签名者B的公钥参数为e,私钥参数为d,而模为nlA盲变换:?选用盲因子k,1kM,计算tMkemodn,将t传递给BlB签名:?B对t签名,计算S(t)td(Mke)dmodn,将S(t)传给AlA取得签名:A计算签名Std/kmodnMdmodn

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

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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