散列函数与数字签名

上传人:ldj****22 文档编号:51666025 上传时间:2018-08-15 格式:PPT 页数:48 大小:845.50KB
返回 下载 相关 举报
散列函数与数字签名_第1页
第1页 / 共48页
散列函数与数字签名_第2页
第2页 / 共48页
散列函数与数字签名_第3页
第3页 / 共48页
散列函数与数字签名_第4页
第4页 / 共48页
散列函数与数字签名_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《散列函数与数字签名》由会员分享,可在线阅读,更多相关《散列函数与数字签名(48页珍藏版)》请在金锄头文库上搜索。

1、信息安全概论电子科技大学出版社 2007年8月*1*第五章 散列函数与数字签名l5.1 概述l5.2 消息摘要l5.3 消息认证l5.4 数字签名l5.5 小结25.1 概述消息摘要l消息摘要(消息的数字指纹纹)是数字签签名体系中 实现实现 信息完整性保障的技术术。l消息摘要的工作原理:将消息作为为Hash函数的输输 入数据,生成定长长的输输出数据(即消息摘要), 并将其作为为消息的附加信息。lHash函数有两个基本特性:l输输入数据的任何细细微变变化将导导致输输出数据的巨大改变变l难难以进进行逆运算l利用这这两个特性,消息接收方根据消息摘要能验验 证证收到的消息在传输过传输过 程中是否发发生

2、了改变变,从 而验证验证 了消息的完整性和有效性。 *35.1 概述公开密钥钥技术术l公开密钥钥技术术是数字签签名体系中进进行身份认证认证 和 保障不可抵赖赖性的主要技术术。l在公钥钥加密技术术中,利用发发送者A的私钥钥加密的 信息只有用发发送者A的公钥钥才能解密。l在A的私钥钥没有泄露的情况下,如果一个经经某私 钥钥加密的信息能被A的公钥钥解密,那么就说说明该该 私钥钥属于A,从而可以确定该该信息是由A发发出的 。(A无法抵赖赖)l同理,别别人也无法冒充A发发送信息,因为为他没有 A的私钥钥。*4*5.1 概述数字签签名l信息完整性和不可抵赖赖性是信息安全的两个基本要素。l数字签签名技术术通

3、过结过结 合消息摘要技术术和公开密钥钥技术术, 保证证了不可靠网络络中传输传输 的信息的完整性和抗否认认性。l数字签签名的大致步骤骤l发发送方利用Hash函数对对待发发消息M进进行摘要处处理,生成一个固定 长长度的消息摘要H(M)。l用自己的私钥对该钥对该 消息摘要(即一个hash值值)进进行加密,形成发发 送方的一个数字签签名。(这这个数字签签名作为为消息的附件随消息一 起发发送到接收方。)l接收方利用数字签签名中的消息摘要对对消息的完整性进进行判断,利 用发发送方的公钥对发钥对发 送方进进行身份认证认证 和保证证抗否认认性。5图5.1 数字签名过程5.2 消息摘要l5.2.1 Hash函数

4、的概念和原理l5.2.2 MD5算法l5.2.3 SHA-1算法l5.2.4 MD5和SHA-1算法的比较l5.2.5 HMAC算法*6*5.2 消息摘要概述l在通信过过程中,信息的完整性是信息安全保证证 的重要指标标。l信息完整性是指信息在存储储和传输过传输过 程中不 被非法篡篡改、破坏、增删删,能真实实无误误地到 达目的地的特性。l消息摘要是保证证信息完整性的基本技术术之一, Hash函数则则是消息摘要技术术的核心内容。l目前最典型的两个Hash算法:MD5算法和 SHA-1算法。7*5.2.1 Hash函数的概念lHash函数的定义义l把可变长变长 度的输输入数据转换转换 成固定长长度的

5、输输出数据的 一种函数。这这个定长长的输输出数据称为输为输 入数据的消息 摘要,也称为为散列值值、哈希值值或数字指纹纹。lHash函数具有单单向性l指从输输入数据很容易计计算其Hash值值,但通过过Hash值值想 找到其对应对应 的输输入数据是很困难难的。l也就是说说,要找到一个输输入数据使其Hash值值等于一个 特定值值是很困难难的。l一个好的Hash函数也是无碰撞的l即很难产难产 生两个输输入数据,使它们们的Hash值值相同。85.2.1 Hash函数的性质质l一个典型的Hash函数应应具有下列特性:l单单向性:已知Hash函数的输输出c=hash(m) ,要 求它的输输入m是困难难的。

