联系hashgameCONTACT hashgame
地址:广东省广州市
手机:13988889999
电话:020-88889999
邮箱:admin@qq.com
查看更多
Rhashgamehashgame
你的位置: 首页 > hashgame

新编密码学 课件 第6HASH GAME - Online Skill Game ET 300章 Hash函数pptx

发布时间:2025-11-15 22:47:35  点击量:

  HASH GAME - Online Skill Game GET 300

新编密码学 课件 第6HASH GAME - Online Skill Game GET 300章 Hash函数pptx

  设H是一个Hash函数,x是消息,不妨假设x是任意长度的二元序列,相应的“指纹”定义为y=H(x),Hash函数值通常也称为消息摘要(MessageDigest)。一般要求消息摘要是固定长度的二元序列。;如果消息x被修改为x,则可以通过计算消息摘要y=H(x),并且验证y=y是否成立来确认数据x是否被修改。如果y≠y,则说明消息x被修改,从而达到检验消息完整性的目的。对于Hash函数的安全要求,通常用下面3个问题进行判断。如果一个Hash函数对这3个问题都是难解的,则认为该Hash函数是安全的。

  实际应用中的Hash函数可分为简单的Hash函数和带密钥的Hash函数。一个带密钥的Hash函数通常作为消息认证码。假定Alice和Bob有一个共享的密钥k,通过该密钥可以产生一个Hash函数Hk。对于消息x,Alice和Bob都能够计算出相应的消息摘要y=Hk(x)。Alice通过公共通信信道将二元组(x,y)发送给Bob,Bob接收到(x,y)后,通过检验y=Hk(x)是否成立来确定消息x的完整性。如果y=Hk(x)成立,说明消息x和消息摘要y都没有被篡改。;一个带密钥的Hash函数族包括以下构成要素:

  Oscar的问题是如何找到具有相同Hash函数值,并使Alice接受其中一条而反对另外一条的两条消息。这可以采取穷举搜索的方式。Oscar可以构造一组可接受的消息和一组不可接受的消息,之后计算每个消息的Hash函数值,寻找具有相同Hash函数值的消息对。;这种类型攻击法的可行性基于生日问题的解决。生日攻击的思想来源于概率论中一个著名的问题———生日问题。该问题是:一个班级中至少要有多少个学生,才使得两个学生生日相同的概率大于1/2,其答案是23,即只要班级中的学生人数大于23,则班上有两个人生日相同的概率大于1/2。

  举例来说,如果Alice使用了一个生成16位Hash函数值的Hash函数,那么Oscar所需要做的工作是构造Alice可以接受的28=256条消息和构造Alice不能接受的另外256条消息。存在50∶50的机会,使得这些消息中有两条消息生成相同的Hash函数值。这可以通过生成8个字不同的类似消息来达到目的。;6.2迭代的Hash函数;本节讨论一种可以将有限定义域上的Hash函数延拓到具有无限定义域上的Hash函数的方法———迭代Hash函数。1979年,Merkle基于数据压缩函数compress建议了一个Hash函数的通用模式。压缩函数compress接受两个输入:m位长度的压缩值和t位的数据值y,并生成一个m位的输出。Merkle建议的内容是:数据值由消息分组组成,对所有数据分组进行迭代处理。

  在本节中,我们假设Hash函数的输入和输出都是位串。我们把位串的长度记为x,把位串x和y的串联记为x‖y。下面给出一种构造无限定义域上Hash函数H的方式,该方式将一个已知的压缩函数compress:{0,1}m+1→{0,1}m(m≥1,t≥1)扩展为具有无限长度输入的Hash函数H。通过这种方法构造的Hash函数称为迭代Hash函数。其系统结构如图6-1所示。;基于压缩函数compress构造迭代Hash函数包括以下3个步骤:

  基于压缩函数compress构造迭代Hash函数的核心技术是设计一种无碰撞的压缩函数compress,而攻击者对算法的攻击重点也是compress的内部结构。由于迭代Hash函数和分组密码一样,是由压缩函数compress对消息x进行若干轮压缩处理过程组成的,所以对compress的攻击须分析各轮之间的位模式,分析过程常常需要先找到compress的碰撞。由于compress是压缩函数,其碰撞是不可避免的,因此在设计compress时就应保证找出其碰撞在计算上是不可行的。;6.3MD5算法与SHA-1算法;6.3.1MD5算法的描述

  (3)将初始输入AB=89abcdef,C=fedcba98,D在4个32位寄存器A,B,C,D里(其中0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f表示一个十六进制的数字或一个长度为4的二进制序列),MD5对每个512位的分组进行4轮处理。在完成所有4轮处理后,A,B,C,D的初值加到A,B,C,D的新值上,生成相应的消息分组的输出。这个输出用作处理下一个消息分组的输入,待最后一个消息分组处理完后,寄存器A,B,C,D中保存的128位内容就是所处理消息的Hash函数值。

  (1)填充是绝大多数Hash函数的通用特性,正确的填充能够增加算法的安全性。对MD5中的消息进行填充,使其长度等于448mod512,填充是由一个1后跟足够个数的0组成的,以达到所要求的长度。这里应强调的是,即使原消息的长度达到了所要求的长度,也要进行填充因此,填充的位数大于等于1而小于等于512。;(2)附加消息的长度,用上一步留出的64位来表示消息被填充前的长度。例如,原始消息的长度为704位,其二进制值为1011000000,将这个二进制值写为64位(在开始位置添加54个0),并把它添加到消息的末尾,其结果是一个具有960+64=1024位的消息。

  (3)MD5的初始输出放在4个32位寄存器A,B,C,D中,这些寄存器随后将用于保存Hash函数的中间结果和最终结果。将4个寄存器的值赋给相应的变量AA,BB,CC,DD。然后对512位的消息分组序列应用主循环,循环的次数是消息中按512位分组的分组数。每一次的主循环都有4作,而且这4作都很相似。每一轮进行16次操作,每次操作对AA,BB,CC,DD中的3个作一次非线性的函数g运算,g是基本逻辑函数FF,GG,HH,II之一。然后将得到的结果加上第4个变量,再加上消息的一个子分组Mj和一个常数tj(0≤j≤15),再将所得结果循环左移一个不定的数s,并加上AA,BB,CC,DD中的一个。最后用得到的结果取代AA,BB,CC,DD中的一个。;MD5的分组处理框图如图6-3所示,压缩函数中的单步迭代示意图如图6-4所示。;单步基本操作定义为:

  《汉语大字典》(徐中舒主编,四川辞书出版社、湖北辞书出版社1986~1990年联合出版)共收录单字约56000个,是目前为止收录汉字最多、单字释义最全的字典。所有古今文献中出现过的汉字,几乎都可以在该书中查到。该书对每个汉字的音、形、义都作了历史的、全面的反映。书中系统整理了古今楷书汉字,并收列能反映形体演变关系的甲骨文、金文、篆书和隶书形体。除用汉语拼音字母注明字的现代读音外,书中还收列了中古的反切,标注了上古的韵部。该书义项完备,书证丰富,详释字的本义、派生义、通假义,释义比较准确。

  SHA-1(SecurityHashAlgorithm,安全Hash算法)是一个产生160位消息摘要的迭代Hash函数,该算法由美国国家标准和技术协会提出,于1993年公布并作为联邦信息处理标准。SHA-1的设计基于MD4算法,并且它在设计方面也很大程度上模仿MD4算法。2002年,NIST在SHA-1的基础上,进一步推出了SHA-256、SHA-394、SHA-512三个版本的安全Hash算法,它们的消息摘要长度分别为256位、394位和512位。这些改进算法不仅

  (4)将寄存器的值赋给相应的变量AA,BB,CC,DD,EE。然后对512位的消息分组序列应用主循环,循环的次数是消息中按512位进行分组的分组数。每一次的主循环都有4作,并且这4作都很相似。每一轮进行20次操作,每次操作对AA,BB,CC,DD,EE中的3个作一次非线性的函数Ft运算,Ft是基本逻辑函数F1,F2,F3,F4之一。然后进行与MD5算法类似的移位运算(一个5位的循环移位和一个30位的循环移位)和加运算。最后用得到的结果取代AA,BB,CC,DD中的一个。

  (1)抗穷举搜索攻击的强度:MD5与SHA-1的消息摘要长度分别为128位和160位,由于SHA-1生成的消息摘要长度比MD5算法生成的消息摘要长度要长32位,所以用穷举搜索攻击寻找具有给定消息摘要的消息分别需要做O(2128)和O(2160)次运算,而穷举搜索攻击找到具有相同消息摘要的两个不同消息分别需要做O(264)和O(280)次运算,因此SHA-1抗击穷举搜索攻击的强度高于MD5抗击穷举搜???攻击的强度。一般认为,SHA-1是抗密码分析的,而MD5算法可能是易于受到攻击的。;(2)速度:由于MD5与SHA-1的主要运算都是模232加法,因此都易在32位结构上实现。但比较起来,SHA-1的迭代步数(80步)多于MD5的迭代步数(64步),所用的缓冲区(160位)大于MD5使用的缓冲区(128位),因此在相同硬件上实现时,SHA-1的速度要比MD5的速度慢。

  SM3密码杂凑算法的压缩函数整体结构与SHA-256相似,但是增加了多种新的设计技术。这些新的设计技术包括16步全异或操作、消息双字介入、增加快速雪崩效应的P置换等。SM3增加这些新技术后,能够有效避免高概率的局部碰撞,有效抵抗强碰撞性的差分分析、弱碰撞性的线性分析、位追踪法等密码分析。SM3密码杂凑算法合理使用字加运算,构成进位加4级流水,在不显著增加硬件开销的情况下采用P置换,加速了算法的雪崩效应,提高了运算效率。同时SM3密码杂凑算法采用了适合32位微处理器和8位智能卡实现的基本运算,具有跨平台实现的高效性和广泛的适用性。;2.SM3密码杂凑算法的性能分析

  在IntelCorei7处理器、64位Win7系统下对SM3和SHA-256、SHA-512、SHA-3的性能进行对比,结果表明,在消息长度较小(16字节)时,SM3密码杂凑算法的软件执行速度高于其他3种算法,速度为SHA-256的125%;当消息长度较长(64字节)时,SM3密码杂凑算法的软件执行速度与SHA-256相当。在ASIC芯片上,SM3的实现面积要优于SHA-256、SHA-512和SHA-3,吞吐量面积整体也比较有优势;在FPGA上实现的性能与此类似。总体而言,SM3的实现效率不低于SHA-2和SHA-3算法,且在不同的场合有着不同的性能优势。;3.SM3密码杂凑算法的安全性分析

  目前,已经公开发表的针对SM3密码杂凑算法的安全性分析的论文集中在碰撞攻击、原像攻击和区分攻击3个方面。与其他各种杂凑算法相比,SM3具有较好的安全性:在碰撞攻击方面,SM3密码杂凑算法的攻击百分比仅比KECCAK算法高,比其他各种杂凑标准算法都低,特别是与MD系列和SHA系列相比,SM3只有31%;在原像攻击方面,SM3密码杂凑算法的攻击百分比在MD-SHA系列中最低,占总步数的47%;在区分器攻击方面,SM3均比其他杂凑算法低。这些分析结果体现了SM3密码杂凑算法的高安全性。

【返回列表页】

顶部

地址:广东省广州市  电话:020-88889999 手机:13988889999
Copyright © 2018-2025 哈希游戏(hash game)官方网站 版权所有 非商用版本 ICP备案编: