- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章消息认证与杂凑算法讲解
第6章 消息认证和杂凑算法 6.1 消息认证码 6.2 杂凑函数 6.3 MD5杂凑算法 6.4 安全杂凑算法 6.5 HMAC算法 抗击被动攻击:加密 抗击主动攻击:消息认证 消息认证是一个过程,用以验证接收消息的真实性和完整性,同时还用于验证消息的顺序性和时间性。 消息认证机制需要产生认证符。 认证符:用于认证消息的数值。 认证符的产生方法:消息认证码MAC(message authentication code)和杂凑函数(hash function)两大类。 6.1 消息认证码 6.1.1 消息认证码的定义及使用方式 消息认证码: 指消息被一密钥控制的公开函数作用后产生的、用作认证符的、固定长度的数值, 或称为密码校验和。 此时需要通信双方A和B共享一密钥K。 如果仅收发双方知道K,且B计算得到的MAC与接收到的MAC一致,则这一就实现了以下功能: ① 接收方相信发送方发来的消息未被篡改。 ② 接收方相信发送方不是冒充的。 MAC函数与加密算法类似,不同之处为MAC函数不必是可逆的,因此与加密算法相比更不易被攻破。 上述过程中,由于消息本身在发送过程中是明文形式,所以这一过程只提供认证性而未提供保密性。 6.1.2 数据认证算法 数据认证算法:最为广泛使用的消息认证码中的一个。 算法基于CBC模式的DES算法,其初始向量取为零向量。需被认证的数据被分为64比特长的分组D1,D2,…,DN,其中最后一个分组不够64比特的话,可在其右边填充一些0,然后按以下过程计算数据认证码: 图6.2 数据认证算法 6.2 杂凑函数 6.2.1 杂凑函数的定义及使用方式 杂凑函数H是一公开函数:用于将任意长的消息M映射为较短的、固定长度的一个值H(M)。作为认证符。 称函数值H(M)为杂凑值、杂凑码、消息摘要,hash值、散列值。 杂凑码是消息中所有比特的函数,因此提供了一种错误检测能力,即改变消息中任何一个比特或几个比特都会使杂凑码发生改变。 6.2.2 杂凑函数应满足的条件 杂凑函数的目的是为需认证的数据产生一个“指纹”。为了能够实现对数据的认证,杂凑函数应满足以下条件: ① 函数的输入可以是任意长。 ② 函数的输出是固定长。 ③ 已知x,求H(x)较为容易,可用硬件或软件实现。 ④ 已知h,求使得H(x)=h的x在计算上是不可行的,这一性质称为函数的单向性,称H(x)为单向杂凑函数。 ⑤ 已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不可行的。 如果单向杂凑函数满足这一性质,则称其为弱单向杂凑函数。 ⑥ 找出任意两个不同的输入x、y,使得H(y)=H(x)在计算上是不可行的。强单向杂凑函数。 6.2.3 生日攻击 1. 相关问题 已知一杂凑函数H有n个可能的输出,H(x)是一个特定的输出,如果对H随机取k个输入,则至少有一个输入y使得H(y)=H(x)的概率为0.5时,k有多大? 以后为叙述方便,称对杂凑函数H寻找上述y的攻击为第Ⅰ类生日攻击。 因为H有n个可能的输出,所以输入y产生的输出H(y)等于特定输出H(x)的概率是1/n,反过来说H(y)≠H(x)的概率是1-1/n。y取k个随机值而函数的k个输出中没有一个等于H(x),其概率等于每个输出都不等于H(x)的概率之积,为[1-1/n]k,所以y取k个随机值得到函数的k个输出中至少有一个等于H(x)的概率为1-[1-1/n]k。 由(1+x)k≈1+kx,其中|x|1,可得 1-[1-1/n]k≈1-[1-k/n]=k/n 若使上述概率等于0.5,则k=n/2。特别地,如果H的输出为m比特长,即可能的输出个数n=2m,则k=2m-1。 2. 生日悖论 生日悖论是考虑这样一个问题:在k个人中至少有两个人的生日相同的概率大于0.5时,k至少多大? 设有k个整数项,每一项都在1到n之间等可能地取值。 P(n, k):k个整数项中至少有两个取值相同的概率。 生日悖论就是求使得P(365,k)≥0.5的最小k。 Q(365, k) :k个数据项中任意两个取值都不同的概率。 如果k365,则不可能使得任意两个数据都不相同,因此假定k≤365。k个数据项中任意两个都不相同的所有取值方式数为 如果去掉任意两个都不相同这一限制条件,可得k个数据项中所有取值方式数为365k。所以可得 将生日悖论推广为下述问题:已知一个在1到n之间均匀分布的整数型随机变量,若该变量的k个取值中至少有两个取值相同的概率大于0.5,则k至少多大? 与上类似, ,令P(n, k)0.5,可得 。 若取n=365,则
文档评论(0)