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

哈希游戏平台密码学课件:第十三讲 HASH函数

发布时间:2025-12-06 18:06:57  浏览:

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

哈希游戏平台密码学课件:第十三讲 HASH函数

  第四讲四讲高级级数据加密标准,据加密标准(AESES)第五讲五讲中国商用密码,国商用密码(SMS4MS4)第六讲六讲分组密码的应用技术组密码的应用技术

  ,具有极强的错误检测能力有极强的错误检测能力:输入有很小的不同,输出入有很小的不同,输出将有很大的不同,有很大的不同,

  ,用Hashash码作消息认证码,作消息认证码(MACAC),,可用于用于认证。证。,用Hashash码可以辅助数字签名。可以辅助数字签名。

  ①Hashash函数将任意长的数据数将任意长的数据M变换为定长的码换为定长的码h,记为为,h=Hash(Hash(M)或h=H(H(M)。

  ,一般,般,h的长度小于长度小于M的长度,长度,因此此HASHASH函数是一种压缩变换数是一种压缩变换。

  ②实用性,对于给定的数据用性,对于给定的数据M,计算算h=Hash(Hash(M)是高效的。效的。③安全性全性,

  ,单向性,向性,对给定的给定的Hashash值h,找到满足到满足H((x),h的x在计算上计算上是不可行的。不可行的。

  设h码为为n位长,且长,且Hashash函数的输出值是等概分布的,那数的输出值是等概分布的,那么任意输入数据任意输入数据x产生的生的H(x(x)恰好为好为h的概率是概率是1/2/2n。因此穷因此穷举攻击对于单向性求解的时间复杂度为攻击对于单向性求解的时间复杂度为O(2n)。。

  ,抗弱碰撞性,弱碰撞性,对任何给定的任何给定的x,找到满足到满足y≠x且H((x)=H(=H(y)的y在计算上是不可行的。计算上是不可行的。

  ,否则,攻击者可以截获报文则,攻击者可以截获报文M及其其H((M),并找出另一报文出另一报文M′使得得H((M′)=H(=H(M)。这样攻击者可用样攻击者可用M′去冒充充M,而收方不能发现。收方不能发现。

  ,从穷举分析的角度求解弱碰撞问题的难度等价于求解单向性的难度,穷举分析的角度求解弱碰撞问题的难度等价于求解单向性的难度,时间复杂度为间复杂度为O(2n)。。

  ,抗强碰撞性,强碰撞性,找到任何满足到任何满足H((x)=H(=H(y)的偶对偶对(x,y)在计算上是计算上是可行的。可行的。,平均需要尝试超过均需要尝试超过2n/2/2个数据就能产生一个碰撞,复杂度数据就能产生一个碰撞,复杂度O(2(2n/2/2)。

  •Merkleerkle提出了用出了用Hashash函数处理数据数处理数据M,的一般模的一般模型。。

  ,填充,充,若第第L-1个分组不足分组不足b位,则将其填充为,则将其填充为b位。。,附加,加,再附加上一个输入的总长度。附加上一个输入的总长度。

  ,由于输入中包含长度,所以攻击者必须找出具有相于输入中包含长度,所以攻击者必须找出具有相同Hashash值且长度相等的两条报文,或者找出两条长且长度相等的两条报文,或者找出两条长度不等但加入报文长度后不等但加入报文长度后Hashash值相同的报文,从而相同的报文,从而增加了攻击的难度。加了攻击的难度。

  ,目前大多数前大多数Hashash函数均采用这种数据处理模型。数均采用这种数据处理模型。

  ,SHAHA系列列Hashash函数数是由美国标准与技术研究所由美国标准与技术研究所(NIST)NIST)设计计的。。

  ,SHAHA-1是在在MD5D5的基础上发展起来的。它采用基础上发展起来的。它采用Merkleerkle提出了安全出了安全Hashash模型。已被美国政府和许多型。已被美国政府和许多国际组织采纳作为标准。际组织采纳作为标准。

  ,SHAHA-1的输入为长度小于输入为长度小于2644位的报文,输出为的报文,输出为16060位的报文摘要,该算法对输入按的报文摘要,该算法对输入按51212位进行分组,进行分组,并以分组为单位进行链接压缩处理分组为单位进行链接压缩处理。

  ①填充方法是在报文后附加一个充方法是在报文后附加一个1和若干个若干个0。

  ②然后附上表示填充前报文长度的然后附上表示填充前报文长度的644位数据数据(最高有效位在前高有效位在前)。,若报文本身已经满足上述长度要求,仍然需要进行填充,例报文本身已经满足上述长度要求,仍然需要进行填充,例如,若报文长度为,若报文长度为44848位,则仍需要填充,则仍需要填充51212位使其长度为使其长度为96060位, , 因此填充位数在, , 因此填充位数在1到51212之间。间。

  ,经过填充和附加后,数据的长度为过填充和附加后,数据的长度为51212位的整数倍。的整数倍。

  ,缓冲区由冲区由5个322位的寄存器的寄存器(AA( B) C( D) E))组成,用于保成,用于保存16060位的中间结果和最终结果。的中间结果和最终结果。

  ,每次处理一个次处理一个51212位的分组,链接迭代处理所有的分组,链接迭代处理所有L个分组数。组数。

  ,它由四层运算,每层迭代由四层运算,每层迭代200步,组成, 四层的运算结构相,组成, 四层的运算结构相同。。

  ,每轮的输入是当前要处理的轮的输入是当前要处理的51212位的分组的分组BLKLK和16060位缓冲区缓冲区ABCDEBCDE的内容,每轮都对内容,每轮都对ABCDEBCDE的内容更新,而且每轮使内容更新,而且每轮使用的逻辑函数不同,分别为的逻辑函数不同,分别为f1(ff2)ff3和f4。

  ,第四轮的输出与第一轮的输入相加得到压缩函数的输出。四轮的输出与第一轮的输入相加得到压缩函数的输出。

  ,所有的有的L个51212位的分组处理完后,第的分组处理完后,第L个分组的输分组的输出即是即是16060位的报文摘要。的报文摘要。

  ,每轮对轮对A(B)C(D)E(B)C(D)E进行行200次迭代, 四轮共迭代, 四轮共800次迭代。迭代。t为迭代次数编号,所以迭代次数编号,所以0≤t≤799 。

  ,Kt表示加法常量,共使用示加法常量,共使用4个不同的加法常量不同的加法常量

  每轮使用一个逻辑函数,其输入均为轮使用一个逻辑函数,其输入均为B(C)D((C)D(每个个322位),输出为一个输出为一个322位的字。定义分别为,的字。定义分别为,

  ,缺点,压缩字点,压缩字Kt的作用范围太小,只影响输出作用范围太小,只影响输出A,不影响影响B、 C、 D、 E。

  每步迭代使用从步迭代使用从51212位的报文分组的报文分组BLKLK导出的一个出的一个322位的字字Wt 。 因共有共有800步迭代,所以共需要迭代,所以共需要800个322位字字Wt ,0≤t≤799, 。 。

  ,前166步迭代中迭代中Wt的值等于报文分组的第值等于报文分组的第t 个字,其余字,其余644步迭代中迭代中Wt等于前面四个于前面四个Wt值异或后循环左移一位的结果。异或后循环左移一位的结果。

  ,我国政府公布了自己的国政府公布了自己的HASHASH函数数SM3M3。

  2、安全性是指对输出长度为安全性是指对输出长度为n比特特hashash函数的生日攻击产生碰撞的工作量大约为数的生日攻击产生碰撞的工作量大约为2n/2/2

  ,即使消息长度已满足上述要求,也要填充。使消息长度已满足上述要求,也要填充。

  ,填充后,再附加上表示原消息长度的充后,再附加上表示原消息长度的12828位。。注意,意,在①①、②步后,数据长度为②步后,数据长度为1024024的N倍。。

  ,将数据分成数据分成N块,每块,每块1024024位,进行迭代处理。,进行迭代处理。

  ,运算的中间结果和最终结果保存于算的中间结果和最终结果保存于51212比特的缓冲区中,缓特的缓冲区中,缓冲区用区用8个644比特特的寄存器寄存器(A(B)C(D)E(F)G(H)B(C)D(E)F(G)H)表示,并将这示,并将这些寄存器初始化为下列寄存器初始化为下列644比特的整数。特的整数。

  ,获得方式,前得方式,前8个素数取平方根,取小数部分的前素数取平方根,取小数部分的前644比特。特。,存储方式,最高有效字节存于低地址字节位置。储方式,最高有效字节存于低地址字节位置。

  ,处理每个理每个1024024比特数据块,都要经过特数据块,都要经过800轮迭代运算。迭代运算。

  ,每一轮都把一轮都把51212比特缓冲区的值特缓冲区的值ABCDEFGHBCDEFGH作为输入,并为输入,并更新缓冲区的值。第一轮时,缓冲区里的值是初始值新缓冲区的值。第一轮时,缓冲区里的值是初始值IVV。,每一轮,都使用一个一轮,都使用一个644比特的值特的值Wt,其中中0≤t≤799。

  ,每一轮还将使用附加的常数一轮还将使用附加的常数Kt,其中中0≤t≤799。

  ,存储方式,最高有效字节存于低地址字节位置。储方式,最高有效字节存于低地址字节位置。

  注意,意,前2个函数与函数与SHAHA-1的相同,后相同,后2个函数不同。函数不同。

  ,最小的小的800个素数开立方,取根的小数部分的前素数开立方,取根的小数部分的前644比特。特。,这些无理数的小数部分有很好的随机性。些无理数的小数部分有很好的随机性。

  ,从1024024位的块中导出,将其分成的块中导出,将其分成166个644位的的Xt 。