版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 报文鉴别与散列函数内容l鉴别的需求;l散列函数;l报文鉴别码l签名5.1 鉴别的需求l网络通信环境中会受到下列攻击泄露; 通信量分析:连接的频率和持续的时间、报文数量等。伪装:假源点; 内容篡改:修改内容; 序号篡改:增删内容; 计时篡改:报文回放; 抵赖:终点否认收到、源点否认发送过。 5.2 鉴别函数l鉴别函数:用来产生用于鉴别一个报文的值:鉴别符。l鉴别符用于鉴别报文在通信过程中是否被篡改、删除和修改等。l产生鉴别符的几类函数:报文加密:以整个报文作为它的鉴别符号报文鉴别码(MAC)散列函数鉴别函数-报文加密l对称加密:提供保密:仅源点和终点共享K。一定程度的鉴别:仅来自源点。不
2、提供签名:接收人可以伪造、发送人可以否认。EMMDKKEk(M)鉴别函数-报文加密l私钥加密:提供鉴别和签名:仅源点有私钥KS。任何一方都能用公开密钥Kp脱密。EMMDKsKpE Ks(M)鉴别函数-报文加密l公开密钥加密: 提供报密:仅终点有脱密的私钥KS。不提供签名:接收人可以伪造、发送人可以否认。EMMDKpKSE Kp(M)鉴别函数-报文加密l对称密钥加密: 提供保密: BKp鉴别与签名: AKsEMMDAKsBKsE BKp(E AKs(M)EBKpABDAKp为什么需要报文鉴别EMMDKKY=Ek(M)ZEk(M)NDK消息鉴别消息鉴别 VS 常规加密常规加密保密性与真实性是两个不
3、同的概念保密性与真实性是两个不同的概念根本上根本上,信息加密提供的是保密性而非真实性信息加密提供的是保密性而非真实性加密代价大加密代价大(公钥算法代价更大公钥算法代价更大)鉴别函数与保密函数的分离能提供功能上的灵活性鉴别函数与保密函数的分离能提供功能上的灵活性某些信息只需要真实性某些信息只需要真实性,不需要保密性不需要保密性 广播的信息难以使用加密广播的信息难以使用加密(信息量大信息量大) 网络管理信息等只需要真实性网络管理信息等只需要真实性 政府政府/权威部门的公告权威部门的公告为什么需要报文鉴别码l加密与鉴别分离,使得结构灵活。例如:应用层鉴别,底层加密;l减少工作量,验证鉴别码较容易;l
4、监控计算机程序,防止程序被修改,但装载时不要对程序解密。报文鉴别码MAClMAC,也称为密码检验和,由如下形式的函数C生成:MAC=Ck(M) 其中M是变长的报文K是仅由收发双方共享的密钥Ck M)是定长的鉴别符。l当报文确信或已知是正确时,终点每次将MAC附加到报文中。接收者通过重新计算MAC来对报文进行鉴别。 5.2.2 散列函数散列函数(Hash Function) 散列函数的定义散列函数的定义散列函数:散列函数:M:变长报文变长报文H(M):定长的散列码定长的散列码(报文摘要)报文摘要)主要用于为文件、报文或其它分组数据产生指纹主要用于为文件、报文或其它分组数据产生指纹()hH M散列
5、函数的说明散列函数的说明H(M): 输入为任意长度的消息输入为任意长度的消息M; 输出为一个固输出为一个固定长度的散列值,称为消息摘要定长度的散列值,称为消息摘要( (MessageDigest)H(M)是消息是消息M的所有位的函数并提供错误检测能的所有位的函数并提供错误检测能力:消息中的任何一位或多位的变化都将导致该力:消息中的任何一位或多位的变化都将导致该散列值的变化散列值的变化H(M)又称为:哈希函数、数字指纹(又称为:哈希函数、数字指纹(Digital finger print)、压缩(、压缩(Compression)函数、数据鉴函数、数据鉴别码(别码(Dataauthenticati
6、on code)等)等Hash vs MACMAC需要对全部数据进行加密需要对全部数据进行加密MAC速度慢速度慢Hash是一种直接产生鉴别码的方法是一种直接产生鉴别码的方法散列函数方法 (a) 提供了保密和鉴别。MH|EDMHEkM|H(M)kkH(M)比较散列函数方法 (b)l散列与加密结果合并为一个整体函数实际上就是一个MAC。EH(M)是变长报文M和密钥K的函数值,且它生成一个定长的输出,对不知道该密钥的对手来说是安全的。l提供鉴别MHE|MHDEkH(M)KKEK(H(M)比较散列函数方法 (c)l提供鉴别、抵赖。MHE|MHDEKRa(H(M)KRaKUaEKRa(H(M)比较散列函
7、数方法 (d)l同时提供保密性、鉴别和抵赖。MHE|EDMHDEkM|EKRa(H(M)kkKRaKUaEKRa(H(M)比较散列函数方法 (e)l通信各方共享一个公共的秘密值s。对报文鉴别。M|H|H (M|s)s比较|Hs散列函数方法 (f)l通过包含报文和散列码的整体进行加密就能对上一种方法(e)增加保密功能M|H|Ek(H (M|s)s比较|HsEkH (M|s)Dk散列函数的目标l散列函数的目的是为文件、报文或其他的分组数据产生“指纹”。要用于报文鉴别,散列函数H必须具有如下性质:H能用于任何大小的数据分组。H产生定长输出。对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成
8、为实际可行。对任何给定的码H(x),从H(x)计算x,在计算上是不可行的。这就是所谓的单向性质。对任何给定的分组x,寻找不等于x的y,使得H(y)=H(x)在计算上是不可行的。 1.寻找对任何的(x,y)对使得H(x)=H(y)在计算上是不可行的。5.2.3 散列算法5.2.3.1 MD5MD5描述描述Merkle于于1989年提出年提出hash function模型模型Ron Rivest于于1990年提出年提出MD41992年年, Ron Rivest 完成完成MD5 (RFC 1321) 在最近数年之前在最近数年之前,MD5是最主要的是最主要的hash算法算法现行美国标准现行美国标准SH
9、A-1以以MD5的前身的前身MD4为基础为基础MD5描述描述 输入:任意长度的报文输入:任意长度的报文输入分组长度:输入分组长度:512 bit 输出:输出:128 bit 报文报文5.2.3.1.1 设计目标l安全性l直接安全性l速度l简单性和紧凑性l有利的Little-Endian结构MD5描述描述step 1 附加填充比特附加填充比特对报文进行填充,使其比特数与对报文进行填充,使其比特数与448模模512同余,同余,即填充长度为即填充长度为512的整数倍减去的整数倍减去64填充方法:填充比特串的最高位为填充方法:填充比特串的最高位为1,其余各位,其余各位均为均为011| 448mod51
10、2| 448mod512,| | 512Mif Mthen MMMD5描述描述step 2 附加长度值附加长度值|M2|为为512的倍数的倍数: Y0,Y1,YL-1216464|mod2 ,2MMLengthMM Padding LengthLengthM低位字节优先,表示为64bit长若初始长度大于 ,仅使用该长度的低64bitMD5描述描述step 3初始化初始化MD缓存缓存MD为为128bit,用于存放散列函数的中间及最终结,用于存放散列函数的中间及最终结果果MD可表示为可表示为4个个32bit的寄存器的寄存器(A,B,C,D),初始化,初始化如下:如下:MD5描述描述step 4以以
11、512个比特(个比特(16个字)分组处理消息个字)分组处理消息主循环包含共主循环包含共64步操作,分别使用步操作,分别使用4个非线性函数。个非线性函数。每一次循环可以表示为每一次循环可以表示为7步。步。64步操作形式:步操作形式:a b+(a+g(b,c,c)+Xk+Tis)MD5报文摘要算法 (Rivest, RFC1321)Y1 512Y0 512Yq 512YL-1 512 HMD5HMD5HMD5HMD5报文 L*512-64-填充长度填充1-512长度64IVCVqCV1CVL-1128位摘要lMD5: RFC1321lMD4: RFC1320lMD2: RFC1319HMD5CVq
12、 128BACDG, T17,18,32,X2(k)16个步骤个步骤BACDF, T1,2,16,Xk16个步骤个步骤BACD 32BACDH, T33,34,48,X3(k)16个步骤个步骤I, T49,50,64,X4(k)16个步骤个步骤Yq 512+CVq+1 1284轮,每轮16步骤ABCDABCD+CLSs+XkTigXk 是分组的第k个32比特, k=1,2, 16Ti= 232 abs(sin(i)的整数部分b=b+(a+g(b,c,d)+Xi+Ti)s)MD5的安全性的安全性Berson表明,对单循环表明,对单循环MD5,使用不用的密码分析可能在合,使用不用的密码分析可能在合
13、理的时间内找出能够产生相同摘要的两个报文,这个结果被理的时间内找出能够产生相同摘要的两个报文,这个结果被证明对四个循环中的任意一个循环也成立,但作者没有能够证明对四个循环中的任意一个循环也成立,但作者没有能够提出如何攻击包含全部提出如何攻击包含全部4个循环个循环MD5的攻击的攻击Boer和和Bosselaers显示了即使缓存显示了即使缓存ABCD不同,不同,MD5对单个对单个512bit分组的执行将得到相同的输出分组的执行将得到相同的输出(伪冲突)伪冲突)Dobbertin的攻击技术:使的攻击技术:使MD5的压缩函数产生冲突,即寻找的压缩函数产生冲突,即寻找MD5被认为是易受攻击的,逐渐被被认
14、为是易受攻击的,逐渐被SHA-1和和RIPEMD-160替替代代,( )( )xy xyH xH y、但5.2.3.2 安全散列算法SHA-1l安全散列算法(SHA)由美国国家标准和技术协会(NIST)提出,作为联邦信息处理标准(FIPS PUB 180) 在1993年公布。l1995年发布了一个修订版 FIPS PUB 180-1通常称为SHA-1lSHA也是基于MD4的。l最大报文长度264-1,散列码长度160bit。l结构与MD5类似,抗攻击能力比MD5强;HMAC (密码散列算法 RFC2104)lKeyed-Hashing for Message Authentication Co
15、deKeyed-Hashing for Message Authentication Codel在最近几年,研究的热点转向由密码散列码导出MAC。这样的目的在于:密码散列函数如MD5和SHA-1的软件执行速度比对称分组密码如DES的快。 很容易获得密码散列函数的库代码。 1.美国或其他国家对密码散列函数没有出口限制,而对称分组密码,即便用作MAC也是限制的。HMAC的主要设计目标: l无需修改地使用现有的散列函数(比如MD5或SHA-1)。特别是,散列函数的软件实现执行很快,且程序代码码是公开的和容易获得的。 l当出现或获得更快的或更安全的散列函数时,对算法中嵌入的散列函数要能轻易地进行替换。 l保持散列函数的原有性能不会导致算法性能的降低。 l使用和处理密钥的方式很简单。 HMACHMAC 算法 RFC2104SiY0Y1YL-1散列函数b bitsb bitsb bitsK+ipadK+opadS0H(Si|M)散列函数HMACk(M)n bitsIVn bitsIV填充到b bitsHMAC算法对密钥K的左端填充一些0生成一个b bit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年义乌工商职业技术学院单招综合素质考试题库带答案详解(a卷)
- 2026年云南林业职业技术学院单招职业技能考试题库附答案详解(完整版)
- 2026年云南经贸外事职业学院单招职业适应性测试题库附参考答案详解(综合题)
- 2026年上饶职业技术学院单招职业适应性考试题库含答案详解(完整版)
- 2026年乌海职业技术学院单招职业技能测试题库附答案详解(满分必刷)
- 2026年临夏现代职业学院单招职业适应性测试题库附答案详解(能力提升)
- 2026年云南省红河哈尼族彝族自治州单招职业倾向性考试题库附答案详解(典型题)
- 2026年云南省思茅市单招职业适应性测试题库附答案详解(典型题)
- 2026年三亚城市职业学院单招职业技能测试题库有完整答案详解
- 2026年云南机电职业技术学院单招职业适应性考试题库附参考答案详解(能力提升)
- 常州市2025-2026学年第一学期高三期末质量调研政治+答案
- 签字版离婚协议书范本
- 《神笔马良》:儿童读书分享
- 外研版五年级英语下册单词表
- 《木兰诗》历年中考古诗欣赏试题汇编(截至2024年)
- 技能认证催化高级考试(习题卷28)
- 拖欠工程款民事判决书
- GB/T 17431.2-2010轻集料及其试验方法第2部分:轻集料试验方法
- 2011~2020年上海市高考语文文言文真题译文全集
- 设立年产20万吨固体氢氧化钠项目安全评估报告
- 主斜井管路安装
评论
0/150
提交评论