6、l快速性:已知输输入m,计计算hash(m)是容易的。 l抗碰撞性:已知hash(m1)=c1,构造m2使 hash(m2)=c1是困难难的。l雪崩性:c=hash(m),c的每一比特都与m的每 一比特有关,具有高度敏感性。l输输入数据没有长长度限制:对输对输 入任何长长度的数 据能够够生成该输该输 入消息固定长长度的输输出。*95.2.1 Hash函数的例子l一个最简单简单 的Hash函数的例子l将输输入数据M分成n个等长长的分组组Mi(1in),然后对对每 个分组组按位进进行异或运算,得到的结结果便为为其消息摘 要。*10图5.2 简单的Hash函数示例*5.2.1 Hash函数的攻击击方

7、法lHash函数的安全性取决于其抗各种攻击击的能力。l攻击击者的目标标通常是找到两个不同消息映射为为同一 值值。一般假定攻击击者知道Hash算法。l攻击击Hash函数有两种基本方法,都属于选择选择 明文攻 击击。l穷举穷举 攻击击法(Exhaustive Attack)l生日攻击击(Birthday Attack)l穷举穷举 攻击击法l给给定H=h(M),其中H为为初值值,攻击击者在所有可能的M中寻寻 求有利于攻击击者的M,使h(M)=h(M),由于限定了目标标 h(M)来寻寻找M,这这种攻击击又称为为目标标攻击击法。11*5.2.1 Hash函数的生日攻击击法l生日攻击击法可用于攻击击任何H

8、ash算法,它只依赖赖 于消息摘要的长长度,即Hash值值的长长度。l生日攻击击基于生日悖论论。l在一个教室中,找一个与某人生日相同的概率不小于 0.5时时,所需学生为为183人。l在一个教室中,至少有两个学生的生日在同一天的概率 不小于0.5的学生人数仅为仅为 23人。l对对于n比特Hash值值的生日攻击击,当进进行2n/2次的 选择选择 明文攻击击下成功的概率将超过过0.63 。12*5.2.1 Hash函数的生日攻击击法l生日攻击击对对Hash函数提出了一个必要的安全条件 ,即消息摘要必须须足够够的长长。l一个40比特长长的消息摘要是很不安全的,因为仅为仅 仅仅用220 (大约约一百万)

9、次随机Hash可至少以1/2的 概率找到一个碰撞。l为为了抵抗生日攻击击,通常建议议消息摘要的长长度至 少应选应选 取为为128比特,此时时生日攻击击需要约约264次 Hash。l统计结统计结 果表明:当hash值值的长长度为为128比特时时, 则则任意两个报报文M1和M2具有相同hash值值的概率 接近于零。l安全Hash标标准的输输出长长度选为选为 160比特。 13*lHash函数的单单向性和抗碰撞性使Hash函数适用于 加密与认证认证 机制。lUNIX系统统一直使用Hash函数进进行口令认证认证 ,系统统并 不直接存储储用户户的登录录口令明文,而是存储储其Hash值值 。l用户户登录时

10、录时 ,系统对统对 其输输入的口令进进行Hash值计值计 算 ,如果结结果与系统统中存储储的Hash值值匹配,则则允许该许该 用 户户登录录系统统。l这这种机制还还实现实现 了对对用户户口令的保密,因为为即使攻击击 者进进入系统统窃取了用户户口令的Hash值值,他也无法通过过 其计计算出用户户口令。lHash函数的雪崩性则则使其适用于数据完整性的保 障机制中。145.2.1 Hash函数的应应用5.2.1 Hash函数的分类类lHash函数按其是否有密钥钥控制分为为两大类类l一类类有密钥钥控制称为为密码码Hash函数。密码码 Hash函数的Hash值值不但与输输入数据有关,还还 与密钥钥有关,

