清华大学的出版社第5章-散列函数和消息鉴别.ppt

清华大学的出版社第5章-散列函数和消息鉴别.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
清华大学的出版社第5章-散列函数和消息鉴别

课程主要内容 第1章 密码学概述 第2章 古典密码技术 第3章 分组密码 第4章 公钥密码体制 第5章 散列函数与消息鉴别 第6章 数字签名技术 第7章 密钥管理技术 第8章 身份鉴别技术 第9章 序列密码 第10章 密码技术应用 第5章 散列函数与消息鉴别 本章主要内容 散列函数的概念 散列函数的构造与设计 安全散列算法SHA 对散列函数的攻击 消息鉴别 第5章 散列函数与消息鉴别 5.1 散列函数的概念 密码学中的散列函数又称为哈希函数(Hash函数)、杂凑函数,它是一种单向密码体制,是一个从明文到密文的不可逆映射,只有加密过程,不能解密。 散列函数的性质 第5章 散列函数与消息鉴别 散列函数的应用 散列函数的主要应用有以下三个方面: 1)保证数据的完整性 2)单向数据加密 3)数字签名 应用散列函数实现数据完整性保护的模型: 第5章 散列函数与消息鉴别 第5章 散列函数与消息鉴别 第5章 散列函数与消息鉴别 第5章 散列函数与消息鉴别 设散列函数为h(m),具有以下基本特性: (1)h(m)算法公开,不需要密钥。 (2)具有数据压缩功能,可将任意长度的输入数据转换成一个固定长度的输出。 (3)对任何给定的m,h(m)易于计算。 散列函数必须满足以下安全性要求: (1)具有单向性。给定消息的散列值h(m),要得到消息m在计算上不可行; (2)具有弱抗碰撞性(Weak collision resistance)。对任何给定的消息m,寻找与m不同的消息m’,使得它们的散列值相同,即h(m’)=h (m),在计算上不可行。 (3)具有强抗碰撞性(Strong collision resistance) 。寻找任意两个不同的消息m和m’, 使得h(m)=h (m’) 在计算上不可行。 注:实际应用中,未必一定是如h(m‖k)的计算方式,明文与密钥k的组合方式因不同的实现可以不同。 算法中重复使用一个函数f 。函数f的输入有两项,一项是上一轮(第i-1轮)的输出CVi-1,称为链接变量,另一项是算法在本轮(第i轮)b位的输入分组mi。 5.2 散列函数的构造与设计 迭代型散列函数的一般结构 整个散列函数的逻辑关系可表示为: CV0 =IV; CVi = f(CVi-1,mi);1≤i≤t; h(M)= CVt 虽然在合理的假设下,可以证明这类散列函数是安全的,由于它的计算效率太低,所以这一类散列函数并没有什么实用价值。 散列函数的基本设计方法有:基于公开密钥密码算法的设计、基于对称分组密码算法的设计以及直接设计法。 1.基于公开密钥密码算法设计散列函数 散列函数的设计方法 以CBC模式利用公开密钥算法,使用公钥PK以及初始变量IV对消息分组进行加密,并输出最后一个密文分组ct作为散列函数输出值,如图5.3所示。 第5章 散列函数与消息鉴别 基于分组密码的CBC工作模式和CFB工作模式的散列函数中,密钥k不能公开。如果密钥k公开,则会使得攻击者构造消息碰撞十分容易。 通常,可以使用对称密钥分组密码算法的CBC模式或CFB模式来产生散列值,如图5.4、图5.5所示。 2.基于对称分组密码算法设计散列函数 第5章 散列函数与消息鉴别 3.直接设计散列函数 这类散列函数并不基于任何假设和密码体制,它是通过直接构造复杂的非线性关系达到单向性要求来设计单向散列函数。这类散列算法典型的有:MD2、MD4、MD5、SHA-1等算法。 5.3 安全散列算法SHA 1. SHA-1 SHA-1是数字签名标准DSS(Digtial Signature Standard)中使用的散列算法。它能够处理最大长度为264位的输入数据,输出为160位的散列函数值,SHA-1的输出正好适合作为数字签名算法DSA(Digtial Signature Algorithm)的输入。 Ⅰ.基本操作和元素: (1)逐位逻辑运算 (2) 加法运算 (3) 移位操作 第5章 散列函数与消息鉴别 (1) 消息分割与填充 (2) 初始化缓冲区 (3) 处理第i个数据块xi (4) 4轮循环,80步操作完成后,保存散列中间结果,再与第一轮的输入相加(模232) (5) 然后,以H0(i) ,H1(i) ,H2(i) ,H3(i) ,H4(i)作为寄存

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档