版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章密码学Hash函数第12章消息认证码第13章数字签名第三部分–密码学中的数据完整性算法
第十一章–密码学Hash函数下图描述了密码学Hash函数的操作过程。通常输入数据的长度首先被填充为某固定长度(如1024位)分组的整数倍,填充的内容包括原始消息的位长度信息。填充长度信息能够提高攻击者修改消息而保持Hash值不变的难度。第十一章–密码学Hash函数密码学Hash函数或许是用途最多的密码算法,它被广泛应用于各种不同的安全应用和网络协议中。首先考虑密码学hash函数的应用范围。消息认证消息认证是用来验证消息完整性的一种机制或服务。消息认证确保收到的数据确实和发送时的一样(即没有修改、插入、删除或重放)。此外,通常还要求消息认证机制确保发送方声称的身份是真实有效的。当Hash函数用于提供消息认证功能时,Hash函数值通常称为消息摘要。11.1密码学Hash函数的应用第十一章–密码学Hash函数消息认证中使用Hash函数的本质如下:发送者根据待发送的消息使用该函数计算一组Hash值,然后将Hash值和消息一起发送过去。接收者收到后对于消息执行同样的Hash计算,并将结果与收到的Hash值进行比较。如果不匹配,则接收者推断出消息(当然也可能是Hash值)遭受了篡改。11.1密码学Hash函数的应用Hash函数的运算结果必须通过安全的方式传输。因为Hash函数必须得到保护,使得如果攻击者篡改或替换消息的话,对于攻击者不能轻易的同时对Hash值进行修改以蒙骗接受者。这种类型的攻击如图所示。11.1密码学Hash函数的应用该例中,Alice传输消息时附上数据的hash值。Darth拦截了该消息,篡改或替换其中的数据,然后重新计算Hash值并附在后面。Bob收到篡改后的数据块以及新的Hash值,未能发现消息已经被篡改。为了防止该类攻击,由Alice生成的Hash值必须得到保护。左图展示了Hash码能够通过如下各种不同的方法用于提供消息认证。11.1密码学Hash函数的应用(a)使用对称密码算法加密消息和Hash码。因为只有A和B共享秘钥,所以消息必然是发自A处,并且未被更改过。这里附加的Hash码提供了实现认证功能的结构。因为对于整个消息以及Hash码都是用了加密,保密性也被提供了。(b)使用对称密码算法只对Hash码进行加密。对于无需保密性的应用,这种方案减少了加解密操作的负担。(c)不使用加密算法,仅使用Hash函数也能够实现消息认证。该方案假设通信双方共享相同的秘密值S。发送方A将消息M和秘密值S串联后计算其Hash值,并将得到的Hash值附在消息M后发送。因为接收方B同时掌握S,所以能够重新计算该Hash值进行验证。由于秘密值S本身并没有在信道上传送,攻击者不能够对在信道上拦截的消息进行修改,进而也不能制作假消息。11.1密码学Hash函数的应用(d)通过将整个消息和Hash值加密,能够在方案(c)的基础上提供保密性。由于方案(b)中所需的计算较少,而方案(a)和方案(d)需要加密整个消息,所以如果不要求提供保密性,方案(b)比方案(a)和(d)更有优势。人们越来越对那些不含加密函数的方法感兴趣。因为:加密软件速度慢。即使每条消息需要加密的数据量不大,但是总有消息串需要通过加密系统输入或输出。加密硬件成本不容忽视。尽管已有实现DES的低成本芯片,但是如果网络中所有节点都必须有该硬件,则总成本可能很大。加密硬件的优化通常是针对大数据块的。对于小数据块,大比例的时间开销在初始化/调用上。加密算法可能受专利保护,这也会增加成本。11.1密码学Hash函数的应用
11.1密码学Hash函数的应用数字签名与消息认证应用类似,对于Hash函数的另外一个重要应用就是数字签名。数字签名的操作与MAC相似,在进行数字签名过程中使用用户的私钥加密消息的Hash值,其他任何知道该用户公钥的人都能够通过数字签名来验证消息的完整性。在这种情况下,攻击者要想篡改消息,则需要知道用户的私钥。数字签名有着比消息认证更为广泛的应用。下图简要描述了Hash码用户提供数字签名的方案:(a)使用发送方的私钥,利用公钥密码算法仅对Hash码进行加密。这种方法可提供认证;由于只有发送方可以产生加密后的Hash码,所以这种方法也提供了数字签名,事实上,这就是数字签名技术的本之所在。(b)若即希望保证保密性又希望有数字签名,则先用发送方的私钥对Hash码加密,再用对称密码中的密钥对消息和公钥算法加密结果进行加密,这种技术比较常用。11.1密码学Hash函数的应用11.1密码学Hash函数的应用其他应用对于Hash函数,通常还被用于产生单向口令文件。操作系统为何存储口令的Hash值而不是口令本身的原因,是这样一来黑客即使能够访问口令文件,也不能获取真正的口令。当用户输入口令时,操作系统将比对输入口令的Hash值和存储在口令文件中的Hash值。Hash函数能用于入侵检测和病毒检测。将每个文件的Hash值H(F)存储在安全系统中(CD-R)中,随后就能够通过重新计算H(F)来判断文件是否被修改过。入侵者只能够改变F,而不能改变H(F)。密码学Hash函数能够用于构建随机函数(PRF)或用做伪随机数发生器(PRNG)。基于Hash函数的PRF可用于对称密码中的密钥产生。11.1密码学Hash函数的应用
11.2两个简单的Hash函数第十一章–密码学Hash函数
11.2两个简单的Hash函数11.2两个简单的Hash函数这样可使输入更加完全地“随机”,从而消除输入数据的规则性。右图给出了两种产生16位Hash值的Hash函数。
11.2两个简单的Hash函数
11.2两个简单的Hash函数
11.3需求和安全性第十一章–密码学Hash函数密码学Hash函数的安全性需求下表列出了给广泛认同的密码学Hash函数的安全性需求。11.3需求和安全性需求描述输入长度可变H可应用于任意大小的数据块输出长度固定H产生定长的输出效率对任意给定的x,计算H(x)比较容易,用硬件和软件均可实现抗原像攻击(单向性)对任意给定的Hash码h,找到满足H(y)=h的y在计算上是不可行的抗第二原像攻击(抗弱碰撞性)抗碰撞攻击(抗强碰撞性)找到任何满足H(x)=H(y)的偶对(x,y)在计算上是不可行的伪随机性H的输出满足伪随机性测试标准
11.3需求和安全性如果一个Hash函数满足前5个要求,就称其为弱Hash函数。如果第6个性质抗强碰撞性也满足,就称其为强Hash函数。强Hash函数能够保证免受如下的攻击:通信双方中的一方生成消息,而另一方对消息进行签名。例如,假设Bob写一条IOU(借据)消息并发送给Alice,Alice在借据上签名认可。Bob如果能够找到两个消息具有同样的Hash值,其中一个借据消息要求Alice归还金额较小,另一个金额很大,那么让Alice签下第一个小额借据后,Bob就能够声称第二个(大额)借据是真实的。11.3需求和安全性下图展示了三个安全特性(抗原像攻击、抗若碰撞攻击、抗强碰撞攻击)之间的联系:一个函数如果是抗强碰撞的,那么也同时是抗弱碰撞的,但反之则不一定成立。一个函数可以是抗强碰撞的,但不一定是抗原像攻击的,反之亦然。一个函数可以是抗弱碰撞的,但不一定是抗原像攻击的,反之亦然。11.3需求和安全性下表展示了在不同应用环境下Hash函数的安全性需求:11.3需求和安全性抗原像攻击抗弱碰撞攻击抗强碰撞攻击Hash+数字签名是是是入侵检测和病毒检测是Hash+对称加密单向口令文件是MAC是是是对于伪随机性,在传统观念中并没有作为密码学Hash函数的安全性需求,但却在实际使用中或多或少有所需求。密码学Hash函数通常用于密钥产生、伪随机数发生器以及消息完整性应用,上述三个安全特性都要求Hash函数的输出是随机的。因此需要Hash函数的输出具有伪随机性。穷举攻击同加密算法一样,对于Hash函数的攻击也分为两类:穷举攻击和密码分析。穷举攻击不依赖于任何算法的细节,仅与相应的长度相关。对于Hash函数,穷举攻击仅与算法所产生的Hash值的长度相关。与之相反,密码分析依赖于具体算法的涉及缺点。下面首先来看看穷举攻击:11.3需求和安全性
11.3需求和安全性
11.3需求和安全性
11.3需求和安全性
11.3需求和安全性抗原像攻击抗弱碰撞攻击抗强碰撞攻击密码分析与对密码算法的攻击一样,对Hash函数的密码分析攻击,也是利用算法的某种性质而不是通过穷举来进行攻击的。评价Hash算法抗密码分析能力的方法是,将其与穷举攻击所需的代价相比,也就是说,理想的Hash函数算法要求密码分析攻击所需的代价大于等于穷举攻击所需的代价。最近这些年,人们在研究对Hash函数的密码分析攻击方面做了大量的工作,其中有些攻击是成功的。11.3需求和安全性典型的安全Hash函数的总体结构:上图这种结构称为迭代Hash函数,由Merkle提出的,包括本章后面将会介绍的SHA在内的目前所使用的大多数Hash函数都是这种结构。Hash函数将输入消息分为L个固定长度的分组,每一分组长为b位,最后一个分组不足b位时需要将其填充为b位,最后一个分组包含输入的总长度。由于输入中包含长度,所以攻击者必须找出具有相同Hash值且长度相等的两条消息,或者找出两条长度不等但是加入消息长度后Hash值相同的消息,从而增加了攻击的难度。11.3需求和安全性
11.3需求和安全性
11.3需求和安全性
11.4基于分组密码链接的Hash函数第十一章–密码学Hash函数
11.4基于分组密码链接的Hash函数
11.4基于分组密码链接的Hash函数近年来,安全Hash算法(SHA)是使用最广泛的Hash函数。事实上,由于其余的被广泛应用的Hash函数被发现存在安全性缺陷,从2005年以来SHA或许是这几年中仅存的Hash算法标准。SHA由美国标准与技术研究所(NIST)设计,并于1993年作为联邦信息处理标准(FIPS180),随后该版本的SHA(即SHA-0)被发现存在缺陷,修订版于1995年发布(FIPS180-1),通常称之为SHA-1,。实际的标准文件称其为“安全Hash标准”。SHA算法建立在MD4算法之上,其基本框架与MD4类似。11.5安全Hash算法(SHA)第十一章–密码学Hash函数SHA-1产生160位的Hash值。2002年,NIST发布了修订版FIPS180-2,其中给出了三种新的SHA版本,Hash值长度依次为256位,384位和512位,分别称为SHA-256,SHA-384和SHA-512。这些算法被统称为SHA-2。SHA-2同SHA-1类似,都使用了同样的迭代结构和同样的模算术与二元逻辑操作。在2008年发布的修订版FIPPUB180-3中,增加了224位版本。11.5安全Hash算法(SHA)SHA-1SHA-224SHA-256SHA-384SHA-512消息摘要长度160224256384512消息长度分组长度51251251210241024字长度3232326464步骤数8064648080
11.5安全Hash算法(SHA)
11.5安全Hash算法(SHA)
11.5安全Hash算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 芪苈强心胶囊治疗维持性血液透析患者心力衰竭的疗效观察
- 光伏薄膜组件制造工变革管理竞赛考核试卷含答案
- 信息通信网络线务员岗前强化考核试卷含答案
- 合成油脂装置操作工诚信品质模拟考核试卷含答案
- 首饰设计师道德考核试卷含答案
- 洗毛炭化挡车工岗中理论实操考核试卷含答案
- 液体洗涤剂制造工安全宣贯评优考核试卷含答案
- 特种炉冶炼工标准化考核试卷含答案
- 通信终端设备制造工安全意识知识考核试卷含答案
- 证券期货服务师岗位技术理论考核试卷含答案
- 加油站储存经营的危化品“一书一签”
- 【直接打印】人教版(2024新版)八年级上册物理默写小纸条
- 螺杆空压机微电脑控制器MAM-KY12S(B)-(Ⅻ)型
- DL∕T 1779-2017 高压电气设备电晕放电检测用紫外成像仪技术条件
- 《想象与思维》课件
- 学习任务2离合器检修
- 垃圾渗滤液应急处理服务投标方案技术标
- 第二章 分数(单元重点综合测试)(解析版)
- 直播销售实务 第3章 选择直播商品
- GB/T 30121-2013工业铂热电阻及铂感温元件
- GB/T 17037.4-2003塑料热塑性塑料材料注塑试样的制备第4部分:模塑收缩率的测定
评论
0/150
提交评论