消息认证和hash函数

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

《消息认证和hash函数》由会员分享,可在线阅读,更多相关《消息认证和hash函数(27页珍藏版)》请在金锄头文库上搜索。

1、2012年3月25日,计算机安全技术与实践 消息认证和散列函数,认证 Authentication,认证和加密不同。 消息认证是验证消息完整性的一种机制,能发现对消息的篡改或假冒。 使用对称算法可产生消息鉴别码MAC 使用公钥算法可对消息进行签名 身份认证是鉴别通信对方的身份是否属实。 Hash函数是一个单向的消息摘要函数,在产生MAC、签名中有重要用途。,11.1 认证需求,对网络通信的攻击(4类) 窃听 流量分析 伪装(假冒) 篡改内容 修改顺序 修改时间(包括重放) 发送方抵赖(拒绝承认曾发出过某消息) 接收方抵赖,11.2 认证函数,1. 对称加密 2. 公钥加密 3. 消息认证码(M

2、AC) 4. 散列函数(Hash),对称加密能否提供认证,由于密钥没有第三方知道,所以接收方应该可以确信消息的来源真实性。 这并不绝对,因为存在一种可能性,是对密文的篡改。 问题:对密文的篡改,能否一定被察觉?,能够察觉的举例,CBC模式加密得到密文 某处被窜改,导致其后续部分解密失败,不能够察觉的举例,rc4加密中,对密文部分比特的窜改导致明文对应部分解密错误 ?如何察觉 另外,随意伪造的密文有可能恰好解密为有效的明文,教训:对密文的保护,在加密之前,给明文添加结构特征 x | h(x) / h=crc,md5,sha1 加密 E ( x | h(x), k ) = y 传输有可能出错或被窜

3、改 y会变做y 解密 判断是否依旧符合 x | h(x) 的结构特征,公钥加密,A使用B的公钥加密消息,这不能提供认证。 A可以先使用自己的私钥加密消息(即签名),再用B的公钥加密,这样可以提供认证。 亦需要给明文消息添加结构特征,消息认证码 MAC,(假定双方共享密钥) 发送方利用密钥从明文产生一个固定长度的短数据块(MAC),和消息一起传输。 接收方考察是否一致,以判断MAC和/或消息是否被改动过。,避免使用加密方法产生MAC码,生成MAC没有必要整个报文被加密 速度、进出口障碍 不需要能恢复原文 MAC的计算过程只需体现明文的特征唯一 Key是必要的 从报文产生特征的数学方法:HASH函

4、数 先计算特征,再把特征加密的思想 把散列函数和Key结合得MAC HMAC = HashKey(Message),散列函数 h=H(x),函数参数 输入:可以任意长度 输出:必须固定长度n比特,一般n=128、160bits 函数特性 单向性质:给定h,要找x使H(x)h是困难的 弱抗碰撞特性: 对于给定的y,找x,使H(x)H(y)是困难的 强抗碰撞特性(生日攻击): 找x和y,使H(x)H(y)是困难的 * 如果碰撞则意味着数字签名容易被伪造/欺骗,关于加密和认证分离,加密本身不能实现真实性认证功能 认证和加密的分离带来灵活性 只要认证而不需保密 如公文,软件完整性鉴别(防病毒)、网络管

5、理广播报文(如SNMP)等 不能加密的场合(如法规限制) 存档期间的保护(而不仅是传输期间),11.3 消息认证码MAC,Message Authentication Code MAC函数 计算明文M在密钥K的作用下的特征码 M | MAC(M, K) 验证时,判断明文M和MAC码是否一致,MAC,讨论 MAC不需要可逆 为了方便,MAC码通常较短 实现MAC函数不排斥使用对称加密算法 实现MAC函数希望使用比加密更高效的方法 为防范重放攻击,加注时间、报文序号 对称MAC不能提供签名特性 因为产生MAC的密钥为两方所有,CBC模式最后分组做为MAC码,FIPS 113,HMAC:带Key的H

6、ash函数,利用HASH函数从报文和密钥产生MAC码 先计算特征,再把特征加密的思想,或 直接把散列函数和Key结合得MAC HMAC = HashKey(Message) 比如 HMAC = Hash(Key | Message),11.4 Hash函数,Hash函数强调单向性和抗冲突特性 Hash函数的用途总结下先 给明文增加结构特征以保护密文 产生MAC码(HMAC) 数字签名 从口令衍生密钥 挑战-应答认证协议中 也用来产生随机数,散列函数 h=H(x),函数参数 输入:可以任意长度 输出:必须固定长度n比特,一般n=128、160bits 函数特性 单向性质:给定h,要找x使H(x)

7、h是困难的 弱抗碰撞特性: 对于给定的y,找x,使H(x)H(y)是困难的 强抗碰撞特性(生日攻击): 找x和y,使H(x)H(y)是困难的 * 如果碰撞则意味着数字签名容易被伪造/欺骗,Hash函数设计考虑,奇偶校验 异或XOR(或者累加) 只能检出奇数个比特错误 CRC 常用在帧校验 仍有很高的比率不能检出传输比特错误 * 不能满足单向性和抗冲突 复杂的密码学用散列函数 MD2/MD5 SHA/SHA1,找碰撞:生日攻击,最多尝试2n1个报文,必有至少一对碰撞 问:平均尝试多少个报文,可以以1/2的概率找到一对碰撞? 2n/2 类比问题(生日问题) 最多找365+1个人,则必有至少两个人生

8、日相同 问:平均找多少个人,能以1/2的概率找到两人生日相同? 23,The Birthday Paradox,分组链接技术,一种Hash函数设计方法(基于某种加密算法) by Rabin H0=初始值 Hi=E(Mi,Hi-1) G=Hn 推荐使用MD5或SHA1,11.5 Hash和MAC安全性,对Hash函数/MAC码的攻击方法 穷举攻击 密码分析,对Hash的攻击,穷举攻击(输出为n位的Hash函数) 抗弱碰撞性的能力为 2n 抗强碰撞性的能力为 2n/2 对MD5的密码分析 已有重大进展,可以在数小时至数分钟内产生一对冲突(攻击强抗碰撞特性),对MAC码的攻击,穷举攻击 穷举产生MAC码的密钥,计算复杂度2k 穷举MAC码,计算复杂度2n 密码分析方法,小结,加密可以抵抗窃听,而认证是为了保证消息(进一步身份)的真实性。 如果加密时使用合适的方法(),也可以把认证特性加入进去,但是把认证和加密分离具有更好的灵活性。 认证码的产生须要密钥。为了效率,可以使用Hash函数。从概念上MAC码可以这样产生: Hash(Message|Key),

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

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

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