- 1、本文档共96页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 消息认证和杂凑算法 6.1 消息认证码 6.2 杂凑函数 6.3 MD5杂凑算法 6.4 安全杂凑算 6.5 HMAC算法 习题 第1章曾介绍过信息安全所面临的基本攻击类型,包括被动攻击(获取消息的内容、业务流分析)和主动攻击(假冒、重放、消息的篡改、业务拒绝)。抗击被动攻击的方法是前面已介绍过的加密,本章介绍的消息认证则是用来抗击主动攻击的。消息认证是一个过程,用以验证接收消息的真实性(的确是由它所声称的实体发来的)和完整性(未被篡改、插入、删除),同时还用于验证消息的顺序性和时间性(未重排、重放、延迟)。除此之外,在考虑信息安全时还需考虑业务的不可否认性,即防止通信双方中的某一方对所传输消息的否认。实现消息的不可否认性可通过数字签字,数字签字也是一种认证技术,它也可用于抗击主动攻击。 消息认证机制和数字签字机制都需有产生认证符的基本功能,这一基本功能又作为认证协议的一个组成部分。认证符是用于认证消息的数值,它的产生方法又分为消息认证码MAC(message authentication code)和杂凑函数(hash function)两大类,下面分别介绍。 6.1 消息认证码 6.1.1 消息认证码的定义及使用方式 消息认证码是指消息被一密钥控制的公开函数作用后产生的、用作认证符的、固定长度的数值,也称为密码校验和。此时需要通信双方A和B共享一密钥K。设A欲发送给B的消息是M,A首先计算MAC=CK(M),其中CK(·)是密钥控制的公开函数,然后向B发送M‖MAC,B收到后做与A相同的计算,求得一新MAC,并与收到的MAC做比较,如图6.1(a)所示。 如果仅收发双方知道K,且B计算得到的MAC与接收到的MAC一致,则这一系统就实现了以下功能: ① 接收方相信发送方发来的消息未被篡改,这是因为攻击者不知道密钥,所以不能够在篡改消息后相应地篡改MAC,而如果仅篡改消息,则接收方计算的新MAC将与收到的MAC不同。 ② 接收方相信发送方不是冒充的,这是因为除收发双方外再无其他人知道密钥,因此其他人不可能对自己发送的消息计算出正确的MAC。 MAC函数与加密算法类似,不同之处为MAC函数不必是可逆的,因此与加密算法相比更不易被攻破。 上述过程中,由于消息本身在发送过程中是明文形式,所以这一过程只提供认证性而未提供必威体育官网网址性。为提供必威体育官网网址性可在MAC函数以后(如图6.1(b))或以前(如图6.1(c))进行一次加密,而且加密密钥也需被收发双方共享。在图6.1(b)中,M与MAC链接后再被整体加密,在图6.1(c)中,M先被加密再与MAC链接后发送。通常希望直接对明文进行认证,因此图6.1(b)所示的使用方式更为常用。 图6.1 MAC的基本使用方式 6.1.2 产生MAC的函数应满足的要求 使用加密算法(单钥算法或公钥算法)加密消息时,其安全性一般取决于密钥的长度。如果加密算法没有弱点,则敌手只能使用穷有哪些信誉好的足球投注网站攻击以测试所有可能的密钥。如果密钥长为k比特,则穷有哪些信誉好的足球投注网站攻击平均将进行2k-1个测试。特别地,对惟密文攻击来说,敌手如果知道密文C,则将对所有可能的密钥值Ki执行解密运算Pi=DKi(C),直到得到有意义的明文。 对MAC来说,由于产生MAC的函数一般都为多到一映射,如果产生n比特长的MAC,则函数的取值范围即为2n个可能的MAC,函数输入的可能的消息个数N2n,而且如果函数所用的密钥为k比特,则可能的密钥个数为2k。如果系统不考虑必威体育官网网址性,即敌手能获取明文消息和相应的MAC,那么在这种情况下要考虑敌手使用穷有哪些信誉好的足球投注网站攻击来获取产生MAC的函数所使用的密钥。 假定kn,且敌手已得到M1和MAC1,其中MAC1=CK1(M1),敌手对所有可能的密钥值Ki求MACi=CKi(M1),直到找到某个Ki使得MACi=MAC1。由于不同的密钥个数为2k,因此将产生2k个MAC,但其中仅有2n个不同,由于2k2n,所以有很多密钥(平均有2k/2n=2k-n个)都可产生出正确的MAC1,而敌手无法知道进行通信的两个用户用的是哪一个密钥,还必须按以下方式重复上述攻击: 第1轮 已知M1、MAC1,其中MAC1=CK(M1)。对所有2k个可能的密钥计算MACi=CKi(M1),得2k-n个可能的密钥。 第2轮 已知M2、MAC2,其中MAC2=CK(M2)。对上一轮得到的2k-n个可能的密钥计算MACi=CKi(M2),得2k-2×n个可能的密钥。 如此下去,如果k=αn,则上述攻击方式平均需要α轮。例如,密钥长为80比特,MAC长为32比特,则第1轮将产生大约248个可能密钥,第2轮将产生216个可能的密钥,第3轮即可找出正确的密钥。 如果密钥长度小于MAC的长度,则第1轮就有可能找出正确的密钥,也有可能找出
文档评论(0)