11、因此具有认证认证 功能。l一类类没有密钥钥控制称为为一般Hash函数,一般 Hash函数的Hash值值只与输输入数据有关,因此不 具备认证备认证 功能,只用于检测输检测输 入数据的完整性 ,一般与公钥钥加密技术术结结合使用。典型的Hash 算法有MD5和SHA等。*15*5.2.2 MD5算法简简介l MD5(Message-Digest Algorithm 5)在90年代初由 MIT的计计算机科学实验实验 室和RSA Data Security Inc发发明,经经MD2、MD3和MD4发发展而来。lMD5将任意长长度的输输入消息变换变换 成一个128bit的 大整数,并且它是一个不可逆的变换

12、变换 算法。lMD5的典型应应用是对对一段信息(Message)产产生 信息摘要(Message-Digest),以防止被篡篡改。lMD5还还广泛用于加密技术术上。比如在UNIX系统统 中用户户的密码码就是经经MD5(或其它类类似的算法) 加密后存储储在文件系统统中。16*5.2.2 MD5算法的工作原理17图5.3 MD5算法处理过程5.2.2 MD5算法的具体过程l(1)信息填充l对输对输 入信息进进行填充,使信息长长度为为512比特(分 组长组长 度)的整数倍。l(2)初始化链链接变变量(Chaining Variable)l4个32位整型参数A, B, C, Dl(3)循环处环处 理l

13、以A, B, C, D作为输为输 入参数,对对填充后信息的每个 分组进组进 行四轮轮循环处环处 理,每轮轮循环对环对 分组进组进 行16 次操作。*18*5.2.2 MD5算法信息填充l信息填充l在信息的后面填充一个1和若干个0,直到信息长长度扩扩 展至512n+448比特为为止。l然后在其后附加一个64比特的数据,此数据表示填充前 信息的长长度。此时时信息的比特长长度恰好是512的整数倍 。l填充后将消息被划分成若干个512位的分组组,每一分组组 又被划分为为16个32位子分组组。这这些分组组即为为算法后续续 循环处环处 理的输输入信息。195.2.2 MD5算法初始化链链接变变量l初始化链

14、链接变变量lMD5算法中有A、B、C、D四个变变量,最初存 放的4个32位整数被称作链链接变变量,链链接变变量 初始化为为如下值值:lA=0x01234567 lB=0x89abcdef lC=0xfedcba98 lD=0x76543210l当设设置好这这四个链链接变变量后,就开始进进入算法 的循环处环处 理。*205.2.2 MD5算法循环处环处 理l循环处理l消息的每一个分组均经过4轮循环处理,处理前将 缓冲区A、B、C、D的内容作为输入参数,处理后 的结果再加入到A、B、C、D中去。*215.2.2 MD5算法循环处环处 理l每轮轮循环处环处 理l每轮轮循环对环对 一个分组进组进 行1

15、6次操作。每次操作对对a, b, c 和d中的其中三个作一次非线线性函数运算,然后将所得 结结果加上第四个变变量、分组组的一个子分组组和一个常数 。再将所得结结果循环环左移,并加上a, b, c或d中之一。 最后用该结该结 果取代a, b, c或d中之一。*22*5.2.3 SHA-1算法l安全哈希算法SHA ( Secure hash Algorithm)l由美国国家标标准技术术局NIST ( National Institute of Standards Technology)在MD4的基础础上开发发出来 的。lSHA于1993作为联为联 邦消息处处理标标准(FIPS PUB 180)公布

16、。在1995年出版了改进进版本FIPS PUB 181 ,叫做SHA-1。lSHA-1算法允许许的最大输输入报报文的长长度不超过过264 位,输输出160比特的报报文摘要。lSHA算法同样样以512位分组组为单为单 位进进行处处理。235.2.3 SHA-1算法的具体过过程l1.信息填充l填充方法与MD5算法相同。l2.初始化消息摘要(MD)缓缓存器l使用由5个32位寄存器组组成的160位缓缓存来存放中 间结间结 果和最终终散列值值。l3.摘要处处理l处处理核心是一个4个循环环的压缩压缩 函数模块块,其中每 个循环环由20个处处理步骤组骤组 成。*24*5.2.4 MD5算法和SHA-1算法的比较较lMD5和SHA-1都属于MD4的改进进版本,它们们之间间的 比较较如下表所示。25MD4SHA-1MD5 Hash值值128 bit160 bit128 bit 分组处组处 理长长512 bit512 bit512 bit 基本字长长32 bit32 bit32 bit 步数48(3*16)80(4*20)64(4*16) 消息长长2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号