收藏 分享(赏)

北京交通大学-密码学-第12章-消息认证码.ppt

上传人:无敌 文档编号:387990 上传时间:2018-04-04 格式:PPT 页数:38 大小:2.26MB
下载 相关 举报
北京交通大学-密码学-第12章-消息认证码.ppt_第1页
第1页 / 共38页
北京交通大学-密码学-第12章-消息认证码.ppt_第2页
第2页 / 共38页
北京交通大学-密码学-第12章-消息认证码.ppt_第3页
第3页 / 共38页
北京交通大学-密码学-第12章-消息认证码.ppt_第4页
第4页 / 共38页
北京交通大学-密码学-第12章-消息认证码.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、第12章 消息认证码,本章内容,消息认证概述消息认证函数消息加密消息认证码Hash函数基于Hash函数的MAC:HMAC基于分组密码的MAC,定义,消息认证(Message Authentication) 是一个证实收到的消息来自可信的源点且未被篡改的过程;散列函数(Hash Functions)一个散列函数以一个变长的报文作为输入,并产生一个定长的散列码,有时也称报文摘要,作为输出;数字签名(Digital Signature)是一种防止源点或终点抵赖的鉴别技术.,通信系统典型攻击,泄密:将消息透露给没有合法密钥的任何人或程序传输分析:分析通信双方的通信模式.在面向连接的应用中,确定连接的频

2、率和持续时间;在面向连接或无连接的环境中,确定双方的消息数量和长度.消息篡改内容修改:消息内容被插入、删除、修改;顺序修改:插入、删除或重组消息序列;时间修改:消息延迟或重放.冒充:从一个假冒信息源向网络中插入消息抵赖:接受者否认收到消息;发送者否认发送过消息.,消息认证,认证的目的认证模型认证函数,消息认证概述,认证的主要目的有:第一,验证信息的发送者是真正的,而不是冒充的,此为信源识别;第二,验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等.,消息认证概述,一个单纯的消息认证系统的模型,认证系统的组成,认证编码器和认证译码器可抽象为认证函数一个安全的认证系统,需满足意定的接收者能

3、够检验和证实消息的合法性、真实性和 完整性;消息的发送者和接收者不能抵赖;除了合法的消息发送者,其它人不能伪造合法的消息.首先要选好恰当的认证函数,该函数产生一个认证标识,然后此基础上,给出合理的认证协议(Authentication Protocol),使接收者完成消息的认证.,认证函数,可用来做认证的函数分为三类:(1) 消息加密函数(Message Encryption) 用完整信息的密文作为对信息的认证.(2) 消息认证码MAC(Message Authentication Code) 公开函数+密钥产生一个固定长度的值作为认证标识.(3) 散列函数(Hash Function) 是一

4、个公开的函数,它将任意长的信息映射成一个固定长度的信息.,消息加密,消息的自身加密可以作为一个认证的度量对称密钥模式和公开密钥模式有所不同,消息加密,差错控制:Error Control,消息加密,消息加密,消息加密,消息认证码(MAC),使用一个密钥生成一个固定大小的小数据块,并加入到消息中,称MAC,或密码校验码.假定通信双方比如A和B, 共享密钥K. 若A向B发送消息时,则A计算MAC,它是消息和密钥的函数,即 MAC=C(K,M)其中,M是输入消息,C是MAC函数,K是共享密钥,MAC是消息认证码.,消息认证码(MAC),消息和MAC一起被发送给接收方.接收方对收到的消息用相同的密钥K

5、进行相同的计算,得出新MAC,并将接收到的MAC与其计算出的MAC进行比较,如果假定只有收发双方知道该密钥,那么若接收到MAC与计算得出的MAC相等,则 1、接收者可以确信消息M未被改变. 2、接收者可以确信来自所声称的发送者 3、如果消息中包含顺序码,则接收者可以保证消息的正常顺序;注意:MAC算法不要求可逆性而加密算法必须是可逆的;与加密相比,认证函数更不易被攻破; 由于收发双方共享密钥,因此MAC不能提供数字签名功能,消息鉴别码(MAC),注意:理论上,对不同的M,应产生不同MAC. 因为若M1M2,而MAC1= MAC2,则攻击者可 将M1篡改为M2,而接收方不能发现.但是要使函数C具

