五、数字签名与hash函数阳振坤yzk@icstpkueducn计算机科内容摘要:

amp。 Technology, Peking University 41 RIPEMD160简介 欧洲 RIPE项目的结果 RIPEMD为 128位 更新后成为 RIPEMD160 基础是 MD5  Institute of Computer Science amp。 Technology, Peking University 42 RIPEMD160: padding Step 1: Padding M  M1 |M1|  448 mod 512 |M1| |M|  如果 |M|  448 mod 512,则 |M1| = |M|+512 Padding内容 : 100…0 Step 2: Append 64bit length M1  M2 |M| 264 低字节在前 (littleendian) |M2|为 512的倍数 : Y0,Y1,…,Y L1 Institute of Computer Science amp。 Technology, Peking University 43 RIPEMD160: pression Step 3: Initialize MD buffer (littleendian) A = 01 23 45 67 (0x67452301) B = 89 AB CD EF (0xEFCDAB89) C = FE DC BA 98 (0x98BADCFE) D = 76 54 32 10 (0x10325476) E = F0 E1 D2 C3 (0xC3D2E1F0) Step 4: Compression CV0=IV CVi=HRIPE(CVi1,Yi) Step 5: Output MD = CVL Institute of Computer Science amp。 Technology, Peking University 44 RIPEMD160 step 4: 示意图 Institute of Computer Science amp。 Technology, Peking University 45 RIPEMD160: pression function (A0,B0,C0,D0,E0)(A,B,C,D,E) Five rounds: 0  t 16 A  ((A+f(B,C,D)+X[p[t]]+K)s)+E C  C10 (A,B,C,D,E)(A,B,C,D,E)32 A((A+f(B,C,D)+X[p[t]]+K)s)+E CC10 (A,B,C,D,E)(A,B,C,D,E)32 (A,B,C,D,E)  (B0+C+D, C0+D+E, D0+E+A, E0+A+B, A0+B+C) Institute of Computer Science amp。 Technology, Peking University 46 RIPEMD160 step 4: fi, ,  Function f1,f2,f3,f4,f5: f1(B,C,D) = B  C  D f2(B,C,D) = (Bamp。 C)|(!Bamp。 D) f3(B,C,D) = (B|!C)  D f4(B,C,D) = (Bamp。 C)|(Camp。 !D) f5(B,C,D) = B  (C|!D) : 7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8 : 5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12 Institute of Computer Science amp。 Technology, Peking University 47 RIPEMD160总结 RIPEMD160使用 littleendian 抵抗生日攻击 : 160位 hash值 没有发现两个不同的 512bit块 ,它们在 RIPEMD160计算下产生相同的“ hash” 速度略慢于 SHA1 安全性优于 MD5 对密码分析的抵抗力好于 SHA1 Institute of Computer Science amp。 Technology, Peking University 48 MD5,SHA1,RIPEMD160比较 MD5 SHA1 RIPEMD160 Digest Length 128 160 160 Basic unit 512 512 512 Number of steps 64:16s/4r 80:20s/4r 160:16s/5r2 Max message size No limit 264 264 Primitive funcs 4 4 5 Additive consts 64 4 9 Endians little big little strength weak strong strong+ speed fast middle slow Institute of Computer Science amp。 Technology, Peking University 49 hash函数小结  hash函数把变长信息映射到定长信息 hash函数不具备可逆性 hash函数速度较快 hash函数与对称密钥加密算法有某种相似性 对 hash函数的密码分析比对称密钥密码更困难 hash函数可用于消息摘要 hash函数可用于数字签名 Institute of Computer Science amp。 Technology, Peking University 50 HMAC简介 MAC可用块加密算法产生 ANSI标准 (): M=(X1,X2,…,X t) M1=EK(X1), Mj+1=EK(Xj+1Mj), 1jt 速度慢 加密算法出口受限制 hash函数可用来构造 MAC: HMAC为其中之一 HMAC作为 RFC2104并在 SSL中使用  Institute of Computer Science amp。 Technology, Peking University 51 HMAC示意图 Institute of Computer Science amp。 Technology, Peking University 52 HMAC的定义与特征  对密钥 K左边补 0以产生一个 hash用块 K+ K+每个字节与 ipad(00110110)作 XOR以产生 Si 对 (Si||M)进行 hash K+每个字节与 opad(01011010)作 XOR以产生 So HMAC=f[IV,So||f(IV,Si||M)] HMAC特征 : 可直接使用各种 hash算法 可使用将来的更加安全和更加快速的 hash算法 保持原始 hash算法的性能 密钥的使用简单 与 hash函数有同等的安全性  Institute of Computer Science amp。 Technology, Peking University 53 hash函数小结  hash函数特点 : 可作用于任何尺寸数据且均产生定长输出 能够快速计算 单向性 : 给定 h,找到 x使 h=H(x)在计算上不可行 Strong Collision Resistence(SCR): 找到 yx使H(x)=H(y)在 计算上不可行 hash应用 消息认证 (如 HMAC) 数字签名  Institute of Computer Science amp。 Technology, Peking University 54 数字签名 传统签名的基本特点 : 能与被签的文件在物理上不可分割 签名者不能否认自己的签名 签名不能被伪造 容易被验证 数字签名是传统签名的数字化 ,基本要求 : 能与所签文件“绑定” 签名者不能否认自己的签名 签名不能被伪造 容易被 自动 验证  Institute of Computer Science amp。 Technology, Peking University 55 数字签名分类 以方式分 direct digital signature arbitrated digital signature 以安全性分 无条件安全的数字签名 计算上安全的数字签名 以可签名次数分 一次性的数字签名 多次性的数字签名 Institute of Computer Science amp。 Technology, Peking University 56 RSA签名 A的公钥私钥对 {KUa||KRa} A对消息 M签名 : SA=EKRa(M) 问题 : 速度慢 信息量大 第三方仲裁时必须暴露明文信息 同态性漏洞 : EKRa(xy)EKRa(x)EKRa(y) mod n 先做摘要 : HM = hash(M) 再对 HM签名 SA=EKRa(HM) hash函数的无碰撞性保证了签名的有效性 Institute of Computer Science amp。 Technology, Peking University 57 签名与加密 签名提供真实性 (authentication) 加密提供保密性 (confidentiality) “签名 +加密”提供“真实性 +保密性” 两种实现方式 : (AB) 先签名 ,后加密 : EKUb{M||SigA(M)} 先加密 ,后签名 : {EKUb(M)||SigA(EKUb(M))} 方式 的问题 : 发生争议时 ,B需要向仲裁者提供自己的私钥 安全漏洞 : 攻击者 E截获消息 ,把 SigA(EKUb(M))换成 SigE(EKUb(M)),让 B以为该消息来自 E 保存信息多 :除了 M,SigA(EKUb(M)), 还要保存EKUb(M) (∵ KUb可能过期 ) Institute of Computer Science amp。 Technology, Peking University 58 Direct digital signature AB: {M||SigA(M)} (RSA: {M||EKRa(M)}) 私钥的有效性 : 发送者通过声称私钥丢失而否认自己签名的消息 (例如发现签过的内容对他不利的时候 ) 私钥丢失 : 盗窃者可用偷来的私钥伪造签名 Institute of Computer Science amp。 Technology, Peking University 59 Arbitrated digital signature(1) 基本思想 :仲裁者 C保存双方的正确信息 ,A签名的消息经过仲裁者 C后发给 B 方案一 : 使用对称密钥 AC: {M||EKac(IDA,H(M))} A对消息 M产生摘要 H(M),把摘要与 A的身份一起用 A与仲裁者的共享密钥加密 ,同消息 M一起给仲裁者 (需要时 M也可被加密 ) CB: {EKcb(IDA||M||EKac(IDA,H(M))||T)} 仲裁者解密接到的信息 ,检查 A的身份以及消息 M的摘要 ,验证无误后加上时间戳发给 B,所有内容用它与 B的共享密钥加密 问题 : 仲裁者知道 A,B通信的内容 Institute of Computer Science amp。 Technology, Peking University 60 Arbitrated digital signature(2) 方案二 : 使用对称密钥  AC: {EKab(M)||EKAC(IDA,H(EKab(M)))} A对消息 M=EKab(M)产生摘要 H(M),把摘要与 A的身份一起用 A与仲裁者的共享密钥加密 ,同消息M一起给仲裁者 ,其中 EKab是 A和 B的共享密钥  CB: {EKcb(IDA||EKab(M) ||EKac(IDA,H(EKab(M)))||T)} 仲裁者解密接到的信息 ,检查 A的身份以及消息 M的摘要 ,验证无误后加上时间戳发给 B,所有内容用它与 B的共享密钥加密 仲裁者与 A合伙 ,可使 A抵赖发送的消息 仲裁者与 B合伙 ,可使 B抵赖或伪造接收的消息 In。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。