- 1、本文档共68页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章消息认证、数字签名和密钥管理 一. 基本要求与基本知识点 (1)掌握认证基本概念及方法; (2)掌握数字签名过程及算法; (3)掌握密钥分配方法。 二. 教学重点与难点 (1)认证; (2)消息认证码; (3)Hash函数; (4)MD5和HMAC算法; (5)数字签名及DSA算法; (6)对称密钥和公钥分配方法。 5.1消息认证5.1.1认证 加密是为了保证消息的必威体育官网网址性,而认证则是防止主动攻击的重要技术,是用于保证消息的完整性。常见的认证技术包括消息认证码(MAC)和安全散列函数(Hash函数)。 认证的目的主要有: 第一,验证消息的发送者是合法的,不是冒充的,这称为实体认证,包括对信源、信宿等的认证和识别; 第二,验证信息本身的完整性,这称为消息认证,验证数据在传送或存储过程中没有被篡改、重放或延迟等。 5.1.1认证 一个基本的认证系统模型如图5-1所示:发送者通过一个公开信道将信息传给接收者,接收者在收到消息的同时,还收到认证码,用于验证消息是否来自合法的发送者以及消息是否被篡改。 5.1.1认证 认证码是具有认证功能的数值,常用的产生认证码的函数有两类: 消息认证码MAC(Message Authentication Code):它是消息和密钥的函数,产生定长的值,该值作为消息的认证码。 散列函数(Hash函数):它是将任意长度的消息映射为定长的Hash值的函数,以该Hash值作为认证码。 5.1.2 消息认证码 消息认证码,简称MAC (Message Authentication Code),是一种使用密钥的认证技术,它利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后,也称为密码校验和。 在这种方法中假定通信双方A和B共享密钥K。若A向B发送消息M时,则A使用消息M和密钥K,计算MAC=C(K,M)。其中,M是输入的消息,可变长;C是消息认证码函数;K是共享密钥;MAC是消息认证码。 只有拥有密钥的消息发送方和接收方可以生成消息认证码和验证消息的完整性。如图5-2所示,为消息认证码的使用。 图5-2 认证性 5.1.2 消息认证码 (1)发送方将消息M和MAC一起发送给接收方。 (2)接收方受到消息后,假设为M,使用相同的密钥K,计算新的MAC= C(K,M),比较MAC和所受到的MAC。如果计算得出的MAC和收到的MAC是相同的,则可认为: 接收方可以相信消息未被修改。因为若攻击者篡改了消息,他必须同时相应地修改MAC值,但攻击者不知道密钥,因此他不能在篡改消息后相应地篡改MAC,而如果仅篡改消息,则接收方计算的新MAC将与收到的不同。 接收方可以相信消息来自与真正的发送方。因为其他各方均不知道密钥,他们不能产生具有正确MAC的消息。 5.1.2 消息认证码 图5-2 给出的消息认证码的使用只是对传送消息提供单纯的认证性,它还可以和加密函数一起提供消息认证和必威体育官网网址性,如图5-3所示。 (1)发送方先计算消息M的认证码,然后使用加密秘钥将消息和认证码一并加密; (2)接收方收到后,先解密得到的消息及其认证码,再计算解密所得消息的新认证码,验证新认证码和收到的认证码是否匹配,如果匹配则表示消息在传输过程中没有被改动。 MAC函数和加密函数类似,不同之处是MAC函数不必是可逆的而加密函数必须是可逆的,因此与加密函数相比更不易被攻破。 图5-3 认证性和必威体育官网网址性 5.1.3 Hash函数 Hash函数(也称散列函数或杂凑函数)是将任意长的输入消息作为输入,生成一个固定长的输出串的函数,即h=H(m)。这个输出串h称为该消息的散列值(或消息摘要,或杂凑值)。 安全的Hash函数的要求: H可以应用于任意长度的数据块,产生固定长度的散列值; 对每一个给定的输入m,计算H(m)是很容易的; 给定Hash函数的描述,对于给定的散列值h,找到满足H(m) = h的m在计算上是不可行的(单向性,保证攻击者无法通过散列值h获得消息m); 给定Hash函数的描述,对于给定的消息m1,找到满足m2?m1且H(m2)=H(m1)的m2,在计算上是不可行的(弱抗碰撞性,保证攻击者无法实现在不修改散列值的情况下替换消息。); 5.1.3 Hash函数 给定Hash函数的描述,找到任何满足H(m1)=H(m2)且m1 ? m2的消息对(m1,m2),在计算上是不可行的(强抗碰撞性)。 Hash函数的值只是输入消息的函数,无需输入密码,只要输入消息有任何变化,就会导致不同的散列值输出,因此将Hash函数的值作为认证码,用于实现消息认证。 但Hash函数没有密钥,在Hash函数公开的情况下,任何人都可以根据输入的消息计算其散列值h。故在安全通信中,常常需要将密钥或秘密信息与Hash函数结合起来对消息认证。 在安全通
文档评论(0)