欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    消息认证与数字签名(1).ppt

    • 资源ID:65716819       资源大小:864KB        全文页数:81页
    • 资源格式: PPT        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    消息认证与数字签名(1).ppt

    消息认证与数字签名1第五章消息认证与数字签名消息认证与数字签名2问题的提出问题的提出通信威胁1.泄露:把消息内容发布给任何人或没有合法密钥的进程。2.伪造:从一个假冒信息源向网络中插入消息。3.内容修改:消息内容被插入删除变换修改。4.顺序修改:插入删除或重组消息序列。5.时间修改:消息延迟或重放。6.否认:接受者否认收到消息,发送者否认发送过消息。消息认证与数字签名3回顾与总结回顾与总结v回顾n对称密码算法l运算速度快、密钥短、多种用途(随机数产生、Hash函数)、历史悠久l密钥管理困难(分发、更换)n非对称密码算法l只需保管私钥、可以相当长的时间保持不变、需要的数目较小l运算速度慢、密钥尺寸大、历史短消息认证与数字签名4v信息安全的需求n保密性(Confidentiality)n完整性(Integrity)l数据完整性,未被未授权篡改或者损坏l系统完整性,系统未被非授权操纵,按既定的功能运行n可用性 (Availability)n鉴别 (Authenticity):实体身份的鉴别,适用于用户、进程、系统、信息等n不可否认性 (Non-repudiation):防止源点或终点的抵赖n消息认证与数字签名5讨论议题讨论议题v定义n消息鉴别(Message Authentication):是一个证实收到的消息来自可信的源点且未被篡改的过程。l散列函数(Hash Functions):一个散列函数以一个变长的报文作为输入,并产生一个定长的散列码,有时也称报文摘要,作为输出。n数字签名(Digital Signature)l是一种防止源点或终点抵赖的鉴别技术。消息认证与数字签名65.1 5.1 消息认证消息认证v鉴别的目的n鉴别的主要目的有二:l第一,验证信息的发送者是真正的,而不是冒充的,此为信源识别;l第二,验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等。v鉴别模型n一个单纯鉴别系统的模型窜扰者信宿信源鉴别编码器鉴别译码器信道安全信道密钥源消息认证与数字签名75.1 5.1 消息认证消息认证v鉴别系统的组成n鉴别编码器和鉴别译码器可抽象为鉴别函数。一个安全的鉴别系统,需满足l1)接收者能够检验和证实消息的合法性、真实性和完整性l2)消息的发送者和接收者不能抵赖l3)除了合法的消息发送者,其它人不能伪造合法的消息n鉴别系统首先要选好恰当的鉴别函数,该函数产生一个鉴别标识,然后在此基础上,给出合理的鉴别协议(Authentication Protocol),使接收者完成消息的鉴别。消息认证与数字签名85.1 5.1 消息认证消息认证v鉴别函数n可用来做鉴别的函数分为三类:l1)消息加密函数(Message encryption):用完整信息的密文作为对信息的鉴别。l2)消息鉴别码MAC(Message Authentication Code):用一个密钥控制的公开函数作用后,产生固定长度的数值作为认证符,也称密码校验和。l3)散列函数(Hash Function):是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。常见的散列函数有:MD4、MD5、SHA和 SHA-1消息认证与数字签名95.1.1 5.1.1 加密认证加密认证v对称密码体制加密认证n发送者A用只有他与接收者B知道的密钥K加密信息发送给接收者。l因为A是除B以外惟一拥有密钥K的一方,而敌手不知道如何改变密文来产生明文中所期望的变化,因此B 知道解密得到的明文是否被改变。这样对称加密就提供了消息认证功能。l对称加密:具有机密性,可认证,不提供签名消息认证与数字签名10 如何自动确定是否收到的明文可解密为可懂的明文如何自动确定是否收到的明文可解密为可懂的明文?一种解决办法是强制明文有某种结构一种解决办法是强制明文有某种结构.差错控制:差错控制:Error ControlError Control消息认证与数字签名115.1.1 5.1.1 加密认证加密认证v公钥密码体制加密认证n使用公开密钥加密信息的明文只能提供保密而不能提供认证。为了提供认证,发送者A用私钥对信息的明文进行加密,任意接收者都可以用A的公钥解密。n采用这样的结构既可提供了认证,也可提供数字签名。因为只有A 能够产生该密文,其它任何一方都不能产生该密文。l从效果上看A 已经用私钥对信息的明文进行了签名。l应当注意只用私钥加密不能提供保密性。因为,任何人只要有A的公开密钥就能够对该密文进行解密。消息认证与数字签名125.1.1 5.1.1 加密认证加密认证v问题:通过加密得到信息真实性?n保密性与真实性是两个不同的概念。根本上,信息加密提供的是保密性而非真实性。n加密代价大(公钥算法代价更大)。n鉴别函数与保密函数的分离能提供功能上的灵活性。l广播的信息难以使用加密(信息量大)l某些信息只需要真实性,不需要保密性消息认证与数字签名135.1.2 5.1.2 消息认证码消息认证码v消息认证码n消息认证码MAC 或称密码检验和是在一个密钥的控制下将任意长的消息映射到一个简短的定长数据分组,并将它附加在消息后。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因为收发双方共享相同的密钥,上述过程只提供认证而不提供保密,也不能提供数字签名消息认证与数字签名155.1.2 5.1.2 消息认证码(消息认证码(MACMAC)消息认证算法K消息MAC消息MAC认证算法KMAC比较认证码的使用认证码的使用MACMAC的基本用法的基本用法(a)a)vA B:M|CK(M)v即A使用双方共享的密钥K对明文进行计算,产生一个短小的数据块,即消息验证码 MAC=CK(M)。发送给接收方B时,将它附加在报文中。v接收方收到报文使用相同的密钥K执行相同的计算,得到新的MAC。接收方将收到的MAC与计算得到MAC进行比较,如果相匹配,那么可以保证报文在传输过程中维持了完整性:v (1)报文未被更改过v (2)接收者确信报文来自真实的发送者。(无人知晓密钥)v注意:上述认证过程只提供认证、不提供保密性。消息认证与数字签名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: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 常规加密常规加密vMAC函数类似于加密函数,主要区别在于MAC函数不需要可逆而加密函数必须是可逆的,因此,认证函数比加密函数更不易破解。v保密性与真实性是两个不同的概念v根本上,信息加密提供的是保密性而非真实性v加密代价大(公钥算法代价更大)v认证函数与保密函数的分离能提供功能上的灵活性v某些信息只需要真实性,不需要保密性 广播的信息难以使用加密(信息量大)网络管理信息等只需要真实性 政府/权威部门的公告消息认证与数字签名195.2 5.2 散列散列(Hash)(Hash)函数函数v散列(Hash)函数n散列函数(又称杂凑函数)是对不定长的输入产生定长输出的一种特殊函数:h=H(M)l其中M是变长的消息lh=H(M)是定长的散列值或称为消息摘要。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,在计算上几乎找不到不等于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,寻找不等于x的y,使得H(x)=H(y)在计算上不可行(弱抗冲突)l5.寻找任何的(x,y),使得H(x)=H(y)在计算上不可行(强抗冲突)消息认证与数字签名225.2.2 5.2.2 散列函数的使用方式散列函数的使用方式v散列函数的基本用法(a、b)Provides confidentiality-only A and B share KProvides authentication -H(M)is cryptographically protectedProvides authentication -H(M)is cryptographically protected消息认证与数字签名235.2.2 5.2.2 散列函数的使用方式散列函数的使用方式v散列函数的基本用法(C)使用公开密钥加密方法及发方的私有密钥仅对散列码加密。和b一样,这种方法也提供鉴别。它还提供数字签名,因为只有发方能够生成加密的散列码。事实上这是数字签名的本质。消息认证与数字签名245.2.3 5.2.3 散列函数的使用方式散列函数的使用方式v散列函数的基本用法(d)(d)AB:EKM|EKRaH(M)Provides authentication and digital signatureProvides confidentiality消息认证与数字签名255.2.2 5.2.2 散列函数的使用方式散列函数的使用方式v散列函数的基本用法(e、f)Provides authentication-only A and B share SProvides authentication-only A and B share SProvides confidentiality-only A and B share K消息认证与数字签名265.2.3 5.2.3 散列函数的结构散列函数的结构v散列函数的结构n由Merkle于1989年提出nRon Rivest于1990年提出MD4n几乎被所有hash函数使用n具体做法:l把原始消息M分成一些固定长度的块Yil最后一块padding并使其包含消息M长度l设定初始值CV0l重复使用压缩函数f,CVi=f(CVi-1,Yi-1)l最后一个CVi为hash值消息认证与数字签名275.2.3 5.2.3 散列函数的结构散列函数的结构v散列函数的结构IV =initial value 初始值CV=chaining value 链接值Yi =ith input block(第i 个输入数据块)f =compression algorithm(压缩算法)n =length of hash code(散列码的长度)b =length of input block(输入块的长度)bY0nIV=CV0fbY1nfbYL-1nCVL-1fCV1nnCVLCV0=IV=initial n-bit valueCVi=f(CVi-1,Yi-1)(1 i L)H(M)=CVL消息认证与数字签名285.2.4 5.2.4 三种常用的三种常用的HASHHASH算法算法v三种常用的HASH算法nMD5nSHA-1nHMAC消息认证与数字签名295.2.4.1 MD55.2.4.1 MD5vMD5简介nMerkle于1989年提出hash function模型nRon Rivest于1990年提出MD4n1992年,MD5(RFC 1321)developed by Ron Rivest at MITnMD5把数据分成512-bit块nMD5的hash值是128-bitn在最近数年之前,MD5是最主要的hash算法n现行美国标准SHA-1以MD5的前身MD4为基础消息认证与数字签名305.2.4.1 MD55.2.4.1 MD5vMD5算法n该算法以一个任意长度的报文作为输入,产生一个128bit的报文摘要作为输出。输入是按512bit的分组进行处理的。nStep 1:l附加填充比特 M M1,|M1|448 mod 512(即填充长度为512的整数倍减去64)。l例如,如果|M|是448bit,那么填充512bit,形成960bit的报文lPadding内容:1000v首位为1,其余补0至满足要求,即填充后的比特数为512的整数倍减去64,或使得填充后的数据长度与448模512同余。消息认证与数字签名315.2.4.1 MD55.2.4.1 MD5vMD5算法nStep 2:附加长度值lAppend 64-bit length M1 M2(初始报文的位长度)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算法nStep 3:Initialize MD buffer (little-endian)lA=01 23 45 67 (0 x67452301)lB=89 AB CD EF (0 xEFCDAB89)lC=FE DC BA 98 (0 x98BADCFE)lD=76 54 32 10 (0 x10325476)nStep 4:CompressionlCV0=IVlCVi=HMD5(CVi-1,Yi)nStep 5:OutputlMD=CVL消息认证与数字签名345.2.4.1 MD5 5.2.4.1 MD5 MD5MD5 Step 4 Step 4:示意图:示意图消息认证与数字签名355.2.4.1 MD55.2.4.1 MD5vMD5 Step 4: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,T3348,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的整数部分,1 j 64消息认证与数字签名365.2.4.1 MD55.2.4.1 MD5vMD5 Step 4:Compression n每一轮包含对缓冲区ABCD的16步操作所组成的一个序列。la b+(a+g(b,c,d)+Xk+Ti)s)n其中:la,b,c,d =缓冲区的四个字,以一个给定的次序排列;lg=基本逻辑函数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 MD5vMD5 Step 4:Compression ABCDABCD+CLSs+gXkTiFunction g g(b,c,d)1 F(b,c,d)(bc)(bd)2 G(b,c,d)(bd)(cd)3 H(b,c,d)bcd4 I(b,c,d)c(bd)消息认证与数字签名385.2.4.1 MD55.2.4.1 MD5vMD5 Step 4:nCV0=IV,CVi=HMD5(CVi-1,Yi)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至今还没有真正找到两个不同的消息,它们的MD5的hash相等nMD5不是足够安全的消息认证与数字签名405.2.4.1 MD55.2.4.1 MD5vMD5 小结:nMD5在线查询破解 lhttp:/ 的摘要:?16位:7a57a5a743894a0e?32位:21232f297a57a5a743894a0e4a801fc3 消息认证与数字签名415.2.4.2 SHA-15.2.4.2 SHA-1vSecure Hash Algorithm简介:n1992年NIST制定了SHA(128位)n1993年SHA成为标准(FIPS PUB 180)n1994年修改产生SHA-1(160位)n1995年SHA-1成为新的标准,作为SHA-1(FIPS PUB 180-1)nSHA-1要求输入消息长度264 n输入按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的结果消息认证与数字签名435.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1:paddingnStep 1:Padding M M1l|M1|448 mod 512l如果|M|448 mod 512,则|M1|=|M|+512lPadding内容:1000nStep 2:Append 64-bit length M1 M2,值等于填充前长度l|M|264l高字节在前(big-endian)l|M2|为512的倍数:Y0,Y1,YL-1消息认证与数字签名445.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1:CompressnStep 3:Initialize MD buffer (高字节在前)lA=67 45 23 01(0 x67452301)lB=EF CD AB 89(0 xEFCDAB89)lC=98 BA DC FE(0 x98BADCFE)lD=10 32 54 76(0 x10325476)lE=C3 D2 E1 F0(0 xC3D2E1F0)nStep 4:CompressionlCV0=IV,CVi=HSHA-1(CVi-1,Yi)nStep 5:OutputlMD=CVL消息认证与数字签名45SHA-1:Step Four示意图消息认证与数字签名465.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1:Step Four OverviewnStep 4:CV0=IV,CVi=HSHA-1(CVi-1,Yi)l(A0,B0,C0,D0,E0)(A,B,C,D,E)t 0lRound(A,B,C,D,E,Kt,Wt)0 t 80l(A,B,C,D,E)(A+A0,B+B0,C+C0,D+D0,E+E0)n整个Round包含80次循环,每次处理一个32-bitlWt=Yit 0 t 16lWt=(Wt-16Wt-14Wt-8Wt-3)1 16 t 80l每组(16个)Wt可由前一组Wt直接计算消息认证与数字签名475.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1:compression functionnFour rounds:0 t 80lE E+f(t,B,C,D)+(A5)+Wt+KtlB B32?f(t,B,C,D)=(B&C)|(B&D),Kt=230 sqrt(2)0 t 20?f(t,B,C,D)=B C D,Kt=230 sqrt(3)20 t 40?f(t,B,C,D)=(B&C)|(B&D)|(C&D),Kt=230 sqrt(5)30 t 60?f(t,B,C,D)=B C D,Kt=230 sqrt(10)60 t 80消息认证与数字签名485.2.4.2 SHA-15.2.4.2 SHA-1vSHA-1:compression functionnA,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(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函数提出了一个必要的安全条件,即消息摘要必须足够长。n没有发现两个不同的512-bit块,它们在SHA-1计算下产生相同的“hash”n速度慢于MD5n安全性优于MD5消息认证与数字签名515.3 5.3 数字签名数字签名v数字签名nMessage authentication保护双方之间的数据交换不被第三方侵犯,但它并不保证双方自身的相互欺骗。n假定A发送一个认证的信息给B,双方之间的争议可能有多种形式:lB伪造一个不同的消息,但声称是从A收到的。lA可以否认发过该消息,B无法证明A确实发了该消息。n例如:股票交易指令亏损后抵赖。消息认证与数字签名525.3.1 5.3.1 数字签名原理数字签名原理v传统签名的基本特点:n与被签的文件在物理上不可分割n签名者不能否认自己的签名n签名不能被伪造n容易被验证v数字签名是传统签名的数字化,基本要求:n与所签文件“绑定”n签名者不能否认自己的签名n签名不能被伪造n容易被自动验证消息认证与数字签名535.3.1 5.3.1 数字签名原理数字签名原理v数字签名与传统的手写签名有如下不同:n签名:手写签名是被签文件的物理组成部分;而数字签名不是被签消息的物理部分,因而需要将签名连接到被签消息上n验证:手写签名是通过将它与其它真实的签名进行比较来验证;而数字签名是利用已经公开的验证算法来验证n数字签名消息的复制品与其本身是一样的;而手写签名纸质文件的复制品与原品是不同的消息认证与数字签名545.3.1 5.3.1 数字签名原理数字签名原理v一个数字签名至少应满足以下几个条件:n依赖性:数字签名必须是依赖于要签名报文的比特模式(类似于笔迹签名与被签文件的不可分离性)n唯一性:数字签名必须使用对签名者来说是唯一的信息,以防伪造和否认n可验证:数字签名必须是在算法上可验证的n抗伪造:伪造一个数字签名在计算上不可行,无论是通过以后的数字签名来构造新报文,还是对给定的报文构造一个虚假的数字签名(类似笔迹签名不可模仿性)n可用性:数字签名的产生、识别和证实必须相对简单,并且其备份在存储上是可实现的消息认证与数字签名555.3.1 5.3.1 数字签名原理数字签名原理v数字签名的类别:n以方式分:l直接数字签名direct digital signaturel仲裁数字签名arbitrated digital signaturen以安全性分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:EKUb EKRa(M)l提供了保密(KUb)、鉴别与签名(KRa):消息认证与数字签名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改进的方式例如可以要求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心。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 数字签名原理数字签名原理v仲裁数字签名n(a)单密钥加密方式,仲裁者可以看见消息lX与A之间共享密钥Kxa,Y与A之间共享密钥Kay;l(1)XA:M|EKxaIDx|H(M)l(2)AY:EKay IDx|M|EKxa IDx|H(M)|Tn解决纠纷:lY:向A发送 EKay IDx|M|EKxa IDx|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。因此,双方都需要高度相信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: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本模式比上述两个模式具有以下好处:l通信之前各方之间无须共享任何信息,避免了联手作弊;l若KRx暴露,只要KRa未暴露,不会有错误标定日期的消息被发送l从X发送给Y的消息的内容对A和任何其他人是保密的。消息认证与数字签名64案例案例 中国首例电子邮件案例中国首例电子邮件案例 1996年7月9日,北京市海淀区法院审理国内第一起电子邮件侵权案。此案的原、被告均系北大心理学系93级女研究生。4月9日。原告薛燕戈收到美国密执安大学教育学院通过互联网发给她的电子邮件。内容是该学院将给她提供1.8万美元金额奖学金的就学机会,她非常高兴。因为这是唯一一所答应给她奖学金美国名牌大学。此后,她久等正式通知,但杳无音训,蹊跷之中委托在美国的朋友去密执安大学查询。4月27日朋友告知,密执安大学收到一封北京时间4月12日10时16分发出的署名薛燕戈的电子邮件,表示拒绝该校的邀请。因此密执安大学以将原准备给薛的奖学金转给他人。消息认证与数字签名65 法庭上,薛燕戈说,密执安大学发来的电子邮件,是她和被告张男一起去北大心理学认知心理学实验室看到的,并且存放在张男的电子信箱里。薛燕戈认为,是张男在4月12 日10时16分用薛的名义给密执安大学发了一封邮件,谎称薛已接受其他学校的邀请,故不能去该校学习。薛从北大计算中心取得4月12日的电子邮件记录,与美国取证回来的材料完全吻合。因此,薛提出诉讼请求:被告承认并公开道歉,又被告承担原告的调查取证以及和美国学校交涉的费用、医疗费和营养费用、精神损失补偿等人民币1.5万元。张男在法庭上称,事实上她从未以薛的名义给密执安大学发过电子邮件,对此事没有丝毫责任。消息认证与数字签名66 此案在开庭审理后,尽管到底谁借原告之名向密执安大学发出拒绝接受入学邀请的电子邮件,使原告丧失了一次出国深造的机会,并没有得出确切结论。但是在休庭之后,被告终于向原告承认,该电子邮件是她所为,并愿意就此向原告道歉并赔偿因其侵权行为给原告造成的精神及财产损失。经过法院调解,原、被告双方当事人自愿达成协议:被告以书面形式向原告赔礼道歉,并赔偿原告精神损害、补偿经济损失共计1.2万元。如果邮件的发送附加了可防伪和可追踪的数字签名,也许本案就不会发生了。消息认证与数字签名675.4 5.4 数字签名算法数字签名算法v数字签名算法n普通数字签名算法lRSA n不可否认的数字签名算法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数字签名算法数字签名算法vRSA签名方案n问题:l速度慢l信息量大l第三方仲裁时必须暴露明文信息对照数字签名的各项要求,对照数字签名的各项要求,RSA数字签名体制体现了数字签名数字签名体制体现了数字签名的各项要求:的各项要求:1.散列函数取得消息的信息摘要,从而使对摘要进行加密而产散列函数取得消息的信息摘要,从而使对摘要进行加密而产生的签名依赖于消息;生的签名依赖于消息;(依赖性依赖性)2.RSA私钥的保密性使得签名是唯一的私钥的保密性使得签名是唯一的(唯一性唯一性)3.信息摘要的字节数很少(信息摘要的字节数很少(SHA的的160比特),因而产生签名相比特),因而产生签名相对简单,同样的,签名的识别与证实对简单,同样的,签名的识别与证实 也相对简单。也相对简单。(可用性可用性)4.散列函数的单向性以及散列函数的单向性以及RSA私钥的保密性,使得伪造数字签私钥的保密性,使得伪造数字签名不可行。名不可行。(抗伪造性抗伪造性)消息认证与数字签名705.4.2 5.4.2 不可否认的数字签名不可否认的数字签名v基本思想n一般的数字签名都是由发送方A将消息加密后送给接收方,任何一个只要知道A的公钥者都可以对此签名进行验证。n不可否认的签名是一种特殊的数字签名,它具有一些新颖的特性,没有签名者的合作,接收者就无法验证签名,在某种程度上保护了签名者的利益。n例如,软件开发者可利用不可否认的数字签名对他们的软件进行保护,使得只有付了钱的顾客才能验证签名并相信开发者仍然对软件负责。消息认证与数字签名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签署一个文件,而不让B知悉文件的内容,仅仅要求以后在需要时B可以对他所签署的文件进行仲裁。n应用:电子货币,电子选举盲签名就是接收者在不让签名者获取所签署消息具体内容的情况下所采取的一种特殊的数字签名技术,它除了满足一般的数字签名条件外,还必须满足下面的两条性质:1.签名者对其所签署的消息是不可见的,即签名者不知道他所签署消息的具体内容。2.签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的关于盲签名,曾经给出了一个非常直观的说明:所谓盲签名,就是先将隐蔽的文件放进信封里,而除去盲因子的过程就是打开这个信封,当文件在一个信封中时,任何人不能读它。对文件签名就是通过在信封里放一张复写纸,签名者在信封上签名时,他的签名便透过复写纸签到文件上。消息认证与数字签名75盲签名的基本思想:求签名者把明文消息盲变换为M,M隐藏了明文M的内容;然后把M给签名者(仲裁者)进行签名,得到签名结果S(M);最后,求签名者取回S(M),采用解盲变换处理得到S(M),就是M的签名消息盲变换签名接收者逆盲变换消息

    注意事项

    本文(消息认证与数字签名(1).ppt)为本站会员(赵**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开