收藏 分享(赏)

Hash函数和消息认证码.ppt

上传人:w89153 文档编号:5244312 上传时间:2019-02-13 格式:PPT 页数:108 大小:10.26MB
下载 相关 举报
Hash函数和消息认证码.ppt_第1页
第1页 / 共108页
Hash函数和消息认证码.ppt_第2页
第2页 / 共108页
Hash函数和消息认证码.ppt_第3页
第3页 / 共108页
Hash函数和消息认证码.ppt_第4页
第4页 / 共108页
Hash函数和消息认证码.ppt_第5页
第5页 / 共108页
点击查看更多>>
资源描述

1、2012年4月3日,计算机安全技术与实践 Hash和消息认证码,Hash函数,密码学Hash函数的基本性质,单向性:对于预先给定的Hash值找不到对应的数据块,抗碰撞性:找不到不同的数据块对应相同的Hash值,Hash函数用途消息认证,消息认证确保收到的数据确实和发送时一样,即消息没有被 修改 插入 删除 重放 当Hash函数用于消息认证时,Hash函数的值通常称为消息摘要,密码学Hash函数用于消息认证,密码学Hash函数用于签名,Hash函数的其他用途,给明文增加结构特征以保护密文 从口令衍生密钥 挑战-应答认证协议中 用来产生随机数,两种简单Hash函数,经度冗余校验,Hash函数 h=

2、H(x)的安全性要求,函数参数 输入:可以任意长度 输出:必须固定长度n比特,一般n=128、160bits 函数特性 效率:给定x,计算H(x)h是容易的 单向性质:给定h,要找x使H(x)h是困难的 弱抗碰撞特性:对于给定的y,找x,使H(x)H(y)是困难的 强抗碰撞特性(生日攻击):找x和y,使H(x)H(y)是困难的 伪随机性:输出满足伪随机测试标准,Hash安全特性之间的关系,抗原像攻击,抗弱碰撞攻击,抗强碰撞攻击,Hash函数设计考虑,奇偶校验 异或XOR(或者累加) 只能检出奇数个比特错误 CRC 常用在帧校验 仍有很高的比率不能检出传输比特错误 * 不能满足单向性和抗冲突 复

3、杂的密码学用散列函数 MD2/MD5 SHA/SHA1,找碰撞:生日攻击,最多尝试2n1个报文,必有至少一对碰撞问:平均尝试多少个报文,可以以1/2的概率找到一对碰撞? 2n/2 类比问题(生日问题) 最多找365+1个人,则必有至少两个人生日相同 问:平均找多少个人,能以1/2的概率找到两人生日相同?23 如果采用64-bit的Hash码,以一半概率找到碰撞的代价的数量级是232,有237种变体的信,生日悖论,对Hash的攻击,穷举攻击(输出为n位的Hash函数) 抗弱碰撞性的能力为 2n 抗强碰撞性的能力为 2n/2对MD5的密码分析 已有重大进展,可以在数小时至数分钟内产生一对冲突(攻击

4、强抗碰撞特性),安全Hash的一般结构,如果压缩函数具有抗碰撞性,那么迭代Hash函数也具有抗碰撞性。显然反之不然。,基于分组码链接的Hash函数,受分组码分组大小的影响,易受生日攻击,中间相遇攻击,E,E,E,E,.,H0,Q1,QN-1,X,Y,G,SHA-512,输入2128,输出512位,以1024位分组处理 寄存器初始值a = 6A09E667F3BCC908b = BB67AE8584CAA73Bc = 3C6EF372FE94F82Bd = A54FF53A5F1D36F1e = 510E527FADE682D1f = 9B05688C2B3E6C1Fg = 1F83D9ABFB

5、41BD6Bh = 5BE0CD19137E2179,SHA-512 概览,SHA-512 Round,SHA-512 Round Function,SHA-512 Round Function,SHA3,2007年开始 2012年结束 还没征集出来,基于分组密码的散列函数的缺点,不利于随机化 因为加密是可逆的, 分组密码存在规则性 分组密码通常很慢 分组密码分组长度小于散列值长度 通常64位或128位 vs. 128/160/256/384/512Whirlpool的考虑,Whirlpool Overview,通用循环散列结构Merkle,Whirlpool K Hi-1 FF PHi-1,

