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

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

ID:5314574

大小:578.50 KB

页数:27页

时间:2017-11-23

清华大学出版社第5章 散列函数和消息鉴别_第1页
清华大学出版社第5章 散列函数和消息鉴别_第2页
清华大学出版社第5章 散列函数和消息鉴别_第3页
清华大学出版社第5章 散列函数和消息鉴别_第4页
清华大学出版社第5章 散列函数和消息鉴别_第5页
资源描述:

《清华大学出版社第5章 散列函数和消息鉴别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第1章密码学概述第2章古典密码技术第3章分组密码第4章公钥密码体制第5章散列函数与消息鉴别第6章数字签名技术第7章密钥管理技术第8章身份鉴别技术第9章序列密码第10章密码技术应用课程主要内容第5章散列函数与消息鉴别本章主要内容散列函数的概念散列函数的构造与设计安全散列算法SHA对散列函数的攻击消息鉴别第5章散列函数与消息鉴别5.1散列函数的概念密码学中的散列函数又称为哈希函数(Hash函数)、杂凑函数,它是一种单向密码体制,是一个从明文到密文的不可逆映射,只有加密过程,不能解密。散列函数的性质设散

2、列函数为h(m),具有以下基本特性:(1)h(m)算法公开,不需要密钥。(2)具有数据压缩功能,可将任意长度的输入数据转换成一个固定长度的输出。(3)对任何给定的m,h(m)易于计算。散列函数必须满足以下安全性要求:(1)具有单向性。给定消息的散列值h(m),要得到消息m在计算上不可行;(2)具有弱抗碰撞性(Weakcollisionresistance)。对任何给定的消息m,寻找与m不同的消息m’,使得它们的散列值相同,即h(m’)=h(m),在计算上不可行。(3)具有强抗碰撞性(Strongc

3、ollisionresistance)。寻找任意两个不同的消息m和m’,使得h(m)=h(m’)在计算上不可行。第5章散列函数与消息鉴别散列函数的应用散列函数的主要应用有以下三个方面:1)保证数据的完整性2)单向数据加密3)数字签名应用散列函数实现数据完整性保护的模型:注:实际应用中,未必一定是如h(m‖k)的计算方式,明文与密钥k的组合方式因不同的实现可以不同。第5章散列函数与消息鉴别算法中重复使用一个函数f。函数f的输入有两项,一项是上一轮(第i-1轮)的输出CVi-1,称为链接变量,另一项是

4、算法在本轮(第i轮)b位的输入分组mi。5.2散列函数的构造与设计迭代型散列函数的一般结构整个散列函数的逻辑关系可表示为:CV0=IV;CVi=f(CVi-1,mi);1≤i≤t;h(M)=CVt第5章散列函数与消息鉴别虽然在合理的假设下,可以证明这类散列函数是安全的,由于它的计算效率太低,所以这一类散列函数并没有什么实用价值。散列函数的基本设计方法有:基于公开密钥密码算法的设计、基于对称分组密码算法的设计以及直接设计法。1.基于公开密钥密码算法设计散列函数散列函数的设计方法以CBC模式利用公开密

5、钥算法,使用公钥PK以及初始变量IV对消息分组进行加密,并输出最后一个密文分组ct作为散列函数输出值,如图5.3所示。第5章散列函数与消息鉴别基于分组密码的CBC工作模式和CFB工作模式的散列函数中,密钥k不能公开。如果密钥k公开,则会使得攻击者构造消息碰撞十分容易。通常,可以使用对称密钥分组密码算法的CBC模式或CFB模式来产生散列值,如图5.4、图5.5所示。2.基于对称分组密码算法设计散列函数第5章散列函数与消息鉴别3.直接设计散列函数这类散列函数并不基于任何假设和密码体制,它是通过直接构造

6、复杂的非线性关系达到单向性要求来设计单向散列函数。这类散列算法典型的有:MD2、MD4、MD5、SHA-1等算法。5.3安全散列算法SHA1.SHA-1SHA-1是数字签名标准DSS(DigtialSignatureStandard)中使用的散列算法。它能够处理最大长度为264位的输入数据,输出为160位的散列函数值,SHA-1的输出正好适合作为数字签名算法DSA(DigtialSignatureAlgorithm)的输入。Ⅰ.基本操作和元素:(1)逐位逻辑运算(2)加法运算(3)移位操作第5章散

7、列函数与消息鉴别(1)消息分割与填充(2)初始化缓冲区(3)处理第i个数据块xi(4)4轮循环,80步操作完成后,保存散列中间结果,再与第一轮的输入相加(模232)(5)然后,以H0(i),H1(i),H2(i),H3(i),H4(i)作为寄存器初值,用于对分组xi+1进行散列处理。SHA-1压缩函数操作过程,如图5.9所示(下页),是处理一个512位分组的4次循环中每一循环的基本压缩操作流程。Ⅱ.SHA的散列过程Ⅲ.SHA-1的压缩操作Ⅳ.示例【例5.1】计算字符串“abc”的SHA-1散列值。

8、字符串“abc”的二进制表示为:011000010110001001100011,共有24位的长度。按照SHA-1的填充要求,应该填充一个“1”(界符)和423个“0”,最后有两个字“0000000000000018”(十六进制),表明原始消息的长度为24位。本例中共只有一个分组。第5章散列函数与消息鉴别第5章散列函数与消息鉴别初始五个寄存器的初始值为:H0(0)=67452301,H1(0)=EFCDAB89,H2(0)=98BADCFE,H3(0)=10325476,H4(0)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。