没有合适的资源?快使用搜索试试~ 我知道了~
Egyptian Informatics Journal(2012)13,199开罗大学埃及信息学杂志www.elsevier.com/locate/eijwww.sciencedirect.com原创文章一种基于NewFORK-256的Harshvardhan Tiwari*,Krishna Asawa计算机科学与工程系,JIT(被认为是大学),诺伊达,U.P.,印度接收日期:2012年6月8日;修订日期:2012年7月28日;接受日期:2012年2012年9月29日在线发布摘要加密散列函数是信息安全的基础构件,用于数字签名方案、MAC构造和随机数生成等众多安全应用和协议中,以确保数据完整性和安全性。数据源身份验证。研究人员已经注意到最广泛使用的MD和SHA系列哈希函数中存在严重的安全漏洞和漏洞。因此,来自具有较长摘要值的FONK家族的散列函数被认为是MD5和SHA-1的良好替代品,但最近针对这些散列函数的攻击突出了它们的弱点。本文基于NewFORK-256的设计原理,提出了一种专用的哈希函数MNF-256。它采用512位消息块并生成256位哈希值。一个随机序列作为额外的输入被添加到MNF-256的压缩函数中。三分支并行结构和安全压缩功能使MNF-256成为一种高效、快速、安全的散列函数。各种仿真结果表明,MNF-256对常见的密码分析攻击具有免疫性,并且比New-FOLK-256速度更快.©2012计算机和信息学院,开罗大学。由爱思唯尔公司制作和主持All rights reserved.1. 介绍确保隐私和防止消息的完整性是密码学的基本目标。密码散列函数仍然是最重要的密码原语之一,它可以用来保证许多密码算法的安全性*通讯作者。电子邮件地址:tiwari. gmail.com(H. Tiwari),krish-na. jiit.ac.in(K. Asawa)。开罗大学计算机和信息系负责同行审查。图形应用程序和协议,如数字签名、随机数生成、数据源身份验证、密钥更新和派生、消息身份验证代码、完整性保护、恶意代码识别、SSL、TLS和S/ MIME。加密散列函数将任意长度的输入散列函数分为两类:无密钥散列函数,也称为操纵检测代码(MDC),具有单个参数密钥散列函数用于构造MAC(消息认证码)。MAC被广泛用于提供数据完整性和数据源认证。MAC和MDC之间的选择取决于应用程序它们也被分类为,即基于1110-8665© 2012计算机和信息学院,开罗大学。制作和主办Elsevier B.V.保留所有权利。http://dx.doi.org/10.1016/j.eij.2012.08.003制作和主办:Elsevier关键词加密散列函数;数字签名; MD5;新福克-256200H.蒂瓦里角Asawa¨¨ð¼ kð ÞÞð Þ¼ð Þ分组密码、基于模块算法的散列函数和专用散列函数。基于分组密码的方案背后的动机是最小化设计和实现散列函数的努力以及设备的复杂性。此外,人们对某个块密码(如DES)的信任可以转移到散列函数。特别有趣的是,从理论的角度来看,基于模块算法的方案是可证明安全的,在这个意义上,它们的安全性依赖于一些数学问题,如数论问题的难度。专用散列函数是从零开始专门设计的,目的是以优化的性能散列纯文本,而不限于重用现有的系统组件,如分组密码和模运算。这些散列函数并不基于诸如因子分解和离散化之类的困难问题。设计专用散列函数的压缩函数的最流行方法是小步长函数的串行连续迭代[1,2]。我们提出的哈希函数属于最后一类。抗原像性、抗第二原像性和抗碰撞性是无密钥散列函数安全性的三个经典要求。特性原像阻力、第二原像阻力和碰撞阻力也分别称为单向、弱碰撞阻力和强碰撞阻力。首先,当给定H(X)时,找到H(X)的原像X必须这就是所谓的原像阻力。其次,当X和H(X)已知时,用H(Y)=H(X)找到YnX这种特性称为第二预成像电阻。最后,找到任何两个不同的消息X和Y,满足H(X)=H(Y),在计算上应该是不可行的。这被称为碰撞阻力。此外,散列函数通常需要与随机函数不可分割地表现。一个理想的散列函数,生成一个n位的散列值,需要评估大约2个n/2消息,以找到任何一对具有相同散列值的消息。这种对散列函数的强力搜索被称为生日攻击。此外,需要2n个哈希计算来找到原像和第二原像[3]。在本文中,我们提出了一个专用的散列函数MNF-256,它可以将任意长度的消息转换为256位的散列值。它是基于NewFORK-256[4]的设计原理。MNF-256的压缩功能由三个并行分支组成;每个分支将16个32位字压缩为8个32位字 输 出 。 每 个 分 支 包 含 八 步 操 作 。 FORK-256[5] 和NewFORK-256,这两个哈希函数都是基于Merkle-Damga方法[6]构建的。近年来,针对这些哈希函数的攻击层出不穷。该散列函数的压缩函数采用抖动设计。它的消息填充和拆分类似于Merkle-Dam- ga构造。通过向Merkle-Damga构 造 提 供 附 加 输 入 来 获 得 抖 动 构 造 。 这 个 设 计 是 由Rivest[7]给出的。该设计的迭代结构对生日攻击、中间相遇攻击和原像攻击等典型攻击具有较好的抵抗能力。MNF- 256的压缩功能有三个输入参数和一个输出参数。附加输入参数是抖动值。有许多方法可以选择抖动值。Park-Miller算法[8]产生的随机数对于消息中的每个消息块,是不同的抖动值序列。对于每个消息块,生成16个不同的32位抖动值,其中每个分支根据排序规则使用8个32位抖动 值 。 所 有 的 修 改 都 是 为 了 克 服 最 近 对 FORK-256 和NewFORK-256的攻击本文的其余部分组织如下:第二部分介绍了相关的工作。建议的哈希函数在第3节中给出。第四节是对MNF-256的安全性分析。MNF-256的性能分析见第5节。本文在第6节中结束2. 相关工作2.1. Merkle-Damg的一种构造及其缺陷构建哈希函数的一种典型方法是迭代地应用固定输入长度的压缩函数。几乎所有的现代散列函数都是基于这一原则,迭代构造的最广泛应用是Merkle-Damga的最佳范例。尽管该范式有着坚实的理论基础,但在设计中也暴露出一些缺陷,使MD结构成为一个不安全的模型。一些攻击表明,迭代范式是不等价的随机预言机模型中使用的许多密码协议的安全性证明。在MD方法中,任意长度的消息被分成l个比特块(在最后一个块上进行填充处理),其被顺序地注入到内部抗冲突压缩函数中。压缩函数使用输入块和先前的中间结果生成n位中间digest。最后一个中间摘要被定义为最后一个n位哈希值;在所有输入块被处理之后。长度扩展攻击:原始Merkle-Damga构造的众所周知的弱点是长度扩展属性。 如果消息M和M0的列表冲突,则添加一共同苏夫菲克斯也导致到一碰撞:H M M H M0M.即使我们将一个长度为M的原始消息连接起来,攻击也是有效的,因为M本身可以被认为是一个可扩展的消息。多重冲突:Joux提出了多重冲突攻击[9]。这个想法是一个接一个地建立冲突,这导致在冲突搜索的仅k次尝试之后产生2k个如果散列函数具有迭代结构,则可以始终保持攻击。然而,实际的复杂性取决于内部状态的大小。定点攻击:Dean[10]发现压缩函数中的定点可以用于针对长消息的第二原像攻击。Dean指出,对于迭代哈希函数,如果压缩函数的固定点可以很容易地计算,那么找到第二个前图像比预期的要容易。Davies-Meyer结构很好地满足了这种条件。Kelsey和Schneier[11]推广了这个结果。2.2. Dither构造及其抗一般攻击的安全性抖动散列函数背后的主要思想是使用一个额外的输入到Merkle-Damga散列结构中,●●●一种基于NewFORK-256的201表1基本的记号。符号描述A< $B A和B之间的按位异或A+ B(A+ B)mod 232AnB32位字AbyB位循环左移该输入将改变每个阶段的链接值的方式。这反过来又使得找到固定点的问题变得更加困难,并在任何情况下提供更多的保护以防止Dean的攻击及其扩展。对 于 消息M,被分成n个块,每个块的长度为l,即M=m1,m2,.. . ,m,n,抖动散列设计的第i个链接值可以形式上表示为:IV i=f(m i,IV i-1,di-1),i= 1,2,.. . n,并且di表示抖动值。该过程如图1所示。抖动值以这样的方式被选择,使得它是无重复的,这又使得散列函数的链接值是无重复的。因此,对于攻击者来说,找到固定点变得更加困难。因此,Dean通过检查抖动散列函数的结构,很明显,攻击者不需要额外的努力来发现多冲突,就像在正常的Merkle-Damga散列构造的情况下一样。这种构造对于一般的消息扩展攻击是安全的。2.3. 专用哈希函数MD4[12]是Rivest在1990年提出的。大多数常用的哈希函数都是基于MD4的设计原则。MD5[13]也是Rivest在1992年提出的,作为MD4的加强版。MD4和MD5都产生128位的消息摘要。MD5比MD4稍慢。SHA系列采用MD4的设计原理。SHA-0[14]由美国国家安全局于1993年开发,作为安全哈希标准,SHA-1[15]于1995年作为SHA-0的修订版推出。SHA-1由NIST发布为FIPS PUB 180-1。SHA-0和SHA-1都产生160位的消息摘要。NIST在2002年推出了新的哈希函数标准FIPSPUB 180-2三个新的哈希函数,SHA-256,SHA-384和SHA-512,统称为SHA-2[16],已经在这个标准中指定。后来,另一个散列函数SHA-224被添加到这个标准中。另一个流行的散列函数家族是RIPEMD家族。采用顺序方法和并行结构相结合的方法设计了RIPEMD哈希函数这种设计方法仍然是可靠的,因为到目前为止,没有有效的攻击,除了RIPEMD的初级版本。第一个RIPEMD哈希函数是在1992年在欧洲RIPE(RACE Integity PrimitivesEvaluation ) 项 目 下 引 入 的 。 它 产 生 128 位 哈 希 值 。RIPEMD并行运行两个几乎相同的MD4副本。后来发布了RIPEMD 的 两 个 加 强 版 本 , RIPEMD-128 和 RIPEMD-160[17]。RIPEMD-128还产生128位消息摘要作为其前身。两图1抖动构造。RIPEMD-128和RIPEMD-160被扩展到RIPEMD-160。256和RIPEMD-320。1998年,MD4被Dobbertin完全破解[18]。2004年,由Wang领导的一个研究小组宣布了MD5中的碰撞以及其他散列函数中的碰撞,包括MD 4,RI-PEMD和HAVAL-128[19]。2005年,他们提出了针对SHA-0和SHA-1的攻击[20]。FORK族散列函数可以看作是RIPEMD族散列函数的进一步扩展。FORK-256是FORK家族中的第一个哈希函数,在第一次NIST哈希研讨会和FSE 2006上介绍。Matusiewicz等人攻击了FORK-256,他们利用了这样一个事实,即函数f和g在步骤操作不是双射的他们使用微碰撞来发现2分支FOLK-256的碰撞和完整FOLK-256的碰撞,复杂度为2126.6[21]。独立地,Men- del等人。[22]发表了使用微碰撞对2分支FOLK-256的碰撞查找攻击在2007年的FSE上,Matusiewicz等人提出了另一种攻击,发现了复杂度为2108的冲突。FORK-256由Danda优化[23]。NewFORK-256哈希函数于2007年推出。它包括双射函数的阶跃运算。Saarinen提出了使用中间相遇技术对New- FORK-256进行碰撞攻击[24]。为此,他使用了一种方法来查找散列到可能散列值的显着较小子集的消息。这种碰撞攻击的复杂度为2112.9。这种攻击也适用于FORK-256。在2007年,NIST公开呼吁开发新的密码散列算法.比赛的目的是识别现代安全散列函数并定义新的SHA-3家族[25,26]。2.4. FORK系列哈希函数FORK-256在第一届NIST哈希研讨会和FSE 2006上被介绍。后来,在2007年,同一个研究小组发表了其改进版NewFORK-256.在这个新版本中,他们修改了步骤操作,删除了一些加法和XOR,并改变了FOLK-256的非线性操作。FORK-256和NewFORK-256的压缩功能由四个独立的分支组成。这些分支中的每一个都接受256位链接值和512位消息块以产生256位结果。这四个分支结果与链接值组合以产生最终压缩函数结果。这两种算法都完全建立在32位字的移位、XOR和加法运算上。这些操作的符号如表1所示。这四个分支在结构上是等效的,但是在消息字和轮常量的调度上有所不同。每个分支的计算分为八步,06k6 7。每个步骤使用两个消息字和两个循环常数。消息块字M0,. ,M15在每个分支中的值在表2中给出。四个分支中的每一个都使用202H.蒂瓦里角Asawa不r1(t)r28821139 10 11 12 13 14 159 10 11 12 13 14 1513 0 5 6 7 12 14 15 8 5 0 1 310 9 2 7 14 4 64567D8第十天第d9 d7 d6 d9 d8 d6 d7D11第五天第四天第十一天D10第四天第五天第十三天第三天第二天第十三天D12第二天第三天第十五d1d 0d 15ðÞðÞ表2信息排列。表4不断的排序。不01234567步骤-ka1、kb1,k a2,kb2,k a3,kb3,ka4,kb4,kr1(t)012345670d0D1D15D14D1d0D14D15r2(t)1415119810341D2D3d13D12D3D2D12d13r3(t)7610141329122D4D5D11D10D5D4D10D11r4(t)5121815013113D6D7D9D8D7D6D8D9对于NewFORK-256:同一组链接变量CV=(A,B,C,D,E,F,G,H)。压缩函数更新链接变量的集合Aj;k1 ¼Hj;k fEj;kþMrjð2kþ1Þ bj;k8;根据以下关系式计算:Bj;k= 1/4Aj;k=Mrj = 2 k =1/4 Aj ; k = 1/4 Mr j= 2k = 1/4 A j; k = 1/4M r j = 1/2k= 1/4 A j ;k= 1CV1/4CVBRANCH1BRANCH1 BRANCH2BRANCH1BRANCH 2 BRANCH 2BRANCH 1 BRANCH 2 BRANCH 2 BRANCH 1 BRANCH 2 BRANCH 2BRANCH 1 BRANCH 2 BRANCH 2 BRANCH 1BRANCH 2BRANCH2 BRAN我3我4C¼BþfðAþMÞ;第一章1半个分支机构;RM分支机构]j;k1j;kj;krj2k舍入常数d0,.. . ,d15的数据在表3中给出,它们的图表在表4中给出。FORK-256使用以下两个32位布尔函数f和g:fxxxn7xn2gxxn13xn27这些布尔函数被重新定义为NewFORK- 256,以避免微碰撞:fxxxn15xn27gxxxn7xn25对于BRANCHj16j64,消息块压缩如下:1. 将链接变量CVi分配给初始变量V j,0。2. 在第k阶跃函数06k67处,输出Vj,k+1计算如下:Vj;k1/4 STEPj;k V j;k; Mrj 2k; Mrj 2k 1; aj;k; bj;k; V j;8是BRANCH j的输出。步骤j,k使用Vj;k;Mrj2k;Mrj2k1;aj;k;bj;k作为输入并生成以下输出:对于FORK-256:Aj;k1Hj;kgEj;kMrj 2k1n21fEj;kMrj 2k1bj;kn17;Bj;k= 1/4Aj;k=Mrj = 2 k =1/4 Aj ; k = 1/4 Mr j= 2k = 1/4 A j; k = 1/4M r j = 1/2k = 1/4 Aj ;k= 1Cj;k1¼Bj;kfAj;kMrj 2kgAj;kMrj 2kaj;k;Dj;k1Cj;kfAj;kMrj 2kn5gAj;kMrj 2kaj;kn9;Ej;k1¼Dj;kfAj;kMrj 2kn17gAj;kMrj 2kaj;kn21;Fj;k1Ej;kMrj 2k1bj;k;Dj;k1Cj;kfAj;kMrj2kn13gAj;kMrj2kaj;k;Ej;k1¼Dj;kgAj;kMrj2kAj;kn17;Fj;k1Ej;kMrj2k1bj;k;Gj;k1Fj;kgEj;kMrj2k1;Hj;k1¼Gj;kgEj;kMrj2k1n3fEj;kMrj2k1bj;k:3. 建议的哈希函数在本节中,我们将详细介绍建议的哈希函数MNF-256。MNF-256是一种加密专用哈希函数,它将三个输入参数:512位消息块、256位链接变量和512位抖动值压缩为256位哈希值。在MNF-256中使用了三个并行分支的结构。每个分支由八步操作组成。MNF-256中使用的基本符号如表1所示。该算法对256位哈希值的计算包括两个主要阶段:一是预处理阶段,二是计算阶段。预处理阶段包括消息填充、消息解析和八个链接变量的初始化三个步骤.该算法的填充过程与SHA-1算法完全相同。在解析步骤中,消息被分成N个512位的块,第i个512位的块是16个32位字的连接。MNF-256的初始哈希值与NewFork-256的相同。其余算法细节如下:● 消息填充:消息填充的目的是Gj; k1 1/4Fj;kgþMrjð2kþ1Þ fþMrjð2kþ1Þ bj;k使填充消息的总长度为512. 消息M接下来被填充一个等于1的比特Hj;k1¼Gj;kgEj;kMrj 2k1n9fEj;kMrj 2k1bj;kn5:最后一句话,是一句话,一句话,一句话。表3 Constants.d0= 0x428A2F98d1=0x71374491d2= 0xB5C0FBCFd3= 0xE9B5DBA5d4= 0x3956C25Bd5= 0x59F111F1d6= 0x923F82A4d7= 0xAB1C5ED5d8= 0xD807AA98d9=0x12835B01d10= 0x243185BEd11= 0x550C7DC3d12= 0x72BE5D74d13=0x80DEB1FEd14= 0x9BDC06A7d15= 0xC19BF174一种基于NewFORK-256的203ðÞ ¼ ðÞ公司简介1我12我2可填充的零比特数,然后将64比特的原始消息长度以264为模附加到消息,使得填充消息的总长度是512的精确倍数。● 解析填充消息:将填充消息M划分为N个512比特块的序列。每个消息块Mi表示为16个32位字。链接变量的数量:有八个链接变量A,B,C,D,E,F,G,H。每个分支中的这些工作变量被初始化如下:A01/40x 6A 09E 667;B01/4 0xBB 67AE85;C01/4 0x 3C 6EF 372;D01/ 4 0xA54FF 53A E01/ 4 0x 510E 527F;F01/40x 9B 05688C;G01/ 4 0x 1F 83D9AB;H0 1/ 4 0x 5BE 0CD 19压缩功能:MNF- 256的压缩功能将512位输入消息块、256位链式变量和512位抖动值压缩为256位哈希值。每个消息块Mi被划分为16个32比特话M0,. ,M15和压缩 根据图2,其中RjMM rj;. ;M rj15岁 ;for 16j63;是从表5中选择的消息字的排列。链接变量CVi更新为CVi+1根据以下关系:1分支函数:对于16j63,每个BRANCH j计算如下:步骤1:将链接变量CVi复制到第j个分支的初始变量Vj,0步骤2:在每个分支的第k步,对于06k6 7;阶跃函数STEPj,k计算如下:Vj;k=1/4STEPj;k=Vj;k;Mrj=2k=1;M r j=2 k= 1;aj;k;bj;k;dj;k= 1;其中aj,k和bj,k是常数,dj,k是抖动输入.常量:共有16个常量值。每个步骤使用两个常量值。表3中给出了常数值。这些常数适用于每个分支函数。这些常数在每个BRANCHj中以不同的顺序使用。常数的顺序如表6所示。步进操作:STEPj,k的输入Vj,k被划分如下:Vj;k<$Aj;k;Bj;k;Cj;k;Dj;k;Ej;k; Fj;k;Gj;k;Hj;k<$(½BRANCHBRANCHCV;RMBRANCHBRANCHCV;RMBRANCH CV])2我3步骤j,kð2Þ使用Vj;k;M r j 2 k; M rj2k1; a j;k;bj;k ;dj;k作为输入第一章1我半个分支机构;RM分支机构]图2压缩函数的结构。●●●●●CV并生成以下输出:表5MNF-256的信息排列不01234567r1(t)01234567r2(t)141511981034r3(t)761014132912不89101112131415r(t)89101112131415r2(t)2130567121r3(t)1141585013204H.蒂瓦里角Asawa-联系我们¼ ¼ ¼¼表6MNF-256的恒定订购表7抖动值的排序。步骤-ka1、kb1,ka2,kb2,ka3,kb3,k步骤-k012345670d0D1D15D14D1d0d1,kd0D2D4D6D8D10D12D141D2D3d13D12D3D2d2,kD15d13D11D9D7D5D3D12D4D5D11D10D5D4d3,kD14D12D10D8D6D4D2d03D6D7D9D8D7D64D8D9D7D6D9D856第十天第十二天第十一天第十三天D5D3D4D2第十一天第十三天第十天第十二天步骤一曰:初始化的输入看到D和系统动力特斯,Aj;k1¼Hj;kfEj;kMrj2k1bj;kn8dj;k;Bj;k1¼Aj;kMrj2kaj;kdj;k;Cj;k1<$Bj;kfAj;kMrj2kdj;k;Dj;k1¼Cj;kfAj;kMrj 2kn13gAj;kMrj 2kaj;kdj;k;Ej;k1Dj;kgAj;kMrj2kaj;kn17dj;k;Fj;k 1Ej;kMrj2k1bj;kdj;k;Gj;k1Fj;kgEj;kMrj2k1dj;k;Hj;k1¼Gj;kgEj;kMr2k1n3fEj;kMr2k1bj;kdj;k:t=a* lo r * hi。步骤4:保存新的种子值。 如果test> 0,则将test保存为新的种子值,否则保存test+ m。步骤5:输出新的种子。第6步:重新排序,让输出种子成为新的输入种子。移位s:对于32位字符串的s位左移表示为X ns。四个移位值:13,17,3和8,已被用于步进运算的计算中。他们被定义为:低点:完整的步骤操作如图所示。3.第三章。抖动值:对于每个消息块Mi,存在16个不同抖动值的序列。这些抖动值以不同的顺序应用于每个分支。不同分支的抖动值排序如表7所示。这些值由Park-Miller算法生成。Park-Miller算法是一种快速有效的随机序列生成算法。它基于同余形式:Sn 1aSnmod 231 1:。该算法的步骤描述如下:S1Xn13;S2Xn17;S3Xn3;S4X n8.非线性函数:MNF-256使用两个非线性函数,f和g在其步骤操作的计算。在这两个函数中,f是完全双射的。这些职能的定义如下:fxxxn15xn27:gxxxn7xn25:表8总结了FORK-256、NewFORK-256和MNF-256之间的比较分析。图3步骤操作。●●●7D14D15D1d0D15D14a= 16,807,m = 214,74,83,647,q =127,773,r = 2836。步骤2:计算hi=seed div q;lo=seed mod的值Q.步骤3:然后计算相应的测试值:tes-JJ一种基于NewFORK-256的205-4. 安全分析首先,如果攻击者插入消息差异以在3分支中找到冲突,则,他预计的以下内容:(D1+D2)<$(D2+D3)=0,其中,Di是BRANCHi的输出差。为了获得这种差异模式,攻击者应该调查以下策略:策略1:为分支函数构造具有高概率的差分特征,比如BRANCHi,然后期望,其他分支中的输出差的运算D3等于D1。由于每个分支函数的输出都是随机的,所以提出的哈希函数是安全的,事件发生的概率几乎接近2- 256。策略2:构造两个不同的微分特征,使得(D1+D2)=(D2+D3). (This可以被生成用于取消第一和第二链接值以获得链接值之间的差为零,这是生成攻击所需的条件)。为了找到使用这种策略的攻击,攻击者必须构建这样的消息字的差分模式。但是,对于任何消息词,在计算上很难找到这样的序列。策略3:在所有三个分支中插入产生相同消息差异模式的消息差异,并期望在三个分支中同时出现相同的差异特征。这种策略对于攻击者来说相对容易然而,使用消息字重新排序可以避免这一点,就像在FONK和NewFONK的情况由于在建议的散列函数中使用相同的消息字重新排序,因此可以预期针对该策略的相同安全级别。此外,使用不同的运算符(例如+和<$)会使好的差分路径的计算变得非常复杂。信息词的添加、并行混合结构、寄存器的轮换并且抖动值的增加使得压缩功能更强以抵抗不同的攻击。5. 性能分析5.1. 消息的哈希结果为了简单起见,让我们考虑消息M(1个块,512比特),由下式给出:00112233 44556677 88990011 22334455 6677889900112233 44556677 88990011 22334455 6677889900112233 44556677 88990011 22334455 6677889900112233分支1输出:84fddde4 50791ee4 7f50dc6d b9fef233 8393a036 47d99fac8dd26400 62363776分支2输出:小行星277310f3 cd9e88e8 9fbd0920 1e217775 2d4c7c1a4c728465de58849a a5e62d2c分支3输出:5c2c2978 f5f0b9c7 7fd9061c 70563438 88b387c4 6d950b4e4cc746de ed33ab54最终哈希结果:50fa289 eb578341 1a07d8d5 a5ebdfeb a7661484 a1e5881a4dcf854d a315f0fb5.2. 随机性我们已经采取了512位长度的输入消息M,并计算出相应的哈希值。通过改变M的第i位,改良的消息Mi有被生成,为16i6512.然后,我们生成所有这些新消息的散列值,并最终计算原始消息和调制消息的散列值之间的汉明距离或改变位数。最好是128。但我们发现,这些汉明距离位于106和153之间的上述消息。距离范围见表9。表8FORK-256、NewFORK-256和MNF-256之间的比较。财产叉-256新叉-256MNF-256输入参数223输出参数111建设默克勒-达姆加山默克勒-达姆加山抖动消息块大小512位512位512位字长32位32位32位压缩函数的总输入位数768位768位1280位输出散列值256位256位256位支链数443每个步骤操作222常数161616每个分支中的步骤数888非线性函数222双射函数缺席本本使用的操作+,n,<$+,n,<$+,n,<$查找原映像2256次手术2256次手术2256次手术查找第二个原映像2256次手术2256次手术2256次手术发现碰撞2128次手术2128次手术2128次手术t-X¼206H.蒂瓦里角Asawa平均汉明距离为128.0234。距离分布如图所示。 四、5.3. 位方差检验位方差测试包括通过改变输入消息位来测量对摘要位的影响。改变输入消息的位,并计算相应的消息位数(对于每个改变的输入)。最后,从产生的所有摘要中,测量每个摘要位取1和0值的概率Pi。如果Pi(1)=Pi(0)=1/2,对于所有摘要比特i16i6n,其中n是摘要长度,则所考虑的散列函数在比特方差测试方面已经达到最大的性能。因此,位方差测试实际上测量了摘要的每个位的一致性。由于考虑所有输入消息位的变化在计算上是困难的,我们仅对最多513个文件的结果进行了评估,并发现了以下结果:总人数:513人1秒的平均频率(预期)=256.50。1秒的平均频率(计算值)= 256.29。上述分析表明,MNF-256表现出合理的良好雪崩效应。因此,它可以用于加密-图4距离的频率分布平均变化概率:P¼ AB=256× 100%A4 B更改位数的标准偏差:vu1XN图形应用程序。5.4. 扩散和混淆DB¼tN-11/1Bi-Bð5Þ为了隐藏信息冗余,香农引入了扩散和混淆。扩散意味着扩散到标准偏差:vu1XN在单个明文比特的重叠中,以便隐藏明文的统计结构混淆意味着使用transforma-DP¼N11/1[001 pdf 1st-31files][001pdf 1st-31files][001pdf 1st-31files]使密文的统计数据对明文的统计数据的依赖性复杂化的情况。这是指导包括散列函数在内的实用密码设计的两条普遍原则。对于二进制格式的哈希值,每个位只有1或0。因此,理想的扩散效果应该是初始条件的任何微小变化都会导致每个比特50%的变化概率。我们进行了以下扩散和混淆试验。随机选择消息并生成散列值,然后随机选择并切换消息中的位两个散列值彼此一致,并且改变的位的数目被计为Bi。这种测试进行N次(如512、1024、2048)。我们为此使用了四个统计量:平均改变比特数B、平均改变概率P、改变比特数的标准差DB和标准差DP。N其中N是总统计数。DB和DP表示状态,扩 散和 混 淆 的能 力 。 通 过测 试 ,N=512、 1024 、2048,相应数据见表10。表10表明平均变化比特数和变化百分比分别为127.94和49.97%,这非常接近理想值128和50%。而DB和DP表示扩散和混乱的稳定性,小,这表明扩散和混淆的能力是稳定的。5.5. 碰撞阻力碰撞攻击是一种典型的算法无关攻击,它可以应用于任何哈希函数。碰撞抵抗意味着哈希结果与不同的随机数相同初始输入。需要努力找到一对消息,重新-平均变化位数:B1BN1ð3Þ对于一个n位的散列函数,其相同的散列值的结果是2n/2。表9距离范围表10更改位数的统计距离散列对百分比N51210242048是说128± 525850.39B127.68128.11128.02127.94128± 1041380.66P49.8750.0450.0149.97128± 1548294.14DB7.408.248.197.94128± 2050598.63DP%2.893.223.193.1022我表12差分密码分析的结果。d1 2 4 8 16 32建议8.13 8.07 8.42 7.63 7.79 7.62一种基于NewFORK-256 207的安全有效的密码散列函数由于哈希值的长度为256位,因此需要2128次操作才能找到冲突。此外,为了研究哈希方法的抗碰撞能力,我们进行了两次碰撞测试。在第一个实验中,随机选择的消息的哈希值被生成并以ASCII格式存储。然后,随机选择消息中的一个比特并进行tog-gled,从而生成新的哈希值并以相同的格式存储。将两个哈希值相互比较,并计算哈希值中相同位置具有相同值的该格式字符的数量。通过使用以下公式计算两个哈希结果的绝对差:XNAD¼1/1其中ei和e0i分别是原始哈希值和新哈希值的第i个ASCII字符,dec()将这些条目转换为它们的等效十进制值。这种碰撞测试是2048次。AD的最大值、最小值和平均值见表11。在第二个实验中,生成随机选择的消息的哈希值,并以类似的ASCII格式存储。这个实验集中在每两个散列结果之间的碰撞的可能性,因此每两个散列结果应该进行比较。模拟进行了2048次。图5给出了在同一位置具有相同值的ASCII字符数的分布图。请注意,图5中相等条目的最大数量为2。此外,大多数条目的ASCII格式不同。结果表明,该算法具有较强的抗碰撞能力.5.6. 防止原像和第二原像攻击的MNF-256的单向结构不允许从散列值重建原始消息。一般来说,抗冲突属性为哈希函数提供第二原像抵抗。MNF-256显示出良好的抗碰撞性。因此,原像和第二原像攻击都需要至少2256次操作,这意味着所提出的哈希函数对此类攻击具有很强的抵抗力5.7. 对差分密码分析我们研究了所提出的哈希函数对差分密码分析的鲁棒性。此攻击分析明文对及其对应的哈希对。 例如,如果2个消息之间的差是2比特(即,例如d=2),则可以计算对应的2个消息摘要对的消息摘要对差d0从d的分布 对应于不同的消息对,计算标准偏差(r)。如果r10%,则散列函数对于差分密码分析是安全的<为图5散列值中相同位置具有相同值的相等条目的数量分布。考虑10字节的实验输入消息。针对输入消息的所有可能的d={1,2,4,8,16,32}位差异运行实验。表12中的结果表明,所提出的散列函数对于差分攻击是安全的。5.8. 效率性能测试是在1.47GHz、1GB RAM的Intel Pen- tium 4 CPU上进行的,测试过程如下:我们选择一条s字节大小的消息,并随机生成1000条相同大小的消息。散列函数应用于这1000条消息中的每条消息,测量计算每条消息所需的时间。最后,我们取1000多个样本的平均值。为了与FORK-256和NewFORK-256算法进行比较,对这些算法进行了重复计算. FORK-256、NewFORK-256和MNF-256的平均CPU计算时间(秒)见表13。6. 结论建议的哈希函数生成256位哈希字符串。它是由三个分支组成的平行结构每个分支表11AD值绝对不同Max3650Min1801是说2738.74平均值/字符85.58表13计算时间。sFORK-256新FORK-256(字节)(秒)(秒)64 0.0083 0.0062128 0.0638 0.0563104 0.3544 0.3519105 1.0968 0.9421106 8.0742 7.8511MNF-256(in秒)0.00480.05330.29610.71936.2347j12月i日-12月0日i日j月 7日208 H.蒂瓦里角Asawa计算八步操作。算法使用16个常数和两个非线性函数。每个分支机构都利用16个不同顺序的消息子块和常量。为了使整个结构复杂的cryptan-lyst和安全对已知的攻击压缩功能使用三个输入。抖动值用作第三输入。这些抖动值是通过帕克-米勒算法生成的随机数算法的单向结构使其具有较强的抗原像和二次原像攻击能力。已经执行了各种测试来检查散列函数的安全级别。已针对一位变化执行位方差测试。位方差测试的结果表明,MNF-256表现出相当好的雪崩效应,即当单个输入位被补时,每个输出位以0.5的概率改变。因此提出的散列函数通过了比特方差测试。对MNF-256的统计分析表明,MNF-256具有较强而稳定的迷惑扩散能力。计算得到的 平 均 变 化 比 特 数 和 平 均 变 化 概 率 分 别 为 127.94 和49.97%,均非常接近空闲值128 bit和50%,而变化比特数的标准差和标准差都很小,说明混淆和扩散能力非常稳定。碰撞测试应用于2048个不同的哈希对。两个哈希值中相同位置的相等字符的最大数量仅为2。计算出的两个哈希值的绝对差/特征值为85.58,与理论值85.33接近,显示出较强的仿真结果和对散列函数的严格分析保证了它对差分和其他常见攻击的安全性。此外,作为未来的工作,我们试图提高其效率。引用[1] 施奈尔湾应用密码学。New York:John Wiley Sons.[2] Bakhtiari S , Safavi-Naini R
下载后可阅读完整内容,剩余1页未读,立即下载
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- VMP技术解析:Handle块优化与壳模板初始化
- C++ Primer 第四版更新:现代编程风格与标准库
- 计算机系统基础实验:缓冲区溢出攻击(Lab3)
- 中国结算网上业务平台:证券登记操作详解与常见问题
- FPGA驱动的五子棋博弈系统:加速与创新娱乐体验
- 多旋翼飞行器定点位置控制器设计实验
- 基于流量预测与潮汐效应的动态载频优化策略
- SQL练习:查询分析与高级操作
- 海底数据中心散热优化:从MATLAB到动态模拟
- 移动应用作业:MyDiaryBook - Google Material Design 日记APP
- Linux提权技术详解:从内核漏洞到Sudo配置错误
- 93分钟快速入门 LaTeX:从入门到实践
- 5G测试新挑战与罗德与施瓦茨解决方案
- EAS系统性能优化与故障诊断指南
- Java并发编程:JUC核心概念解析与应用
- 数据结构实验报告:基于不同存储结构的线性表和树实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)