6、Whirlpool 轮次,和AES比较,Whirlpool的安全性,较新而缺少经验和结论 所需硬件资源比SHA-12多,但同时也较快,Whirlpool实现,参考实现 http:/.br/informatica/paulobarreto/whirlpool.zip,12.a 其他散列算法,RIPEMD-160Tiger Snefru Haval,RIPEMD-160,About by Hans Dobbertin, Antoon Bosselaers, Bart Preneel in RACE/RIPE http:/www.esat.kuleuven.ac.be/bosselae/ripemd

7、160.html based on RIPEMD which is 128bits after successful attacks on MD4/5 Basic logic input: any length output: 160bits block size: 512bits process ,RIPEMD-160,填充、初始化 同SHA1 但little endian,RIPEMD-160 Round,RIPEMD-160 Constants Table,常量表,Truth Table of Logical Functions for RIPEMD-160,BCD f1f2 f3f4

8、f5 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0,RIPEMD-160参数对比,与MD5/SHA-1比较,速度对比,Algorithm cycles Mb/s MB/s relative performance MD4 241 191.2 23.90 1.00 MD5 337 136.7 17.09 0.72 RIPEMD 480 96.0 12.00 0.50 RIPEMD-128

9、592 77.8 9.73 0.41 SHA-1 837 55.1 6.88 0.29 RIPEMD-160 1013 45.5 5.68 0.24 on a 90 MHz Pentium,Tiger,Tiger Hash designed by Ross Anderson and Eli Biham in 1996 http:/www.cs.technion.ac.il/biham/Reports/Tiger/ efficiency on 64-bit platforms the hash value is 192 bits,Snefru,Snefru The Xerox Secure Ha

10、sh Function SnefruXY:X安全级别,Y输出字节长度,Haval,Haval HAsh of VAriable Length HavalXY:X轮数,Y输出字节长度,认证 Authentication,认证和加密不同。 消息认证是验证消息完整性的一种机制,能发现对消息的篡改或假冒。 使用对称算法可产生消息鉴别码MAC 使用公钥算法可对消息进行签名 身份认证是鉴别通信对方的身份是否属实。 Hash函数是一个单向的消息摘要函数,在产生MAC、签名中有重要用途。,对网络通信的攻击,窃听 流量分析 伪装(假冒) 篡改内容 修改顺序 修改时间(包括重放) 发送方抵赖(拒绝承认曾发出过某消

11、息) 接收方抵赖,认证函数,对称加密 公钥加密 消息认证码(MAC) 散列函数(Hash),消息加密的基本使用,对称加密能否提供认证,由于密钥没有第三方知道,所以接收方应该可以确信消息的来源真实性。这并不绝对,因为存在一种可能性,是对密文的篡改。问题:对密文的篡改,能否一定被察觉?,能够察觉的举例,CBC模式加密得到密文 某处被窜改,导致其后续部分解密失败#openssl enc -e -des-cbc -in 2.txt -out 2.out#openssl enc -d -des-cbc -in 2modi.out -out 2modi.txt,Salted_兝魂(|M?蓪Zix嵙鮃礘pA