6、备上述性质,将要求报文认证MAC至少和报文M一样长,这是不方便的.,消息鉴别码(MAC),实际应用时要求函数C具有以下性质: 已知M1和MAC1构造满足MAC1= MAC2的M2在计算上 是不可行的;MAC函数应是均匀分布的,即对任何随机的报文M1和 M2, MAC1= MAC2的概率是2-n,其中n是MAC的位数;设M2是M1的某个已知的变换,即M2=f(M1),如f 改变M1 的一位或多位,那么MAC1= MAC2的概率是2-n.,MAC的基本使用方法(a),MAC的基本用法(b),MAC的基本用法(c),通过加密得到信息真实性: 问题,有些应用场合期望在超过接收时间后,继续延长保护期限同

7、时允许处理消息的内容。如果使用加密解密后保护就失效了,这样消息只能在传输过程中得到完整性保护,但在目标系统中却办不到。,保密性与真实性是两个不同的概念根本上,信息加密提供的是保密性而非真实性加密代价大(公钥算法代价更大)认证函数与保密函数的分离能提供功能上的灵活性某些信息只需要真实性,不需要保密性广播的信息难以使用加密(信息量大)网络管理信息等只需要真实性政府/权威部门的公告,对MAC码的攻击,穷举攻击穷举产生MAC码的密钥,计算复杂度2k穷举MAC码,计算复杂度2n至少128位安全密码分析方法“addon11/On the Security of Two MAC Algorithms.ps”

8、,MAC的构造,基于加密算法的MAC码算法(CMAC)DES-CBC(FIPS-113) 基于散列函数的MAC码算法(HMAC)把HASH值和一个Key结合起来既能用当前的HASH函数,又易升级为新的HASH函数,并能保持和散列函数一样安全性简单,并易进行密码学分析,基于Hash函数的MAC:HMAC,HMAC是由Mihir Bellare,Ran Canetti和Hugo Krawczyk于1996年首先提出2002年3月6日美国国家标准技术研究所(NIST) 发布了The Keyed-Hash Message Authentication Code(HMAC),用来认证消息的起源及其完整性

9、; 这个算法也被美国国家标准局(ANSI)发布的 X9.71中,基于Hash函数的MAC:HMAC,HMAC的基本观点是: 使用Hash函数H,K1和K2(K1K2) 计算MAC=H(K1H(K2m), 其中H,K1和K2由同一个密钥K导出,基于Hash函数的MAC:HMAC,HMAC的工作流程如下:H是一个Hash函数K表示密钥B表示计算消息摘要时消息分块的字节长度(对MD5和SHA-1是512比特,64字节)L表示消息摘要按字节计算的长度(对MD5是16字节)Ipad表示0x36重复B次,opad表示0x5c重复B次K可以有不超过B字节的任意长度,但一般建议K的长度不小于L。当使用长度大于

10、B的密钥时,先用H对密钥进行杂凑,然后用得出的L字节作为MAC的真正密钥,HMAC的结构,HMAC的有效实现方案,基于Hash函数的MAC:HMAC,上面的描述可以表述为:,计算一个数据“文本”的HMAC的操作如下:1. 在K的后面加上足够的0以得到B字节的串2. 将上一步得到的B自己串与ipad异或3. 将数据流“文本”接在第2步得到B字节串后面4. 将H应用于上一步的比特串5. 将第1步所得到的B字节串与opad异或6. 将第4步的消息摘要接在第5步的B字节串后面7. 应用H于上一步的比特串,MAC/HMAC的安全性,攻击加密算法(如果有使用加密算法)攻击Hash函数 单向 找碰撞报文/

11、Hash值大小 生日攻击攻击使用方法 不正确的实现和使用方式,HMAC标准,RFC 2104HMAC:Keyed-Hashing for Message AuthenticationFIPS 198The Keyed-Hash Message Authentication Code (HMAC),基于分组密码的MAC:DAA,利用强的分组密码可以产生MAC:需认证的数据被分成128位的分组D1D2 DN, 若最后分组不足128位,则在其后填0至成为128位分组用AES按CBC方式加密,产生MAC.,基于分组密码的MAC:DAA,其中,O1=AES(D1IV,K), Oi=AES(DiOi-1,K),(2iN),MAC=On,IV是初始向量,此处取0;K为密钥.很容易用其它强的分组密码来计算产生MAC.,基于分组密码的MAC:CMAC,FIPS-113(K1/K2由K衍生),本节总结,消息认证概述 消息认证函数 基于Hash函数的MAC 基于分组密码的MAC,作业,12.2,12.4,

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

当前位置:首页 > 高等教育 > 大学课件

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


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

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

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