版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、n单纯的加解密算法无法保证抵抗下述攻击q伪装q内容修改q顺序修改q计时修改q发送方否认q接收方否认消息认证码数字签名不属于机密性范畴,属于数据完整性范畴Chapter 12 消息认证码消息认证码n消息认证需求n消息认证函数n消息认证码n基于Hash函数的MACn基于分组密码的MAC:DAA和CMAC2021-12-14西安电子科技大学计算机学院32021-12-14西安电子科技大学计算机学院4n可能的攻击:可能的攻击:q1. 泄密:将消息透漏给未授权方泄密:将消息透漏给未授权方q2. 传输分析:分析通信双方的通信模式传输分析:分析通信双方的通信模式q3. 伪装:欺诈源向网络中插入一条消息伪装:
2、欺诈源向网络中插入一条消息q4. 内容修改:对消息内容的修改内容修改:对消息内容的修改q5. 顺序修改:对通信双方消息顺序的修顺序修改:对通信双方消息顺序的修改改q6. 计时修改:对消息的延时和重播计时修改:对消息的延时和重播q7. 发送方否认:对消息否认发送方否认:对消息否认q8. 接收方否认:对消息否认接收方否认:对消息否认2021-12-14西安电子科技大学计算机学院5n消息认证:验证所收到的消息消息认证:验证所收到的消息确实确实是来自真是来自真实的发送方且未被修改的消息,它也可验证实的发送方且未被修改的消息,它也可验证消息的顺序和及时性。消息的顺序和及时性。n数字签名:是一种数字签名:
3、是一种认证技术认证技术,其中的一些方,其中的一些方法可用来抗发送方否认攻击。(接收者可验法可用来抗发送方否认攻击。(接收者可验证但不能伪造)证但不能伪造)消息认证 数字签名n消息认证函数是实现消息认证的基础消息认证函数是实现消息认证的基础n其工作原理和通信领域常见的差错控制编码函数类似,其工作原理和通信领域常见的差错控制编码函数类似,都是通过对原始报文进行某种运算,产生一个定长的输都是通过对原始报文进行某种运算,产生一个定长的输出,这个输出是原始报文的出,这个输出是原始报文的“冗余信息冗余信息”,即消息认证,即消息认证码,有时也被称为密码校验和。码,有时也被称为密码校验和。2021-12-14
4、西安电子科技大学计算机学院6常用的消息认证函数包括如下两类:常用的消息认证函数包括如下两类: 利用加密函数作为消息认证函数:这种方法把原利用加密函数作为消息认证函数:这种方法把原始报文加密后产生的密文作为它的消息认证码;始报文加密后产生的密文作为它的消息认证码; 专用的消息认证函数:以原始报文和密钥作为输专用的消息认证函数:以原始报文和密钥作为输入,产生定长的输出,这个输出就是原始报文的消入,产生定长的输出,这个输出就是原始报文的消息认证码。可以利用运行于息认证码。可以利用运行于CBC模式下的常规加密模式下的常规加密算法或带密钥的算法或带密钥的Hash函数(函数(HMAC)来构造消息)来构造消
5、息认证函数。认证函数。2021-12-14西安电子科技大学计算机学院72021-12-14西安电子科技大学计算机学院812.2 认证函数认证函数n两层:产生认证符两层:产生认证符 验证验证n产生认证符的函数类型:产生认证符的函数类型:q消息加密:消息的密文作为认证符。消息加密:消息的密文作为认证符。q消息认证码:消息和密钥的公开函数,产生定长消息认证码:消息和密钥的公开函数,产生定长的值作为认证符。的值作为认证符。 MAC: message authentication code qHash函数:将任意长消息映射为定长的函数:将任意长消息映射为定长的hash值值作为认证符。作为认证符。2021
6、-12-14西安电子科技大学计算机学院912.2.1 消息加密消息加密n消息加密也能提供一种认证的方法消息加密也能提供一种认证的方法n对称密码,既可以提供认证又可以提供保对称密码,既可以提供认证又可以提供保密性,但不是绝对的。密性,但不是绝对的。q只有消息具有适当的结构、冗余或含有校验和,只有消息具有适当的结构、冗余或含有校验和,接收方才可能对消息的任何变化进行检测。接收方才可能对消息的任何变化进行检测。q否则,认证难以完成。否则,认证难以完成。严格意义上说,单独使用加密技术无法实现消息严格意义上说,单独使用加密技术无法实现消息认证。(不推荐)认证。(不推荐)2021-12-14西安电子科技大
7、学计算机学院102021-12-14西安电子科技大学计算机学院112021-12-14西安电子科技大学计算机学院12消息加密消息加密n公钥体制中公钥体制中:q加密不能提供对发送方的认证(公钥是公开的)加密不能提供对发送方的认证(公钥是公开的)q发送方可用自己的私钥进行签名发送方可用自己的私钥进行签名q接收方可用发送方的公钥进行验证接收方可用发送方的公钥进行验证q保密性和可认证性保密性和可认证性 2021-12-14西安电子科技大学计算机学院132021-12-14西安电子科技大学计算机学院142021-12-14西安电子科技大学计算机学院152021-12-14西安电子科技大学计算机学院161
8、2.2.2 消息认证码消息认证码 (MAC)n一种认证技术一种认证技术n利用密钥来生成一个固定长度的短数据块(利用密钥来生成一个固定长度的短数据块(MAC),),并将该数据块附加在消息之后。并将该数据块附加在消息之后。nMAC的值依赖于消息和密钥的值依赖于消息和密钥 MAC = Ck(M)=C(M,K)qMAC函数于加密类似,但函数于加密类似,但MAC算法算法不要求不要求可逆可逆性,而加密算法必须是可逆的。性,而加密算法必须是可逆的。n接收方进行同样的接收方进行同样的MAC码计算并验证是否与发送过码计算并验证是否与发送过来的来的MAC码相同码相同2021-12-14西安电子科技大学计算机学院1
9、7MAC 特性特性nMAC码是一个密码校验和码是一个密码校验和MAC = CK(M)=C(K, M)q消息消息M的长度是可变的的长度是可变的q密钥密钥K是要保密的,且收发双方共享。是要保密的,且收发双方共享。q产生固定长度的认证码产生固定长度的认证码nMAC算法是一个多对一的函数算法是一个多对一的函数q多个消息对应同一多个消息对应同一MAC值值q但是找到同一但是找到同一MAC值所对应的多个消息应该是值所对应的多个消息应该是困难困难的。的。2021-12-14西安电子科技大学计算机学院18Message Authentication Code2021-12-14西安电子科技大学计算机学院19n若
10、相同,则有:若相同,则有:q接收方可以相信消息未被修改。接收方可以相信消息未被修改。q接收方可以相信消息来自真正的发送方。接收方可以相信消息来自真正的发送方。q接收方可以确信消息中含有的序列号是正确接收方可以确信消息中含有的序列号是正确的。的。n为什么需要使用为什么需要使用MAC?q有些情况只需要认证(如广播)有些情况只需要认证(如广播)q文档的持续保护(例如解密后的保护)文档的持续保护(例如解密后的保护)qn由于收发双方共享密钥,所以由于收发双方共享密钥,所以MAC不能不能提供数字签名提供数字签名2021-12-14西安电子科技大学计算机学院20n对对MACs的要求:的要求:q抗多种攻击(例
11、如穷举密钥攻击)抗多种攻击(例如穷举密钥攻击)q且满足且满足:n已知一条消息和已知一条消息和MAC, 构造出另一条具有同样构造出另一条具有同样MAC的消息是不可行的的消息是不可行的nMACs应该是均匀分布的应该是均匀分布的1.MAC应该依赖于消息的所有比特位应该依赖于消息的所有比特位2021-12-14西安电子科技大学计算机学院212021-12-14西安电子科技大学计算机学院222021-12-14西安电子科技大学计算机学院2312.3 HMACn密码密码hash函数作为函数作为MAC:q不用分组密码,而用不用分组密码,而用hash函数来产生函数来产生MACn因为因为hash函数一般都较快函
12、数一般都较快n没有出口限制,(分组密码有出口限制)没有出口限制,(分组密码有出口限制)qhash函数不依赖于密钥,所以不能直接用于函数不依赖于密钥,所以不能直接用于MACq建议建议:KeyedHash = Hash( Key | Message ) 2021-12-14西安电子科技大学计算机学院24利用带密钥的利用带密钥的HashHash函数实现消息认证函数实现消息认证2021-12-14西安电子科技大学计算机学院25当前获得广泛应用的构造带密钥的当前获得广泛应用的构造带密钥的Hash函数的方案是函数的方案是HMAC(keyed-hashing for message authenticati
13、on code),它是),它是Bellare等人于等人于1996年提出,并于年提出,并于1997年作年作为为RFC2104标准发表,标准发表, 并被很多因特网协议(如并被很多因特网协议(如IPSEC、SSL)所使用。)所使用。HMAC算法利用已有的算法利用已有的Hash函数,使用函数,使用不同的不同的Hash函数,就可以得到不同的函数,就可以得到不同的HMAC,例如选用,例如选用MD5时的时的HMAC记为记为HMAC-MD5,选用,选用SHA-1时的时的HMAC记为记为HMAC-SHA1。HMAC的设计目标是:的设计目标是:2021-12-14西安电子科技大学计算机学院26 可不经修改而使用现
14、有的可不经修改而使用现有的Hash函数,特别是那些易函数,特别是那些易于软件实现的、源代码可方便获取且免费使用的于软件实现的、源代码可方便获取且免费使用的Hash函数;函数; 其中嵌入的其中嵌入的Hash函数可易于替换为更快或更安全的函数可易于替换为更快或更安全的Hash函数;函数; 保持嵌入的保持嵌入的Hash函数的最初性能,不因用于函数的最初性能,不因用于HMAC而使其性能降低;而使其性能降低; 以简单方式使用和处理密钥;以简单方式使用和处理密钥; 在对嵌入的在对嵌入的Hash函数合理假设的基础上,易于分析函数合理假设的基础上,易于分析HMAC用于鉴别时的密码强度。用于鉴别时的密码强度。2
15、021-12-14西安电子科技大学计算机学院27HMAC 概览概览 2021-12-14西安电子科技大学计算机学院28 2021-12-14西安电子科技大学计算机学院29HMACn作为作为RFC2104 nHMACK = Hash(K+ XOR opad)| Hash(K+ XOR ipad)|M)n其中其中 K+ 为在为在K左边填充左边填充0后所得的后所得的b位长的结果(位长的结果(b为每为每一消息分组的位数)一消息分组的位数)nopad, ipad 都是指定的填充常量都是指定的填充常量n多执行了多执行了3次次hash压缩函数压缩函数n算法可用于算法可用于MD5, SHA-1, RIPEMD
16、-160中的任何一个中的任何一个2021-12-14西安电子科技大学计算机学院30HMAC算法的具体执行步骤如下:算法的具体执行步骤如下: 在密钥在密钥K的右边填充一些的右边填充一些0,使其成为长度为,使其成为长度为b比特的比特串,记为比特的比特串,记为K+; 计算计算Si=K+ ipad,其中,其中ipad(inner pad)是)是HMAC算法中规定的一算法中规定的一个长度为个长度为b比特的比特模式串,它等于将比特的比特模式串,它等于将00110110(16进制的进制的36)重复)重复b/8次后得到的比特串;次后得到的比特串; 把把HMAC的输入报文的输入报文x=x1 x2xL附加在附加在
17、Si的右端,得到的右端,得到Si|x =Si|x1 x2xL,将该比特串作为,将该比特串作为Hash函数函数h的输入,得到的输入,得到l比特的输出比特的输出h (Si|x); 计算计算So=K+ opad,其中,其中opad(outter pad)是)是HMAC算法中规定的算法中规定的另一个长度为另一个长度为b比特的比特模式串,它等于将比特的比特模式串,它等于将01011100(16进制的进制的5C)重复重复b/8次后得到的比特串;次后得到的比特串; 将第将第3步得到的步得到的h(Si|x)填充到填充到b比特后附加在比特后附加在So的右端,并以该比特串的右端,并以该比特串作为作为Hash函数函
18、数h的输入,得到的输入,得到l比特的输出;比特的输出; 将第将第5步的输出作为步的输出作为HMAC算法的最终输出结果,即为消息算法的最终输出结果,即为消息x的消息的消息认证码认证码HMACk(x)。 2021-12-14西安电子科技大学计算机学院31 建立在嵌入建立在嵌入Hash函数基础上的所有函数基础上的所有MAC,其安全性在某种程,其安全性在某种程度上都依赖于该度上都依赖于该Hash函数的强度。对于函数的强度。对于HMAC,可以给出,可以给出HMAC的强度与所嵌入的强度与所嵌入Hash函数强度之间的关系。函数强度之间的关系。Bellare等人等人(1996年)已经证明,如果攻击者已知若干(
19、时间、消息年)已经证明,如果攻击者已知若干(时间、消息-MAC)对,则成功攻击对,则成功攻击HMAC的概率等价于对所嵌入的概率等价于对所嵌入Hash函数的下列函数的下列攻击之一:攻击之一: 即使对于攻击者而言,即使对于攻击者而言,IV是随机的、秘密的和未知的,攻击是随机的、秘密的和未知的,攻击者也能计算者也能计算Hash函数的压缩函数的输出。函数的压缩函数的输出。 即使即使IV是随机的和秘密的,攻击者也能找到是随机的和秘密的,攻击者也能找到Hash函数的碰函数的碰撞。撞。2021-12-14西安电子科技大学计算机学院32HMAC 的安全性的安全性nHMAC的安全性依赖于的安全性依赖于hash算
20、法的安全性算法的安全性 n攻击攻击HMAC需要下列之一需要下列之一:q对密钥进行穷举攻击对密钥进行穷举攻击q生日攻击生日攻击n从速度与安全制约,选择恰当的从速度与安全制约,选择恰当的hash函数函数2021-12-14西安电子科技大学计算机学院3312.6 基于分组密码的基于分组密码的MACp DAA:数据认证算法:数据认证算法p CMAC:基于密码的消息认证码:基于密码的消息认证码2021-12-14西安电子科技大学计算机学院34用对称密码产生用对称密码产生MACsn采用分组密码的链接工作模式,并把最后分组采用分组密码的链接工作模式,并把最后分组作为作为MACnData Authentica
21、tion Algorithm (DAA) 是一个广是一个广泛使用的数据认证算法,基于泛使用的数据认证算法,基于DES-CBC(FIPS PUB113,ANSI X9.17)qIV=0且最后一个分组用且最后一个分组用0填充其后以补足填充其后以补足64位分组位分组q用用DES的密文分组链接模式的密文分组链接模式CBC解密消息解密消息q把最后一个分组作为把最后一个分组作为MAC发送发送n或者取最后分组的左边或者取最后分组的左边M bits (16M64) n但是对于安全性来说,最终的但是对于安全性来说,最终的MAC还是太小了还是太小了2021-12-14西安电子科技大学计算机学院35Data Authentication Algorithm基于基于DES实现的数据认证算法实现的数据认证算法 2021-12-14西安电子科技大学计算机学院36 置置IV = 0,并把报文的最后一个分组用,并把报文的最后一个分组用0填充成填充成64比特;比特; 采用采用DES的的CBC模式加密报文;模式加密报文; 抛弃加密的中间结果,只将最后一组密文(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年海洋柔性软管设计与选型技术手册
- 2026年充电站投资回本周期从两年拉长至四年深度原因解析
- 2026年PureAir新风系统与空调联动风避人吹技术应用
- 2026年智能体工具链稳定性保障:检索 写入 接口调用的兜底设计
- 海南省琼海市2026年初三下第一次学情调查化学试题含解析
- 2026年湖南省部分地区初三化学试题4月质量调研测试(二模)试题含解析
- 山东省滨州市滨城区东城中学2026届初三下学期七调考试化学试题含解析
- 2026届重庆巴蜀常春藤中考预测金卷化学试题(安徽卷)含解析
- 广西崇左市江州区重点名校2026届初三4月联考化学试题试卷含解析
- 山东省聊城市冠县东古城镇中学2026届下学期初三生物试题二模考试试卷含解析
- 2026江苏徐州丰县综合检验检测中心招聘编外工作人员10人笔试备考题库及答案解析
- 2026年微机电系统(MEMS)设计原理
- 2026年黑龙江艺术职业学院单招综合素质考试题库含答案解析
- 2026广东事业单位招聘(公基)考试真题及答案
- 2026年春季开学收心大会校长讲话:马年春风送暖奋楫逐梦启新程
- 深圳爆破证考试题库及答案
- 宁夏德渊集团招聘笔试题库2026
- 安全启航逐梦新学期2026年寒假开学第一课
- 高速护栏施工培训课件
- 庐山课件教学
- 2026年江西工商职业技术学院单招综合素质考试题库及完整答案详解1套
评论
0/150
提交评论