12、諑蟱O碁谜?e妗觪Tr焥e?橈雚?L?律翯籽x摘揗其顣:f$FSI_bkXpQ粏?摻l廕w?雸CBC模式中某个比特被窜改导致其后续部分解密失败rc4加密中,对密文部分比特的窜改导致对应明文部分解密错误Salted_兝魂(|M?蓪Zix嵙鮃礘pA諑蟱O碁谜?e妗觪Tr焥e?橈雚?l?律翯籽x摘揗其顣:f$FSI_bkXpQ粏?摻l廕w?雸CBC模式中某个比特被窜改导致其后续部分解密失败r浣妒z懀悦芪洳糠直忍氐拇芨牡贾露杂魑牟糠纸饷艽砦?,不能够察觉的举例,rc4加密中,对密文部分比特的窜改导致明文对应部分解密错误如何察觉另外,随意伪造的密文有可能恰好解密为有效的明文 结论:加密并不能完全抵抗篡改

13、或假冒,hi, Bob,i want you to give Carol $3500. by Alice拋&y?疚c諍滆|?貗=?d鱖5L?kJZJ5畺?D?*幖邓?拋&y?疚c諍滆|?貗=?d鱖5L?kJZJ0畺?D?*幖邓?hi, Bob,i want you to give Carol $6500. by Alice,对密文的保护:内部错误控制和外部错误控制,结构复杂会增强认证能力,公钥加密,A使用B的公钥加密消息,这不能提供认证。 A可以先使用自己的私钥加密消息(即签名),再用B的公钥加密,这样可以提供认证。 亦需要给明文消息添加结构特征,消息认证码 MAC,(假定双方共享密钥) 发送

14、方利用密钥从明文产生一个固定长度的短数据块(MAC),和消息一起传输。 接收方考察是否一致,以判断MAC和/或消息是否被改动过。,消息认证码的基本用途,避免使用加密方法产生MAC码,生成MAC没有必要整个报文被加密 速度、进出口障碍 不需要能恢复原文 MAC的计算过程只需体现明文的特征唯一 Key是必要的 从报文产生特征的数学方法:HASH函数 先计算特征,再把特征加密的思想 把散列函数和Key结合得MACHMAC = HashKey(Message),关于加密和认证分离,加密本身不能实现真实性认证功能 认证和加密的分离带来灵活性 只要认证而不需保密如公文,软件完整性鉴别(防病毒)、网络管理广

15、播报文(如SNMP)等 不能加密的场合(如法规限制) 存档期间的保护(而不仅是传输期间),消息认证码MAC,MAC函数 计算明文M在密钥K的作用下的特征码M | MAC(M, K) 验证时,判断明文M和MAC码是否一致,关于MAC的讨论,MAC不需要可逆 为了方便,MAC码通常较短 实现MAC函数不排斥使用对称加密算法 实现MAC函数希望使用比加密更高效的方法 为防范重放攻击,加注时间、报文序号 对称MAC不能提供签名特性 因为产生MAC的密钥为两方所有,HMAC:带Key的Hash函数,利用HASH函数从报文和密钥产生MAC码 先计算特征,再把特征加密的思想,或 直接把散列函数和Key结合得

16、MACHMAC = HashKey(Message)比如HMAC = Hash(Key | Message),HMAC,K 填充0至bbits Yi 报文分组 ipad 0x36*b/8 opad 0x5C*b/8 IV 依赖于Hash,优化实现HMAC,适合一个Key产生多个小报文的MAC的情况,MAC/HMAC的安全性,攻击加密算法 (如果有使用加密算法) 攻击Hash函数 单向 找碰撞报文 / Hash值大小 生日攻击 攻击使用方法 不正确的实现和使用方式,HMAC标准,RFC 2104 HMAC:Keyed-Hashing for Message Authentication FIPS

17、 198 The Keyed-Hash Message Authentication Code (HMAC),12.3 HMAC,基于加密算法的MAC码算法(CMAC) DES-CBC(FIPS-113) 基于散列函数的MAC码算法(HMAC) 把HASH值和一个Key结合起来 既能用当前的HASH函数,又易升级为新的HASH函数,并能保持和散列函数一样安全性 简单,并易进行密码学分析 HMAC(K,M) = H(K+opad)|H(K+ipad)|M,HMAC,K 填充0至bbits Yi 报文分组 ipad 0x36*b/8 opad 0x5C*b/8 IV 依赖于Hash,优化实现HMA

18、C,适合一个Key产生多个小报文的MAC的情况,MAC/HMAC的安全性,攻击加密算法 (如果有使用加密算法) 攻击Hash函数 单向 找碰撞报文 / Hash值大小 生日攻击 攻击使用方法 不正确的实现和使用方式,HMAC标准,RFC 2104 HMAC:Keyed-Hashing for Message Authentication FIPS 198 The Keyed-Hash Message Authentication Code (HMAC),CBC模式最后分组做为MAC码:DAA,基于分组码的Mac:CMAC,认证加密CCM,GCM认证加密,GCM消息认证码,基于Hash的伪随机数

19、生成器,基于Hash的三个伪随机函数,为了承诺,数字签名是密码学发展过程中的最重要的概念之一。数字签名可以提供其他方法难以实现的安全性-抗抵赖。,数字签名 Digital Signature,加密 报文鉴别数字签名 抵制通信双方的抵赖对方(自己)否认发送过或收到过某个报文 向对方表明自己的身份,13.1 数字签名,消息认证基于共享秘密,不能防止抵赖 只是2方合作抵抗第3方窜改/假冒 共享的秘密不具有排他性质 双方有同样的不分彼此地能力;因此对某个报文的存在和有效性,每一方都不能证明是自己所为,或者是和自己无关 特异性 要想实现类似签名的安全能力,必须使每个人使用独有的秘密,考察手写签名的特性,

20、签名的含义 签名者慎重表达认可文件内容的意向的行为 主要形式 手写签名、签章、手指纹印(其他生物技术) 特性 不可伪造,特异性 不可重用,日期和时间相关性 不可改变,能发现涂改、转移意义或用途 不可抵赖,能够质证 可仲裁的,可做为法律证据,数字签名: 要适应的新变化,数字签名 手写签名 数字文件 纸版文件 数字小文件 手写字(签章) 如何绑定? 同一页纸关于扫描手写字迹、鼠标手写 No!,手写签名的数字化改造,数学支持签名函数 被签署的是文件(大文件) 签名生成另外一个文件(小文件) 签名过程一定有签署人的身份和某种秘密(别人不知的)参与 简单易行计算/存储,签名函数,报文(大),报文,签名(

21、小),身份和秘密,用私钥加密当作签名,主要操作 输入 报文明文、私钥 md = s 输出 报文明文、报文密文(签名) (m, s) 验证 se =? m 是否满足签名要求的特性 讨论 私钥(其实是公钥)的管理: 和身份绑定、更新等 签名过程太慢: 启用散列函数 改进 对报文的散列值用私钥加密得到和n等宽的签名值,无中心数字签名,直接使用自己的私钥加密作为签名 无中心 存在问题 声称私钥被偷窃而抵赖。虽然可以给报文添加时间戳,并要求用户必须及时挂失私钥,但是盗用者仍可以伪造较早期的签名。引入中心可以有很多优点,同时也很多缺点。,有信任中心帮助的签名,优点:可以简化用户的考虑,甚至可以使用对称算法

22、缺点:中心的安全故障、在线瓶颈、可靠性等问题,13.1a PKCS#1V2.1 Outline,RSA public key :(n,e) RSA private key:(n,d)ed1 mod (n)其中是n的(素因子-1)的LCM I2OSP (Integer-to-Octet-String primitive) 给定正整数x,输出字节串X=X1X2X3x2560X12561X22562X3 OS2IP (Octet-String-to-Integer primitive) 输入字节串,返回整数值,RSA Primitive,RSAEP (n, e), m) c = me mod n R

23、SADP (n,d), c) m = cd mod nRSASP1(n,d), m) s = md mod n RSAVP1(n,e), s) m = se mod n,Encryption Schemes,ES RSAES-OAEP (Optimal Asymmetric Encryption Padding) new, recommended RSAES-PKCS1-v1_5 obsolete RSAES-OAEPEME-OAEPRSAEP/RSADP RSAES-PKCS1-v1_5EME-PKCS1-v1_5RSAEP/RSADP,RSAES-OAEP,RSAES-OAEP-ENCRY

