《应用密码学》课件第6章 Hash函数(1).pptx
《《应用密码学》课件第6章 Hash函数(1).pptx》由会员分享,可在线阅读,更多相关《《应用密码学》课件第6章 Hash函数(1).pptx(37页珍藏版)》请在文库网上搜索。
1、12024/3/192024/3/1912024/3/172024/3/171-通信系统典型攻击通信系统典型攻击通信系统典型攻击通信系统典型攻击22024/3/192024/3/1922024/3/172024/3/17222024/3/192024/3/1922024/3/172024/3/1722024/3/192024/3/192 2知识点:认证与认证系统认证与认证系统散列算法概述散列算法概述Hash散列算法散列算法散列算法的攻击现状散列算法的攻击现状消息认证消息认证第第6章章 认证理论与技术认证理论与技术Hash函数函数(1)32024/3/192024/3/1932024/3/172
2、024/3/17332024/3/192024/3/1932024/3/172024/3/1732024/3/192024/3/193 36.1 认证与认证系统认证与认证系统 认认证证(Authentication),又称为鉴别,认证往往是许多应用系统中安全保护的第一道设防(进入系统,先输密码),也是防止主动攻击的重要技术。简单地说,认证是一个实体向另外一个实体证明某种声称的属性。因此,可以看出认证至少涉及到两个独立的通信实体。而认证参数一般有多种形式,如口令、标示符、密钥、信物、智能卡、指纹、视网纹等。目前广泛应用的还是目前广泛应用的还是基于密码的认证技术基于密码的认证技术,主要认证有身份认
3、证、站点认证、,主要认证有身份认证、站点认证、报文认证等。报文认证等。随着Hash函数和数字签名的发现,人们意识到保密和认证同时是信息系统安保密和认证同时是信息系统安全的两个方面全的两个方面,但它们是两个不同属性的问题,认证不能自动提供保密性,而保密性也不能自然提供认证功能。42024/3/192024/3/1942024/3/172024/3/17442024/3/192024/3/1942024/3/172024/3/174认证认证主要目的主要目的用以确保消息发送者和接收者的真实性以及消息的完整性。认证通常可分为三个子概念:消息认证(或者数据源认证)、实体认证和认证密钥建立。消息认证消息认
4、证主要涉及验证消息的某个声称属性;实体实体认证认证更多涉及验证消息发送者声称的身份;认证认证密钥密钥建立建立主要是致力于产生一条安全信道,用于后继的应用层的安全通信会话。52024/3/192024/3/1952024/3/172024/3/17552024/3/192024/3/1952024/3/172024/3/1752024/3/192024/3/195 5 认证系统原理(系统模型)认证系统原理(系统模型)认证系统原理(系统模型)认证系统原理(系统模型)认证系统模型:认证系统模型:认证系统模型:认证系统模型:由认证编码器、密钥源和认证译码器由认证编码器、密钥源和认证译码器由认证编码器、
5、密钥源和认证译码器由认证编码器、密钥源和认证译码器三部分组成。认证编码器对认证编码器对认证编码器对认证编码器对发送的消息产生认证码发送的消息产生认证码发送的消息产生认证码发送的消息产生认证码。密钥源通常预先协商、通过安全信道分配密钥密钥源通常预先协商、通过安全信道分配密钥。认证译码器认证译码器对接收到的消息进行验证对接收到的消息进行验证。消息认证过程消息认证过程消息认证过程消息认证过程:首先,首先,首先,首先,由发送方的认证编码器对发出的消息生成认证信息,然后,然后,然后,然后,将消息和认证信息一起通过公开信道发送给接收方;接收方收到消息和认证信息后,接收方收到消息和认证信息后,由认证译码器验
6、证消息的合法性,如果消息合法便接受,否则将其丢弃由认证译码器验证消息的合法性,如果消息合法便接受,否则将其丢弃。62024/3/192024/3/1962024/3/172024/3/17662024/3/192024/3/1962024/3/172024/3/1762024/3/192024/3/196 6认证的分类 根据产生认证消息不同方式,认证分为下面三类:根据产生认证消息不同方式,认证分为下面三类:(1)消息认证:用消息的密文本身充当认证信息;)消息认证:用消息的密文本身充当认证信息;(2)消息认证码)消息认证码MAC(MessageAuthenticationCode):由以消息和密
7、钥作为由以消息和密钥作为输入的公开函数产生的认证信息。输入的公开函数产生的认证信息。(3)散列值:由以消息作为唯一输入的散列函数产生的认证信息(无需密钥)散列值:由以消息作为唯一输入的散列函数产生的认证信息(无需密钥),也称,也称“消息摘要消息摘要”或或“报文摘要报文摘要”。72024/3/192024/3/1972024/3/172024/3/17772024/3/192024/3/1972024/3/172024/3/1772024/3/192024/3/197 76.2 散列算法概述散列算法概述 散列函数是一公开函数,通常记为散列函数是一公开函数,通常记为H,用于将任意长的消息用于将任意
8、长的消息M映射为较短的、映射为较短的、固定长度的一个值作为认证符固定长度的一个值作为认证符,记为,记为H(M),经常称函数值经常称函数值H(M)为散列值、哈希值、为散列值、哈希值、杂凑值、杂凑码或消息摘要、数字指纹。杂凑值、杂凑码或消息摘要、数字指纹。从密码角度看,散列函数也可以看作是一种单向密码体制,即它从一个明文从密码角度看,散列函数也可以看作是一种单向密码体制,即它从一个明文到密文是不可逆映射,只有加密过程,不能解密。到密文是不可逆映射,只有加密过程,不能解密。散列值是消息中所有比特的函数,因此提供了一种错误检测能力,即改变消散列值是消息中所有比特的函数,因此提供了一种错误检测能力,即改
9、变消息中任何一个比特或几个比特都会使散列值发生改变。息中任何一个比特或几个比特都会使散列值发生改变。在密码学和数据安全技术中,散列函数是实现有效、安全可靠数字签字和认证在密码学和数据安全技术中,散列函数是实现有效、安全可靠数字签字和认证的重要工具的重要工具,是安全认证协议中的重要模块。,是安全认证协议中的重要模块。82024/3/192024/3/1982024/3/172024/3/1786.2.1 6.2.1 散列算法的概念及结构散列算法的概念及结构 Hash散列函数一般模型散列函数一般模型对于散列函数对于散列函数H有下面六个要求:有下面六个要求:(1)能够接受任意长度的消息作为输入;能够
10、接受任意长度的消息作为输入;(2)能够生成较短的固定长度的输出;能够生成较短的固定长度的输出;(3)对任何消息输入都应该能够容易和快速地计算对任何消息输入都应该能够容易和快速地计算出散列值;出散列值;(4)应该是一个单向函数应该是一个单向函数难以或不可能反推。难以或不可能反推。也就是说,给定也就是说,给定H(m),恢复恢复m在计算上是不可行的;在计算上是不可行的;(5)应该能够抵抗弱冲突,即当两个不同消息输入应该能够抵抗弱冲突,即当两个不同消息输入生成相同的输出时,就产生了冲突;生成相同的输出时,就产生了冲突;(6)应该能够抵抗强冲突,即找到两个有意义的消应该能够抵抗强冲突,即找到两个有意义的
11、消息息m1和和m2,使得使得H(m1)=H(m2)几几乎是不可能的。乎是不可能的。又称为:哈希函数、数字指纹又称为:哈希函数、数字指纹又称为:哈希函数、数字指纹又称为:哈希函数、数字指纹(Digitalfingerprint)Digitalfingerprint)、压缩、压缩、压缩、压缩(Compression)Compression)函数、紧缩函数、紧缩函数、紧缩函数、紧缩(ContractionContraction)函数)函数)函数)函数 前三条要求具有前三条要求具有前三条要求具有前三条要求具有实用性实用性实用性实用性;第第第第4 4条是条是条是条是单向性质单向性质单向性质单向性质,即给
12、定消息可以产生一个散列码,而给定散列码不可能产生对应的消,即给定消息可以产生一个散列码,而给定散列码不可能产生对应的消,即给定消息可以产生一个散列码,而给定散列码不可能产生对应的消,即给定消息可以产生一个散列码,而给定散列码不可能产生对应的消息;息;息;息;第第第第5 5条性质是保证一个给定的消息的散列码不能找到与之相同的另外的消息,即条性质是保证一个给定的消息的散列码不能找到与之相同的另外的消息,即条性质是保证一个给定的消息的散列码不能找到与之相同的另外的消息,即条性质是保证一个给定的消息的散列码不能找到与之相同的另外的消息,即防止伪造防止伪造防止伪造防止伪造;第第第第6 6条是对已知的条是
13、对已知的条是对已知的条是对已知的生日攻击生日攻击生日攻击生日攻击方法的防御能力。方法的防御能力。方法的防御能力。方法的防御能力。92024/3/192024/3/1992024/3/172024/3/1792024/3/192024/3/199 9散列函数应该满足的一般安全特性:散列函数应该满足的一般安全特性:102024/3/192024/3/19102024/3/172024/3/17102024/3/192024/3/191010 散列函数的一般结构散列函数的一般结构散列函数的一般结构散列函数的一般结构 1979年,MerKle基于数据压缩函数f建议了一个散列函数的一般结构如下图所示。M
14、D系列、SHA系列大多数散列函数都使用该结构。散列函数基本结构散列函数基本结构112024/3/192024/3/19112024/3/172024/3/17112024/3/192024/3/191111 上上图图中中,散散列列函函数数输输入入消消息息M,并并将将其其分分为为L个个固固定定长长度度的的分分组组,若若最最后后一一个个数数据据块不满足输入分组长度要求,按照一定规则进行填充块不满足输入分组长度要求,按照一定规则进行填充。该该散散列列函函数数重重复复使使用用一一个个压压缩缩函函数数f。压压缩缩函函数数f有有两两个个输输入入,一一个个是是前前一一阶阶段段的的n为为输输入入,另另外外一一
15、个个源源于于消消息息的的b位位分分组组,并并产产生生一一个个n位位的的输输出出,算算法法开开始始时时需需要要一一个个初初始始变变量量IV,最最终终的的输输出出值值通通过过一一个个输输出出变变换换函函数数g得得到到消消息息散散列列值值,通通常常bn,故故称称f为为压缩函数压缩函数,如下图所示:,如下图所示:压缩函数基本结构压缩函数基本结构122024/3/192024/3/19122024/3/172024/3/1712122024/3/192024/3/19122024/3/172024/3/17126.2.2 6.2.2 散列算法的分类及发展现状散列算法的分类及发展现状 最常用的散列函数主要
16、可分为如下几类:最常用的散列函数主要可分为如下几类:(1)MessageDigest(MD)系列系列 MD系列是由国际著名密码学家图灵奖获得者兼公钥加密算法RSA的创始人Rivest设计,包包包包括括括括MD2MD2(19891989年年年年针针针针对对对对8 8位位位位计计计计算算算算机机机机上上上上实实实实现现现现),MD4MD4(19901990年年年年针针针针对对对对3232位位位位计计计计算算算算机机机机上实现)和上实现)和上实现)和上实现)和MD5MD5(19911991年提出的,是对年提出的,是对年提出的,是对年提出的,是对MD4MD4的改进版,包括其散列值为的改进版,包括其散列
17、值为的改进版,包括其散列值为的改进版,包括其散列值为128128位)位)位)位)。(2)SHA(SecurityHashAlgorithm)系列系列 由由美美国国专专门门制制定定密密码码算算法法的的标标准准机机构构NIST和和NSA(National Security Agency,国国家家安安全全局局),在在1993年年,在在MD5基基础础上上首首先先提提出出SHA-0,美美国国国国家家安安全全局局(NSA)在在这个算法发布之后就将其撤回这个算法发布之后就将其撤回。1995年年SHA-1被被提提出出(即即美美国国的的FIPS PUB 180-1标标准准),消消息息散散列列为为160 bits
18、。现现今今SHA-1应应用用到到DSA数数字字签签名名的的标标准准。在在2003年年,相相继继对对SHA系系列列算算法法进进行行扩扩展展,提提出出SHA-256、SHA-384、SHA-512(即即美美国国的的FIPS PUB 180-2标标准准),并并于于2004年年加加入入了了额额外外的的变变种:种:SHA-224,统称为,统称为SHA-2。132024/3/192024/3/19132024/3/172024/3/1713132024/3/192024/3/19132024/3/172024/3/17132007年,年,NIST发起了发起了SHA-3竞赛以征集新的竞赛以征集新的Hash算
19、法算法。最终最终经过三轮的评选,经过三轮的评选,2012年年10月月2号,号,Keccak作为竞赛的胜利者,作为竞赛的胜利者,SHA-3标准标准被发布被发布(即美国的即美国的FIPS PUB 202),),提出了提出了4个个Hash算法算法SHA3-224,SHA3-256,SHA3-384,and SHA3-512,可完全替换,可完全替换SHA-2。(3)其它散列算法其它散列算法 HAVAL可以用来实现可变是那列的输出,RIPEMD-128、RIPEMD-160是是欧欧洲洲MD5和和MD4算算法法的的研研究究者者提提出出的的替替代代算算法法,Tiger算算法法主主要要是是设设计计思思想想是是
20、在在64位位和和32位计算机上能够很好的使用位计算机上能够很好的使用Hash算法。算法。142024/3/192024/3/19142024/3/172024/3/1714 目前在信息安全领域,最常用的散列函数有两大系列:MessageDigest(MD)系列和SHA(Security Hash Algorithm)系列,而MD5、SHA-1是当前国际通行的两大散列函数。MD5曾经是最广泛的摘要算法,但自从在美国加州圣巴巴拉召开的国际密码学会议(Crypto2004)原山东大学的王小云教授做了破译MD5、HAVAL-128、MD4和RIPEMD算法的报告,囊括了对MD5、HAVAL-128、M
21、D4和RIPEMD四个著名HASH算法的破译结果。-发展现状发展现状152024/3/192024/3/19152024/3/172024/3/17152007年,年,MarcStevens,ArjenK.Lenstra和和BennedeWeger进一步指出通过伪造进一步指出通过伪造软件签名,可重复性攻击软件签名,可重复性攻击MD5算法;算法;2008年,荷兰埃因霍芬技术大学科学家成功把年,荷兰埃因霍芬技术大学科学家成功把2个可执行文件进行了个可执行文件进行了MD5碰撞,使得这两个运行结果不同的程序被计算出同一个碰撞,使得这两个运行结果不同的程序被计算出同一个MD5;同年同年12月一组科研人员
22、通过月一组科研人员通过MD5碰撞成功生成了伪造的碰撞成功生成了伪造的SSL证书,这使得在证书,这使得在https协议中服务器可以伪造一些根协议中服务器可以伪造一些根CA的签名,因此的签名,因此MD5散列算法已不安全,不再推散列算法已不安全,不再推荐使用。荐使用。但是目前仍然在很多场合还在使用但是目前仍然在很多场合还在使用MD5算法,如算法,如Linux操作系统中的用户口令的验操作系统中的用户口令的验证算法。证算法。162024/3/192024/3/19162024/3/172024/3/17162012年,Mark Stevens使用了大量的云服务器来对SHA-1的进行差分路径攻击,仅用25
23、8.5次就能形成一次攻击碰撞,并且估计,在261次的循环计算后,就可以形成完整的哈希碰撞密码库。由于近年来对哈希算法的分析与破解取得了突破性的进展,由于MD5和SHA-0成功的破解,以及对SHA-1和SHA-2理论上的攻击出现,使得现行的MD系列和SHA系列算法都不再满足安全需要。NIST希望选出一个与之前算法不同的,可替换的Hash算法,于是于是NIST于于2007年发起了年发起了SHA-3竞赛以征集新的摘要算法竞赛以征集新的摘要算法。172024/3/192024/3/19172024/3/172024/3/1717到2008年10月31日为止,NIST收到了64份来自世界各个密码组织或个
24、人提交的候选算法,并且有51个候选算法进入第一轮评估。2009年的第一轮筛选后14个进入第二轮的评选。2010年,Keccak成功通过第二轮筛选进入SHA-3的最后一轮,成为5个最终候选摘要算法之一。2012年10月2号,Keccak从5个进入第三轮的算法中被选为SHA-3竞赛的胜利者。SHA-3的评选并不意味着要取代SHA-2,因为对SHA-2的已证实的有效攻击还没有出现。2017.2,Google宣布攻破宣布攻破SHA-1。182024/3/192024/3/19182024/3/172024/3/1718182024/3/192024/3/19182024/3/172024/3/1718
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用密码学 应用密码学课件第6章 Hash函数1 应用 密码学 课件 Hash 函数