哈希娱乐 行业新闻 党建先锋

新编密码学 课件 第6章 Hash函哈希游戏平台数pptx

发布时间:2025-12-30 15:05:26  浏览:

  哈希游戏作为一种新兴的区块链应用,它巧妙地结合了加密技术与娱乐,为玩家提供了全新的体验。万达哈希平台凭借其独特的彩票玩法和创新的哈希算法,公平公正-方便快捷!万达哈希,哈希游戏平台,哈希娱乐,哈希游戏

新编密码学 课件 第6章 Hash函哈希游戏平台数pptx

  6.4SM3算法;6.1Hash函数的基本概念;数据的完整性是指数据从发送方产生,经过传输或存储以后,没有被以未授权的方式修改的性质。密码学中的Hash函数在现代密码学中扮演着重要的角色,该函数虽然与计算机应用领域中的Hash函数有关,但两者之间存在着重要的差别。

  计算机应用领域中的Hash函数(也称散列函数)是一个将任意长度的消息序列映射为较短的、固定长度的值的函数。密码学上的Hash函数能够保障数据的完整性,它通常被用来构造数据的“指纹”(即函数值),当被检验的数据发生改变时,对应的“指纹”信息也发生变化。这样,即使数据被存储在不安全的地方,我们也可以通过数据的“指纹”信息来检测数据的完整性。

  设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函数是安全的。

  用X表示所有消息的集合(有限集或无限集),Y表示所有消息摘要构成的有限集合。

  如果对于给定的消息摘要y,原像问题能够解决,则(x,y)是有效的。不能有效解决原像问题的Hash函数称为单向的或原像稳固的。

  (2)第二原像问题(SecondPreimageProblem):设H:X→Y是一个Hash函数,x∈X,是否能够找到x∈X,使得x≠x,且H(x)=H(x)。;如果第二原像问题能够解决,则(x,H(x))是有效的二元组。不能有效解决第二原像问题的Hash函数称为第二原像稳固的。

  对于碰撞问题的有效解决并不能直接产生有效的二元组,但是,如果(x,y)是有效的二元组,且x,x是碰撞问题的解,则(x,y)也是一个有效的二元组。不能有效解决碰撞问题的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函数族包括以下构成要素:

  Hash函数的目的是为文件、报文或其他分组数据提供完整性检验,要实现这个目的,设计的Hash函数H必须具备以下条件:

  (4)对任意给定的消息摘要y,寻找x使得y=H(x)在计算上是不可行的。

  (5)对任意给定的消息x,寻找x,x≠x,使得H(x)=H(x)在计算上是不可行的。

  (6)寻找任意的(x,x),使得H(x)=H(x)在计算上是不可行的。;以上6个条件中,前3个条件是Hash函数能够用于消息认证的基本要求,第4个条件是指Hash函数具有单向性,第5个条件用于消息摘要被加密时防止攻击者的伪造(即能够抵抗弱碰撞),第6个条件用于防止生日攻击(即能够抵抗强碰撞)。

  条件(4)(5)和(6)意味着Hash函数具有3个一般特性:抗原像特性、抗第二原像特性、碰撞特性。

  Hash函数的目的是确定消息是否被修改。因此,对Hash函数攻击的目标是生成这样的修改后消息:其Hash函数值与原始消息的Hash函数值相等。例如,如果Oscar找到了一对消息M1和M2,使得H(M1)=H(M2),而消息M1是Alice发送的,那么Oscar就可以用M2来替换M1,从而达到攻击的目的。

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

  基于生日问题的生日攻击意味着,要保证消息摘要对碰撞问题是安全的,则安全消息摘要的长度就有一个下界。如果消息摘要的长度为m位,则总的消息数为2m,因此需要检查大约个消息,使得两条消息具有相同Hash函数值的概率大于50%。例如,长度为40位的消息摘要是非常不安全的,因为仅仅在220(大约为一百万)个随机Hash函数值中就有50%的概率发现一个碰撞。

  举例来说,如果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个步骤:

  (1)预处理:输入一个消息x,其中x≥m+t+1,基于x构造相应的位串y(y≡0modt)的过程如下:

  (2)迭代压缩:设z0是一个公开的初始位串,z0=m。具体的迭代过程如下:

  在上述预处理过程中常采用以下方式实现:;其中,pad(x)是填充函数,一个典型的填充函数是在消息x后填入x的值,并填充一些额外的位,使得所得到的位串y是t的整数倍。在预处理阶段,必须保证映射xy是单射(如果映射xy是一一对应的,就可能找到x≠x使得y=y,则有H(x)=H(x),从而设计的H将不是碰撞稳固的),同时保证x‖pad(x)是t的整数倍。

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

  要。MD5的算法框图如图6-2所示。;对于给定长度的消息x,MD5算法的具体过程需要如下3个步骤:

  (1)在消息x末尾添加一些额外位来填充消息,使其长度恰好比512的整数倍小64。

  (2)在其后附上用64位表示的消息长度信息,得到的结果序列长度恰好是512的整数倍。

  (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所示。;单步基本操作定义为:

  上述过程涉及4个非线性函数FF,GG,HH,II,子分组Mj,常数tj,循环左移数s,这里分别对它们进行解释:

  (1)4个非线性函数FF,GG,HH,II接受3个32位字作为输入,并按照位逻辑运算产生32位输出。FF,GG,HH,II分别定义为

  FF,GG,HH,II的函数线个子分组,每个子分组32位,共有16个组,Mj表示第j个组。Mj的使用过程为:在第1轮16个组中Mj正好被用上一次;从第2轮到第4轮则依次通过下面的置换实现:

  第1作(共包含16次操作):;第2作(共包含16次操作):第3作(共包含16次操作):;第4作(共包含16次操作):

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

  目前,MD5算法被广泛应用于各种领域,从密码分析的角度看,MD5仍然被认为是一种易受到攻击的算法,而且近年来对MD5攻击的相关研究已取得了很大的进展。2004年,我国学者王小云给出了一种解决MD5碰撞问题的算法。因此,有必要用一个具有更长消息摘要和更能抵御已知密码分析攻击的Hash函数来代替目前被广泛使用的MD5算法。下面介绍的安全Hash算法,即SHA-1算法。;6.《汉语大字典》

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

  全书共8卷,按部首编排,共200个部首,同部首的按汉字笔画从少到多排列。每分卷都附有检字表,第8卷为“附录和索引”,列有“笔画检字表”,从该表能快速查到字典所收的任何一个汉字所在的卷、页。;6.3.2SHA-1算法的描述

  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位。这些改进算法不仅

  6-6所示。;SHA-1算法输入消息的最大长度不超过264,输入的消息按照512位的分组进行处理。算法的具体操作如下:

  (1)填充过程。设输入的消息序列为x,x表示消息序列的长度。由于SHA-1算法要求输入消息的最大长度不超过264位,所以x≤264-1。用和MD5类似的方式填充消息,填充过程对输入的消息序列进行填充使得消息长度与448模512同余(即xmod512=448),填充的位数范围是1~512,填充位串的最高位为1,其余各位均为0。

  (2)在填充的结果序列后附加序列。用和MD5类似的方式附加消息的长度,将一个64位的序列附加到填充的结果序列后面,填充序列的值等于初始序列位串的长度值,从而得到长度是512位的分组序列。

  (3)对给定的5个32位的寄存器A,B,C,D,E赋初值,即;其中,0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f表示一个十六进制的数字或一个长度为4的二进制序列。这5个寄存器随后将用于保存Hash函数的中间结果和最终结果。

  (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中的一个。

  SHA-1的分组处理框图如图6-7所示,压缩函数中的单步迭代示意图如图6-8所示。;主循环包括:

  (2)输出H(x)=A‖B‖C‖D‖E,得到160位的消息摘要。;SHA-1算法中的非线性函数定义为

  设y=M0‖M1‖…‖M15,其中每一个消息分组Mi都是长度为32位的字。用以下方法将消息分组从16个32位的字变成80个32位的字:

  由于MD5与SHA-1都是由MD4演化来的,所以两个算法极为相似。下面给出MD5和SHA-1之间的比较分析。

  (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的速度慢。

  (3)简洁与紧致性:MD5与SHA-1描述起来都较为简单,实现起来也较为简单,均不需要较大的程序和代换表。;6.4SM3算法;6.4.1SM3算法的描述

  2012年,国家商用密码管理办公室发布了SM3密码杂凑算法,并将其作为密码行业标准(GM/T0004—2012)。2016年,国家标准化委员会公布了SM3密码杂凑算法为国家标准(GB/T32905—2016)。目前,SM3密码杂凑算法已经提交ISO国际标准化组织。SM3密码杂凑算法的消息分组长度为512位,输出摘要长度为256位。压缩函数的状态有256位,共64步操作。

  (1)SM3密码杂凑算法中用到的初始向量IV共256位,由8个32位的字串联组成,具体值为

  (2)SM3杂凑算法需要用到的常量定义如下:;(3)SM3杂凑算法使用的布尔函数定义为

  (5)对于长度为l位的消息m,SM3密码杂凑算法首先将位“1”添加到消息的末尾,然后再添加k个“0”位,其中k是满足l+k+1≡448mod512的最小非负整数,最后添加一个64位的位串,该位串是消息长度l的二进制表示。填充后的消息m的位长为512的倍数。;2.SM3密码杂凑算法的迭代过程

  其中,CF是SM3的压缩函数,初始值V(0)为256位的初始向量IV,B(i)为填充后的消息分组。迭代过程输出的结果为V(n)。

  SM3密码杂凑算法的核心是压缩函数CF。压缩函数由消息扩展过程和状态更新过程组成。具体描述如下:;1)消息扩展过程

  (2)循环64次迭代计算,其中j从0递增到63,每一轮迭代执行以下操作:;(3)赋值

  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密码杂凑算法的高安全性。

  信号与系统(第五版)课件第2章 连续时间信号和系统的时域分析.pptx

  信号与系统(第五版)课件第3章 连续时间信号和系统的频域表示与分析.pptx

  信号与系统(第五版)课件第4章 连续时间信号和系统的复频域表示与分析.pptx

  大作业:如何理解“作风建设永远在路上,永远没有休止符”?我们应如何加强作风建设?.pdf

  [非密] 【终审】Q_CNNC GB 43-2022 高风险作业指南.pdf

  现代路灯照明节能技术及设备现状-现代(路灯)照明节能技术及设备.doc

  铁道车辆机械装置检修 客车SW系列转向架 SW-160型转向架.pptx

  原创力文档创建于2008年,本站为文档C2C交易模式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有。原创力文档是网络服务平台方,若您的权利被侵害,请发链接和相关诉求至 电线) ,上传者