SERVICE PHONE

13988889999
hashgame 哈希游戏
你的位置: 首页 > 哈希游戏
官网 - 哈希游戏平台 畅享娱乐注册_官方通道直达《新编密码学》课件第4章 哈希函数

发布时间:2025-08-26 21:45:59  点击量:

  哈希游戏,哈希游戏注册,哈希游戏平台,哈希游戏平台注册,哈希游戏注册平台

官网 - 哈希游戏平台 畅享娱乐注册_官方通道直达《新编密码学》课件第4章 哈希函数

  版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

  4.1Hash函数与随机预言模型在实际的通信保密中,除了要求实现数据的保密性之外,对传输数据安全性的另一个基本要求是保证数据的完整性。密码学中的Hash函数的主要功能是提供有效的数据完整性检验。数据的完整性是指数据从发送方产生后,经过传输或存储以后,未被以未授权的方式修改的性质。

  4.1.1Hash函数Hash函数是一个将任意长度的消息序列映射为较短的、固定长度的一个值的函数。密码学上的Hash函数能够保障数据的完整性。通常被用来构造数据的“指纹”(即函数值),当被检验的数据发生改变的时候,对应的“指纹”信息也将发生变化。对于Hash函数的安全要求,如果对于原像问题第二原像问题碰撞问题这三个问题都是难解的,则认为该Hash函数是安全的。X—消息集合Y—消息摘要集合不能有效解决原像问题的Hash函数称为单向的或原像稳固的。不能有效解决第二原像问题的Hash函数称为第二原像稳固的。不能有效解决碰撞问题的Hash函数称为碰撞稳固的。实际应用中的Hash函数可分为:简单的Hash函数带密钥的Hash函数一个带密钥的Hash函数通常用来作为消息认证码MAC(Messageauthenticationcode)定义4.1.4 一个带密钥的Hash函数包括以下构成要素:X:所有消息的集合(有限级或无限级)Y:所有消息摘要构成的有限集合K:密钥集合对任意的都存在一个Hash函数如果

  则二元组称为在密钥k下是有效的Hash函数的性质:(1)能够用于任何大小的数据分组(2)能产生定长的输出(3)易于计算,便于软硬件实现(4)原像稳固(5)第二原像稳固(6)碰撞稳固这3个条件是用于消息认证的基本要求单向性防止伪造防止生日攻击Hash函数的目的是确定消息是否被修改。对Hash函数攻击的目标是生成这样的修改后消息:其Hash函数值与原始消息的Hash函数值相等。生日攻击生日攻击的思想来源于概率论中一个著名的问题----生日问题。该问题是问一个班级中至少要有多少个学生才能够使得有两个学生生日相同的概率大于1/2。该问题的答案是23。即只要班级中学生的人数大于23人,则班上有两个人生日相同的概率就将大于1/2。2024/5/1811基于生日问题的生日攻击意味着要保证消息摘要对碰撞问题是安全的,则安全消息摘要的长度就有一个下界。如果消息摘要为m位长度,则总的消息数为2m,因此需要检查大约2m/2个消息,可使两条消息具有相同Hash函数值的概率大于50%。Oscar可以生成下述形式的可接受消息:例也可以生成下述形式的不可接受的消息:在对所有512条消息取Hash函数值后,Oscar也许会发现,“Ipromisetolend25dollarstomybestfriendOscarwhichhewillreturntomein10daysorlessYours,Alice”“Iagreetooffertwenty-fivedollarstomygoodfriendOscarassgiftwhichheshouldnotrepaybecauseIknowheneedsthisaidSincerely,Alice”有相同的Hash函数值。这意味着Oscar可用后者来替换前者。4.1.2随机预言模型由Bellare和Rogaway提出的随机预言模型(RandomOracleModel)是一种“理想化”的Hash函数数学模型。2024/5/1817在这个模型中,随机从Fx,y中选出一个Hash函数

  H,我们仅仅允许预言器访问函数H这表示对于任一个消息x,随机预言模型都不会给出一个公式或者算法来计算消息摘要H(x)的值。计算H(x)值的惟一方法是询问预言器相当于根据给出的消息x,在一本关于随机数的书中查询H(x)的值对于每一个x,都有一个完全随机的H(x)与之对应2024/5/1818M的值越大,相应的产生碰撞的概率就越小。

  4.3.1MD5MD5以512位的分组长度来处理消息,每一个分组又被划分为16个32位的子分组。算法的输出由4个32位的分组组成,它们串联成一个128位的消息摘要。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且是一个不可逆的字符串变换算法。图4-2MD5产生报文摘要的过程具体步骤:(1)填充消息使其长度正好为512位的整数倍末尾处附上64比特消息长度的二进制表示然后在消息后面填充一个“1”和多个“0”填充后的消息恰好是512比特的整倍长L。64比特2024/5/1825消息长度为704位M0M1M2…M13M14M15消息704填充256位消息长度64位1000000……00000……x512=1024分组M0M1M2…M13M14M15消息704填充256位消息长度64位512512例2024/5/1826(2)初始化缓冲区算法中使用了128位的缓冲区,每个缓冲区由4个32比特的寄存器A,B,C,D组成,先把这4个寄存器初始化为:A=01234567B=89ABCDEFC=FEDCBA98D=76543210单个分组的MD5处理过程(3)处理512位消息块Yq,进入主循环第一轮中的Mi为填充之后的M0……M15第二,三四轮中的Mi由公式计算得出包含4作,每一轮由16次迭代操作组成,上一轮的输出作为下一轮的输入。消息块第q次输出第q+1次输出MiMiMiMiMi为Yq中的16个字AABBCCDD4轮循环中每一轮用的16个Mi如下表所示M0M1

  M1M8M15M6M13M4M11M2M9图4-4基本MD5操作(单步)回合數運算函數g12344个非线性函数分别为:一轮具体操作Mi常数b)常数tj:常数表T[i]共有64个元素,每个元素32位长,tj=232abs(sin(i))的整数部分,其中j是弧度。处理每一个消息块Yi时,每一轮使用常数表T[i]中的16个,正好用4轮。c)循环左移数:每轮中每步左循环移位的位数按下表执行。步数轮数1每一轮不断地更新缓冲区A,B,C,D中的内容4轮之后进入下一个主循环,直到处理完所有消息块为止。输出得到128位的消息摘要MD5相对MD4进行了以下一些改进:增加了主循环中的操作次数,由三作改进为四作;操作的每一步均有惟一的加法常数;减弱函数的对称性;改变了第二轮和第三轮中访问消息子分组的次序,使得其形式更加不相似;近似优化了每一轮中循环移位的位移量,各轮的位移量各不相同。

  MD5算法有以下性质:Hash函数的每一位均是输入消息序列中每一位的函数。保证了在Hash函数计算过程中产生基于消息x的混合重复,从而使得生成的Hash函数结果混合得非常理想。也就是说,随机选取两个有着相似规律性的两组消息序列,也很难产生相同的Hash函数值。

  4.4SHA-1SHA-1(SHA:SecurityHashAlgorithm,安全Hash算法)是一个产生160位消息摘要的迭代Hash函数。由美国国家标准和技术协会(NIST)提出,并作为联邦信息处理标准在1993年公布。SHA-1的设计基于MD4算法,并且它在设计方面也很大程度上是模仿MD5算法的。2002年,NIST在SHA-1的基础上,进一步推出了SHA-256、SHA-394、SHA-512三个版本的安全Hash算法,它们的消息摘要长度分别为256位、394位和512位。这些改进算法不仅增强了Hash算法的安全性能,而且便于与AES算法相结合。SHA-1算法算法输入消息的最大长度不超过264位,输入的消息按照512位的分组进行处理。图4-5SHA-1产生报文摘要的过程(1)填充消息首先将消息填充为512的整数倍,填充方法与MD5相同。与MD5不同的是SHA-1的输入为长度小于264比特的消息。64bit2024/5/1839消息长度为704位M0M1M2…M13M14M15消息704填充256位消息长度64位1000000……00000……x512=1024分组M0M1M2…M13M14M15消息704填充256位消息长度64位512512例(2)初始化缓冲区初始化160位的消息摘要缓冲区(即设定IV值),每个缓冲区由5个32比特的寄存器A,B,C,D,E组成,初始化为:A=67452301B=EFCDAB89C=98BADCFED=10325476E=C2D2E1F0(3)处理512位消息块Yq,进入主循环主循环有四轮,每轮20次操作(MD5有四轮,每轮16次操作)。每次操作对A、B、C、D和E中的三个做一次非线性函数运算然后进行与MD5中类似的移位运算和加运算。单个分组的处理过程消息块Yq填充字节之后每个512分成16个子分组Mi,每一轮的Mi都不相同,由公式得出80个子分组包含4作,每一轮由20次迭代操作组成,上一轮的输出作为下一轮的输入。消息块第q次输出第q+1次输出MiMiMiMiabcde四个常量原消息长度只有16个序列,要通过相应的算法生成80个序列,每轮循环用20个单元运算次数tft的运算操作SHA-1算法中的非线性函数定义为:函数、、、的线的比较抗穷举搜索攻击的强度:

  SHA-1强速度:MD5运算速度快简洁与紧致性:都较为简单小数在前结构与大数在前结构:MD5使用小数在前方案来解释32bit字序列的报文,而SHA-1则使用大数在前。2024/5/182004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然。令世界顶尖密码学家想象不到的是,破解MD5之后,2005年2月,王小云教授又破解了另一国际密码SHA-1。HASH函数基本用法之一MH(M)MHashEKM’H(M)M’DKHash比较MCEk[M,H(M)]算法符号描述A→B:Ek[M‖H(M)]B:Dk[Ek[M‖H(M)]]=[M’‖H(M)];H(M’),判断:H(M’)是否等于H(M)。服务功能提供鉴别——使用信息摘要H(M)与H(M’)的比较完成信息完整性鉴别提供加密——使用对称加密密钥K加密原始信息和信息摘要过程描述H(M’)HASH函数基本用法之二MMHashEKM’DKHash比较MEkH(M)M’EkH(M)算法符号描述:A:M‖Ek[H(M)]→BB:Dk[Ek[H(M)]]=H(M);H(M’),判断:H(M’)是否等于H(M)?服务功能提供加密服务——对H(M)使用加密保护提供鉴别服务——使用信息摘要H(M)与H(M’)的比较完成信息完整性鉴别过程描述H(M)H(M)H(M’)HASH函数基本用法之三算法符号描述:A:H(M)→B(预先发送或存储信息摘要)A:H(M’)→B(临时提供的信息摘要)B:判断:H(M’)是否等于H(M)?服务功能提供身份鉴别——使用信息摘要H(M)与H(M’)的比较,判断发送方是否掌握原始信息以鉴别其身份的真实性。过程描述MH(M)HashHash比较H(M)H(M’)H(M’)M’HASH函数基本用法之四MMHashEKSaM’DKPaHash比较MEkH(M)M’EkH(M)H(M)H(M)算法符号描述A:[M‖EkSa[H(M)]]→BB:DkPa[EkSa[H(M)]]=H(M);H(M’),判断:H(M’)是否等于H(M)?服务功能提供签名服务——A用自己的私钥KSa加密H(M)完成对M的数字签名,B用A的公钥KPa验证该数字签名提供鉴别服务——通过信息摘要H(M)与H(M’)的比较,完成被签名信息的完整性鉴别过程描述H(M’)HASH函数基本用法之五算法符号描述:A:EKPb[M‖EKSa[H(M)]]→BB:DKSb[EKPb[M‖EKSa[H(M)]]]=[M’‖EKSa[H(M)]];DKPa[EKSa[H(M)]]=H(M);H(M’),判断:H(M’)是否等于H(M)?服务功能提供鉴别——比较H(M)数字签名——A用自己的私钥加密H(M),B用A的公钥验证签名提供加密——A用B的公钥对信息和签名一起加密过程描述MMHashEKSaM’DKPaHash比较MEkH(M)M’EkH(M)H(M)H(M)EKPbDKSbCEkPb[M,EKSa[H(M)]]H(M’)

  *4.6消息认证码(MAC)消息鉴别是用来鉴别接收方收到的消息的真实性和完整性鉴别消息的顺序和时间性消息认证码:秘密密钥k簇函数Hk性质容易计算压缩强抗碰撞性发送端接收端消息x摘要密钥k做MAC运算摘要消息x摘要消息x提取密钥k摘要MAC运算摘要对比摘要相同—是原信息x摘要不同—原信息被改发送提取构造MAC的常用方法是把密钥作为输入消息的一部分,从而在一个不带密钥的Hash函数中介入一个密钥。构造消息认证码不能够简单地将密钥参数和消息x进行拼接,然后直接计算相应的Hash函数值来处理。基于DES的消息认证码——数据认证算法MAC函数类似于加密。一个区别是MAC函数无需是可逆的,而对解密则必须是可逆的。以MAC作为数据认证算法最为广泛的用法是基于DES的,该算法已作为FIPSPublication(FIPSPUB113)并被ANSI作为X9.17标准。算法基于CBC模式的DES算法,其初始向量取为零向量。需被认证的数据(消息、记录、文件或程序)被分为64比特长的分组,其中最后一个分组若不够64比特的线,然后按以下过程计算数据认证码利用CBC模式下DES的认证码

  数据认证码取为ON或者取为ON的最左M个比特,其中16≤M≤64。HMAC近年来,人们越来越感兴趣于利用密码Hash函数来设计MAC,因为:(l)一般象MD5和SHA-1这样的Hash函数,其软件执行速度比诸如DES和AES这样的分组密码算法要快。(2)可利用密码Hash函数代码库。(3)美国或其他国家对密码Hash函数没有出口限制,而对即使是用于MAC的对称分组密码都有出口限制。Hash函数不依赖于密钥,所以不能将其直接用于MAC。目前已经提出了许多将密钥加到Hash函数中的方案,包括UMAC和HMAC等。其中,HMAC是目前最受欢迎的方案,它被选为IP安全解决方案中实现MAC必须使用的方法,并且其它功Iternet协议,如安全套接协议ssl中也使用了HMAC。HMAC是由H.Krawczyk,M.Bellare,R.Canetti于1996年提出的一种基于Hash函数和密钥进行消息认证的方法。HMAC所能提供的消息认证包括两方面的内容:(l)消息完整性认证:能够证明消息内容在传送过程中没有被修改。(2)信源身份认证:因为通信双方共享了认证的密钥,接收方能够认证发送该数据的信源与所宣称的一致,即能够可靠的确认接收的消息与发送的一致。RFC2104给出的HMAC算法的设计目标如下:(l)不必修改而直接使用现有Hash函数。特别地,很容易免费得到软件上执行速度较快的Hash函数及其代码;(2)如果找到或者需要更快或更安全的Hash函数,应能很容易地替代原来嵌入的Hash函数;(3)应保持Hash函数原有的性能,不能过分降低其性能;(4)对密钥的使用和处理应较简单;(5)如果已知嵌入的Hash函数的强度,则完全可以知道认证机制抗密码分析的强度。设H是HMAC算法嵌入的Hash函数。M是HMAC作用的消息,将M分组,每个分组的长度为b。K是密钥,其长度小于或等于b,设K+是把长度小于b的K左边填充0之后长度为b比特长的结果。ipad=00110110(16进制数36)重复b/8次的结果,opad=01011100(16进制数5C)重复b/8次的结果。HMAC算法描述如下:(l)在密钥K后面添加0来创建一个字长为b的字符串。(2)将上一步生成的b字长的字符串与iPad做异或运算。(3)将消息M的数据流填充至第二步的结果字符串中。(4)用H作用于第三步生成的数据流。(5)将第一步生成的b字长字符串与opad做异或运算。(6)再将第四步的结果填充进第五步的结果中。(7)用H作用于第六步生成的数据流,输出最终结果。HMAC可表示如下:注意和ipad异或的结果是使K中一半的比特值反转。同样的opad异或的结果也是使K中一半的比特值反转,不同的是反转的比特不同。从效果上看,Si和So通过散列函数中的压缩函数将从K产生两个伪随机密钥。对于长报文,HMAC的执行时间近似于嵌入散列函数的时间。更为高效的实现如下图所示:HMAC高效的实现方式

  HMAC算法的构造考虑到了Hash函数的缺陷,而且比一般的Hash函数更安全,这是因为在密钥的作用下,函数的值域大大增加了,因此也大大增强了攻击的难度。HMAC算法的密钥可以是任意长度,当密钥长度比Hash函数的分组长度更长时,要对密钥进行Hash运算,用它的摘要作为HMAC使用的密钥。但是,当密钥长度小于Hash函数输出Hash值的长度时,将降低HMAC算法的安全性,因此推荐的密钥最小长度是嵌入Hash函数输出Hash值的长度。长度大于Hash函数输出Hash值长度的密钥是可以接受的,但是额外的长度并不能显著的提高HMAC算法的安全性。另外,密钥必须随机选取(或使用强壮的基于随机种子的伪随机生成方法),并且要周期性的更新。周期性地更新密钥是对付函数和密钥所存在的潜在缺陷的基本安全措施,可以降低泄漏密钥带来的危害。完

  1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。

  2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。

  3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。

  5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。

  7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

  安徽省芜湖市鸠江区2024-2025学年高三上学期第二次月考思想政治试卷及答案

  新教材北师大版高中数学选择性必修第一册全册各章节知识点考点重点难点解题规律归纳总结

  安徽省合肥市一中、六中、八中2024届数学高一上期末学业质量监测模拟试题含解析

地址:哈希游戏平台永久网址【363050.com】  电话:020-66889888 手机:13988889999
Copyright © 2012-2025 哈希游戏平台 版权所有 非商用版本 ICP备案编: