hash函数和消息认证码

上传人:xh****66 文档编号:61788797 上传时间:2018-12-12 格式:PPT 页数:108 大小:10.16MB
返回 下载 相关 举报
hash函数和消息认证码_第1页
第1页 / 共108页
hash函数和消息认证码_第2页
第2页 / 共108页
hash函数和消息认证码_第3页
第3页 / 共108页
hash函数和消息认证码_第4页
第4页 / 共108页
hash函数和消息认证码_第5页
第5页 / 共108页
点击查看更多>>
资源描述

《hash函数和消息认证码》由会员分享,可在线阅读,更多相关《hash函数和消息认证码(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 = 6A09E667F3BCC908 b = BB67AE8584CAA73B c = 3C6EF372FE94F82B d = A54FF53A5F1D36F1 e = 510E527FADE682D1 f = 9B05688C2B3E6C1F g

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

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

7、bosselae/ripemd160.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

8、,BCD f1f2 f3f4 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

9、.50 RIPEMD-128 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

10、Xerox Secure Hash 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,Sal

12、ted_兝魂(|M?蓪Zix嵙鮃礘pA諑蟱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的公钥加密,这样可以提供认证。 亦需要给明文消息添加

14、结构特征,消息认证码 MAC,(假定双方共享密钥) 发送方利用密钥从明文产生一个固定长度的短数据块(MAC),和消息一起传输。 接收方考察是否一致,以判断MAC和/或消息是否被改动过。,消息认证码的基本用途,避免使用加密方法产生MAC码,生成MAC没有必要整个报文被加密 速度、进出口障碍 不需要能恢复原文 MAC的计算过程只需体现明文的特征唯一 Key是必要的 从报文产生特征的数学方法:HASH函数 先计算特征,再把特征加密的思想 把散列函数和Key结合得MAC HMAC = 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码 先

16、计算特征,再把特征加密的思想,或 直接把散列函数和Key结合得MAC HMAC = 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 198 The Keyed-Hash

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

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