24、PT(n, e), M, L) Option: Hash of hLen-byte MGF mask generation function (output, an octet string) mLen = k-2hLen-2 L optional label to be associated with the message |L| = 261-1 octets for SHA-1 EME-OAEP encoding EM = 0x00 | maskedSeed | maskedDB m = OS2IP (EM) c = RSAEP (n, e), m) C = I2OSP (c, k) R

25、SAES-OAEP-DECRYPT (K(n, d), C, L),EME-OAEP encoding operation,Signature schemes with appendix,SS RSASSA-PSS (Probabilistic Signature Scheme) new, recommended RSASSA-PKCS1-v1_5 obsoleteRSASSA-PSS EMSA-PSSRSASP1/RSAVP1 RSASSA-PKCS1-v1_5 EMSA-PKCS1-v1_5RSASP1/RSAVP1,RSASSA-PSS,RSASSA-PSS-SIGN (K=(n,d),

26、 M) EM = EMSA-PSS-ENCODE (M, modBits 1) m = OS2IP (EM) s = RSASP1 (K, m) S = I2OSP (s, k)RSASSA-PSS-VERIFY (n, e), M, S),RSASSA-PKCS1-v1_5,RSASSA-PKCS1-V1_5-SIGN (K(n, d), M)EM = EMSA-PKCS1-V1_5-ENCODE (M, k)m = OS2IP (EM)s = RSASP1 (K, m)S = I2OSP (s, k)RSASSA-PKCS1-V1_5-VERIFY(n, e), M, S),Encodin

