Hash函数分解课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Hash函数分解课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hash 函数 分解 课件
- 资源描述:
-
1、1/第七章 杂 凑 函 数第1页,共38页。2杂凑函数杂凑函数(Hash(Hash函数)函数)杂凑函数是密码学的一个基本工具,在杂凑函数是密码学的一个基本工具,在数字签名、身份认数字签名、身份认证和消息的完整性检测证和消息的完整性检测等方面有着重要的应用等方面有着重要的应用 杂凑函数杂凑函数H是一公开函数,用于将任意长的消息是一公开函数,用于将任意长的消息M映射映射为较短的、固定长度的一个值为较短的、固定长度的一个值H(M),作为认证符,称函数作为认证符,称函数值值H(M)为杂凑值、杂凑码或消息摘要。为杂凑值、杂凑码或消息摘要。杂凑码是消息中所有比特的函数,因此提供了一种错误检测杂凑码是消息中
2、所有比特的函数,因此提供了一种错误检测能力,即改变消息中任何一个比特或几个比特都会使杂凑码能力,即改变消息中任何一个比特或几个比特都会使杂凑码发生改变。发生改变。特点:特点:H 打上了输入数字串的烙印,为数字指纹打上了输入数字串的烙印,为数字指纹(Digital Finger Print)第2页,共38页。3散列函数的性质散列函数的性质(1)一般杂凑函数一般杂凑函数h(m)算法公开,不需要密钥算法公开,不需要密钥(2)具有数据压缩功能,可将任意长度的输入数据转)具有数据压缩功能,可将任意长度的输入数据转换成一个固定长度的输出。换成一个固定长度的输出。(3)对任何给定的)对任何给定的m,h(m)
3、易于计算。易于计算。第3页,共38页。4Hash函数的应用函数的应用 在密码学和数据安全技术中,它是实现有效、安全可靠数在密码学和数据安全技术中,它是实现有效、安全可靠数字签字和认证的重要工具,是安全认证协议中的重要模块字签字和认证的重要工具,是安全认证协议中的重要模块。第4页,共38页。5HashHash函数的应用函数的应用注:实际应用中,未必一定是如h(mk)的计算方式,明文与密钥k的组合方式因不同的实现可以不同。第5页,共38页。6单向杂凑函数要求单向杂凑函数要求 密码学中所用的杂凑函数必须满足一定安全性的要求,要密码学中所用的杂凑函数必须满足一定安全性的要求,要能防伪造,抗击各种类型的
4、攻击,如生日攻击、中途相遇能防伪造,抗击各种类型的攻击,如生日攻击、中途相遇攻击等等。攻击等等。安全要求:安全要求:(1)具有单向性。具有单向性。给定消息的散列值给定消息的散列值h(m),要得到消,要得到消息息m在计算上不可行;在计算上不可行;(2)具有弱抗碰撞性具有弱抗碰撞性(Weak collision resistance)。)。对任何给定的消息对任何给定的消息m,寻找与,寻找与m不同的消息不同的消息m,使得它,使得它们的散列值相同,即们的散列值相同,即h(m)h(m),在计算上不可行。,在计算上不可行。(3)具有强抗碰撞性具有强抗碰撞性(Strong collision resista
5、nce)。寻找任意两个不同的消息。寻找任意两个不同的消息m和和m,使得使得h(m)h(m)在计算上不可行。在计算上不可行。第6页,共38页。7H是多对一映射是多对一映射 杂凑函数是多对一映射,所以必然存在碰杂凑函数是多对一映射,所以必然存在碰撞撞outputhHMMH第7页,共38页。8HashHash函数的无碰撞性函数的无碰撞性 弱单向杂凑弱单向杂凑,是在给定,是在给定M下,考察与特定下,考察与特定M的无碰撞性的无碰撞性;而;而强单向杂凑函数强单向杂凑函数是考察输入集中任意两个元素的是考察输入集中任意两个元素的无碰撞性。无碰撞性。显然,对于给定的输入数字串的集合,后一种碰撞显然,对于给定的输
6、入数字串的集合,后一种碰撞要容易实现。要容易实现。因为从下面要介绍的生日悖论知,在因为从下面要介绍的生日悖论知,在N个元素的集中,个元素的集中,给定给定M找与找与M相匹配的相匹配的M的概率要比从的概率要比从N中任取一对中任取一对元素元素M,M相匹配的概率小得多。相匹配的概率小得多。第8页,共38页。9单向杂凑函数安全性要求单向杂凑函数安全性要求 杂凑函数的安全性取决于其抗击各种攻击的能力,对杂凑函数的安全性取决于其抗击各种攻击的能力,对手的目标是找到两个不同消息映射为同一杂凑值。一手的目标是找到两个不同消息映射为同一杂凑值。一般假定对手知道杂凑算法,采用选择明文攻击法般假定对手知道杂凑算法,采
7、用选择明文攻击法 对杂凑函数的基本攻击方法:对杂凑函数的基本攻击方法:(1)穷举攻击(或暴力攻击):穷举攻击(或暴力攻击):不涉及杂凑算法的结构,不涉及杂凑算法的结构,能对任何类型的散列函数进行攻击。其中最典型方法是能对任何类型的散列函数进行攻击。其中最典型方法是“生日攻击生日攻击”:给定初值给定初值H0,寻找,寻找M M,使,使h(H0,M)=h(H0,M)。(2)密码分析法密码分析法,这类攻击方法依赖于对散列函数的结构和,这类攻击方法依赖于对散列函数的结构和代数性质分析,代数性质分析,采用采用针对散列函数弱性质的方法进行攻击针对散列函数弱性质的方法进行攻击。这类攻击方法有中间相遇攻击、修正
8、分组攻击和差分分。这类攻击方法有中间相遇攻击、修正分组攻击和差分分析等等。析等等。第9页,共38页。10生日攻击生日攻击 1生日悖论:在一个会场参加会议的人中,找一个与某人生日生日悖论:在一个会场参加会议的人中,找一个与某人生日相同的概率超过相同的概率超过0.5时,时,所需参会人员为所需参会人员为183人人。但要问使参会。但要问使参会人员中至少有两个同日生的概率超过人员中至少有两个同日生的概率超过0.5的的参会人数仅为参会人数仅为23人人。这是因为,对于与某个已知生日的人同日生的概率为这是因为,对于与某个已知生日的人同日生的概率为1/365,若房中有,若房中有t人,则至少找到一人与此人同日生的
9、概率为多少人,则至少找到一人与此人同日生的概率为多少。易易于解出,当于解出,当t 183时可使时可使p0.5。第一个人在特定日生的概率为第一个人在特定日生的概率为1/365,而第二人不在该日生,而第二人不在该日生的概率为的概率为(1-1/365),类似地第三人与前两位不同日生的,类似地第三人与前两位不同日生的概率为概率为(1-2/365),以此类推,以此类推,t个人都不同时生日概率为个人都不同时生日概率为Pt=(1-1/365)(1-2/365)(1-(t-1)/365),因此,至少,因此,至少有两人于同日生的概率为有两人于同日生的概率为1-Pt.解之,当解之,当t 23时,时,p0.5。第1
10、0页,共38页。11对散列函数的生日攻击对散列函数的生日攻击 与散列函数相关的类似问题可表述如下:给定一个散列与散列函数相关的类似问题可表述如下:给定一个散列函数函数h的输出长度为的输出长度为n位,共有位,共有2n个可能的散列值输出,个可能的散列值输出,找找x和和y满足满足H(x)=H(y),则尝试多少个报文可以找到,则尝试多少个报文可以找到一对(假设散列值一对(假设散列值n比特)比特)显然,最多尝试显然,最多尝试2n1个报文,必有一对冲突个报文,必有一对冲突 其实,远在到达其实,远在到达2n1之前,很可能早就找到了之前,很可能早就找到了(期期望望2n-1)如果只要达到一定的概率如果只要达到一
11、定的概率(如如1/2),约需尝试多少个不,约需尝试多少个不同报文?答案:同报文?答案:2n/2第11页,共38页。12杂凑函数的构造杂凑函数的构造(Merkle-Damgard)Merkle-Damgard)迭代型散列函数的一般结构:算法中重复使用某个函数f。函数f的输入有两项,一项是上一轮(第i-1轮)的输出CVi-1,称为链接变量,另一项是算法在本轮(第i轮)b位的输入分组mi。整个散列函数的逻辑关系可表示为:CV0=IV;CVi=f(CVi-1,mi);1it;h(M)=CVt第12页,共38页。13直接设计散列函数直接设计散列函数 MD5、SHA1是当前国际通行的两大密码标准。是当前国
12、际通行的两大密码标准。MD5由由国际著名密码学家图灵奖获得者兼公钥加密算法国际著名密码学家图灵奖获得者兼公钥加密算法RSA的创始的创始人人Rivest设计,设计,SHA1是由美国专门制定密码算法的标是由美国专门制定密码算法的标准机构准机构美国国家标准技术研究院(美国国家标准技术研究院(NIST)与美国国家)与美国国家安全局(安全局(NSA)设计。)设计。两大算法是目前国际电子签名及许多其它密码应用领域的关两大算法是目前国际电子签名及许多其它密码应用领域的关键技术,广泛应用于金融、证券等电子商务领域。其中,键技术,广泛应用于金融、证券等电子商务领域。其中,SHA1早在早在1994年便为美国政府采
13、纳,目前是美国政府年便为美国政府采纳,目前是美国政府广泛应用的计算机密码系统。广泛应用的计算机密码系统。第13页,共38页。141990MD419911992MD51993SHA019941995SHA119961997199819992000200120022003SHA-256,384,512200420052006MD4 is brokentheoretical attack on SHA0MD5,SHA0 broken,theoretical attack on SHA1直接设计散列函数第14页,共38页。15MDMD系列系列 MIT 一系列一系列杂凑杂凑算法算法(Ronal Rive
14、st 设计设计)http:/theory.lcs.mit.edu/rivest/Message Digest(MD)MD2(RFC 1319)MD4(RFC 1320)MD5(RFC 1321)应用应用 曾经是最广泛的摘要算法曾经是最广泛的摘要算法 但是摘要太短但是摘要太短(128bits)而而SHA有有160bits第15页,共38页。16MD5MD5 特性:输入:任意长度的消息特性:输入:任意长度的消息 输出:输出:128位消息摘要位消息摘要 处理:以处理:以512位输入数据块为单位位输入数据块为单位 步骤步骤1(填充消息填充消息):使得消息的长度(使得消息的长度(bit为单位)模为单位)
15、模512为为448。如果数据长度正好是模。如果数据长度正好是模512为为448,增加,增加512个填充个填充bit,也就是说填充的个数为也就是说填充的个数为1-512。填充方法:第一个填充方法:第一个bit为为1,其余全部为,其余全部为0。步骤步骤2(补足长度补足长度):将数据长度转换为将数据长度转换为64bit的数值,如果长的数值,如果长度超过度超过64bit所能表示的数据长度的范围,值保留最后所能表示的数据长度的范围,值保留最后64bit,增加到前面填充的数据后面,使得最后的数据为增加到前面填充的数据后面,使得最后的数据为512bit的整数倍。的整数倍。然后对每个然后对每个512bit按每
16、组按每组32bit进行分组进行分组,可分为可分为16组。组。512=32*16第16页,共38页。17报文K bitsL512 bits=N 32bits报文长度(K mod 264)1000Y0512 bitsY1512 bitsYq512 bitsYL-1512 bitsHMD5IV128HMD5CV1128HMD5CVq128HMD5CVL-1128512512512512128-bit 摘要MD5产生报文摘要的过程填充(1 to 512 bits)第17页,共38页。18MD5MD5算法实例算法实例 例例7-1 对字符串对字符串”abc”,运用,运用MD5求散列值求散列值解解:首先首先
17、”abc”二进制表示为:二进制表示为:01100001 01100010 01100011,共,共24位长度位长度MD5算法:算法:第一步:第一步:按照按照MD5要求,填充数据要求,填充数据:5126424424(填充(填充1位位“1”,423位位“0”,及,及 1000000)512位的输入数据为位的输入数据为(十六进制表示十六进制表示):):61626380 00000000,00000018而而 W0=61626380,W1=W2=W14=00000000,W15=00000018第18页,共38页。19MD5算法算法步骤三:初始化变量 用到4个变量,分别为A、B、C、D,均为32bit
18、长。初始化为:A=01 23 45 67 B=89 ab cd ef C=fe dc ba 98 D=76 54 32 10 第19页,共38页。20MD5算法算法第四步:数据处理,共进行四轮。设对512bit按每组32bit进行分组为M0,M1,M15。第一轮的辅助函数:F(X,Y,Z)=(X Y)(X Z)X Y表示按位与,X Y表示按位或,X表示按位取反。第一轮的操作:FF(a,b,c,d,Mj,s,ti)表示为:a=b+(a+(F(b,c,d)+Mj+ti)s)其中:Mj表示第j个分组,s表示循环左移s位 ti 是给定的常数,ti=0 x(int(232*sin(i).第20页,共38
展开阅读全文