- 1、本文档共108页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
认证码
认证码 对信息安全的攻击 被动攻击:获取消息的内容、业务流分析 主动攻击:假冒、重放、消息的篡改、业务拒绝 参与方抵赖:通信双方中的某一方对所传输消息的否认 被动攻击与主动攻击 抗被动攻击:加密 抗主动攻击:认证 信息认证技术 1 Hash函数和消息完整性 2 数字签名技术 3 身份认证技术 4 认证的具体实现 1 Hash函数和消息完整性 本节提示: 1.1 基本概念 1.2 Hash函数的构造 1.3 消息认证码 1.1 基本概念 Hash函数也称为杂凑函数或散列函数 其输入为一可变长度序列x,返回一固定长度串,该串被称为输入x的Hash值(消息摘要) Hash函数是多对一的函数,一定将某些不同的输入变换成相同的输出 Hash函数要求:给定输入计算Hash值是很容易的;给定Hash值求原始输入是困难的 又称为单向Hash函数 基本概念(续) Hash函数一般满足以下几个基本需求: (1)输入x可以为任意长度; (2)输出长度固定; (3)易计算:给定任何x,容易计算出x的Hash值H(x); (4)单向性:给一个Hash值,很难反向计算出原始输入; (5)唯一性:找到两个不同的输入得到相同的Hash输出值是困难的(在计算上是不可行的) ?Hash函数的其他性质 Hash值的长度由算法的类型决定,与输入的消息大小无关,一般为128或者160位。 Hash函数的一个主要功能就是为了保证数据完整性。 ?Hash函数可以按照其是否有密钥控制分为两类: 一类有密钥控制,以hk(x)表示,为密码Hash函数; 另一类无密钥控制,为一般Hash函数。 1.2 Hash函数的构造 用分组加密函数构造hash函数 专门设计的Hash函数 用分组加密函数构造hash函数 分组密码:给出明文和对应的密文,要找出所用的密钥是困难的(单向函数) 加密函数y=E(x,k),输入明文x(长度m),密钥k(长度n)输出密文y(长度m) 输入数据总长度m+n,输出m。单向压缩函数 用分组加密函数构造hash函数 先将N长消息分组,分组长为m(或n) 设初始向量IV,可公开,长度m 消息x的分组为x1, x2, …, xt 用分组加密函数构造hash函数 方案1 消息的分组长为n h0=IV h1=E(h0,x1) h2=E(h1,x2) h3=E(h2,x3) …… h(x)=ht 输出为m长 用分组加密函数构造hash函数 方案2 消息的分组长为m,选择密钥k(n长) h0=IV h1=E(x1+h0,k) h2=E(x2+h1,k) h3=E(x3+h2,k) …… h(x)=ht 输出为m长 用加密函数可以构造Hash函数,但速度较慢 专门设计的Hash函数:MD4,MD5, SHA MD4算法 MR4是Ron Rivest设计的单向散列函数 MD表示消息摘要(Message Digest),对输入消息,算法产生128位散列值 MD4算法设计目标 安全性:找到两个具有相同散列值的消息在计算上不可行,不存在比穷举攻击更有效的攻击。 直接安全性:MD4的安全性不基于任何假设,如因子分解的难度。 速度:MD4适用于软件实现,基于32位操作数的一些简单位操作。 简单性和紧凑性:MD4尽可能简单,没有大的数据结构和复杂的程序。 有利的Little-Endian结构:MD4最适合微处理器结构,更大型、速度更快的计算机要作必要的转化。 其他算法 MD5是MD4的改进 SHA(Security Hash Algorithm)算法是美国NIST设计的一种标准Hash算法 SHA用于数字签名的标准算法DSS中,也是安全性很高的一个Hash算法 该算法的输入消息长度小于 bit,输出值为160bit。SHA与MD4相比较而言,主要是增加了扩展变换,将前一轮的输出加到下一轮的,这样增加了雪崩效应。而且由于其160 bit的输出,对穷举攻击更有抵抗力。 1.3消息认证码 消息认证码(MAC,Messages Authentication Codes),是与密钥相关的单向Hash函数,也称为消息鉴别码或是消息校验和 MAC与单向Hash函数一样,但是还包括一个密钥。 将单向Hash函数变成MAC的一个简单的办法是用对称算法加密Hash值。相反将MAC变成单向Hash函数则只需将密钥公开。 消息认证码的实现示意图 消息认证码的定义及使用方式 消息认证码:指消息被一密钥控制的公开函数作用后产生的、用作认证符的、固定长度的数值,也称为密码校验和 需要通信双方A和B共享一密钥K 设A欲发送给B的消息是M,A首先计算MAC=CK(M),其中CK(·)是密钥控制的公开函数,然后向B发送M‖MAC,B收到后做与A相同的计算,求得一新MAC,并与
文档评论(0)