27、g methods for signatures with appendix,EM EMSA-PSS EMSA-PKCS1-v1_5 EMSA-PSS EMSA-PSS-ENCODE (M, emBits) EMSA-PSS-VERIFY (M, EM, emBits) EMSA-PKCS1-v1_5 EMSA-PKCS1-v1_5-ENCODE (M, emLen),EMSA-PSS encoding operation,EMSA-PKCS1-v1_5,EMSA-PKCS1-v1_5-ENCODE (M, emLen) Option: Hash of hLen-byte emLen at l

28、east tLen + 11 H = Hash (M) T = HashIDH (ASN.1编码) DigestInfo := SEQUENCE digestAlgorithm AlgorithmIdentifier, digest OCTET STRING PS: emLen-tLen-3(8+B) octets with value 0xff EM = 0x00 | 0x01 | PS | 0x00 | T,对HASH的ASN.1编码 (in EMSA-PKCS1-v1_5),MD2 ref laymans guide30 20 30 0c 06 08 2a 86 48 86 f7 0d

29、02 02 05 00 04 10 | H MD530 20 30 0c 06 08 2a 86 48 86 f7 0d 02 05 05 00 04 10 | H SHA-130 21 30 09 06 05 2b 0e 03 02 1a 05 00 04 14 | H SHA-25630 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20 | H SHA-38430 41 30 0d 06 09 60 86 48 01 65 03 04 02 02 05 00 04 30 | H SHA-51230 51 30 0d 06 09 60

30、 86 48 01 65 03 04 02 03 05 00 04 40 | H,回顾ElGamal加密体制,准备 素数p,Zp*中本原元g,公开参数 私钥a,公钥b=ga mod p 加密 对明文1=m=p-1,选随机数k 密文(c1, c2)c1=gk mod p, c2=mbk mod p 解密 mc2 (c1a)-1mbk (gk)a)-1m(ga)k (g-ka)m mod p,Zp满足离散对数问题难解,是生成元设P Zp* ,A Zp*Zp-1K (p, a,), =a (mod p) 私钥是a 签名时,取秘密随机数kZp-1*,定义sig(x,k) = (,), (k mod p

31、, (x-a)k-1 mod (p-1) 验证ver(x, (,): ?x mod p,验证正确性证明,如果 (x,)是真实签名aka+k而 (x-a) k-1 mod (p)即 ax-k mod (p)故 n(p)+x-k+k n(p)+x n(p)x x mod p 其实就是签名时从 kax解出来得,签名计算实例,p467,2,a127,则a mod p 2127 mod 467 132 签名x100,取k213(注: k得和p-1互素),则k-1213-1 mod 466 = 431k mod p 2213 mod 467 29 (x-a) k-1 mod (p) (100-12729)

32、431 mod 46651签名值:(100,(29,51)),验证计算实例,p467,2,a127, 132(x,(,))(100,(29,51)) 判断是否:x mod p事实上132292951189 mod 467x2100189 mod 467 而且,如果(100,(29,51))的任何改变都会导致验证失败,13.3 数字签名标准,Digital Signature Standard (DSS)Digital Signature Algorithm (DSA) DSS标准DSA FIPS 186 NIST 1991 1993 只能签名,不能加密 概念对比RSA:MEki(H(M),ki是私钥DSS:MEki(H(M), k),ki是私钥 k是随机数,图示 RSA vs. DSS,DSA,准备 素数p,约512比特; 素数q,约160比特,要求是p-1的因子 选择gh(p-1/q) mod p 密钥 用户私钥x,xq 公钥y,ygx mod p 签名,对报文M 产生随机数k r(gk mod p) mod q s= k-1 (H(M)+xr) mod q (r,s)即是签名,连同明文的M 验证,测试是否vr,其中 vgu1yu2 mod p mod qu1H(M) s-1 mod qu2rs-1 mod q,DSA Figure,几个文件,供参考,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报