当前位置:首页 >资讯 >SHA-256算法的安全性


SHA安全加密标准是世界上使用最广泛、最安全的压缩算法之一。随着密码学研究的深入和计算机技术的快速发展,SHA-全面推广应用256算法。

SHA-256算法采用一组6逻辑函数和一组常数KT,使用512比特的消息块,每个消息块Xi分为16个32比特字M0,M1,….M15.下面来看看SHA-256指的计算过程。

1.初始化

简述SHA-256算法的安全性

2.准备新闻列表

简述SHA-256算法的安全性

3.初始化散列值的中间结果初始化8个工作变量A.B.C.D.E.F.G.H。初始定义由H0(0)-H7(7)给出。

4.对于0≤t≤执行(即压缩函数)

T1=H+∑1{256}(e)+Ch(e,f,g)+Kt{256}+Wt

T2=∑0{256}(a)+Maj(a,b,c)

H=gg=he=d+T1d=cc=bb=aa=T1+T2

5.每组中间散列值的计算方法

H0(i)=a+H0(i-j),H1(i)=b+H1(i-j),H2(i)=c+H2(i-j),H3(i)=d+H3(i-j),H4(i)=e+H4(i-j),H5(i)=f+H5(i-j),H6(i)=g+H6(i-j),H7(i)=h+H7(i-j)

这里I是指消息的第一组,在处理完所有组后,最终输出256比特Hash值:H0(N)||H1(N)||H2(N)||H3(N)||H4(N)||H5(N)H6(N)||H7(N)

算法中使用的六个逻辑函数:

简述SHA-256算法的安全性

SHA-256的安全性

Hash函数的安全性在很大程度上取决于抗强碰撞能力,即攻击者找出两个涓息M和两个涓息M,MtM≠Mt,使得H(M)=HMt,所以,评价一个Hash函数的安全性取决于攻击者能否在现有条件下找到函数的一对碰撞。目前,现有的对手。Hash函数攻击包括生日攻击.彩虹表攻击.差异攻击等。

生日攻击:生日攻击是一种可用于攻击任何类型的函数Hash函数的攻击方法。从攻击原理上看,它不使用Hash函数的结构和任何代数的弱性只依赖于和Hash值的长度。因此,抵御生日攻击最有效的方法是抵御生日攻击Hash值必须有足够的长度。

差分攻击:差分攻击是目前破译迭代迭代Hash函数最有效的方法之一是利用明文输入差对输出差的影响,利用差的高概率继承或消除来产生相同的最终输出。

用于验证信息唯一性和数据完整性Hash函数的安全性取决于函数本身的属性和对抗碰撞的抵抗。Hash函数的算法结构特征和Hash值的长度是决定函数碰撞的主要因素,Hash值越长,越能抵抗生日攻击。SHA-256有256比特Hash值,MD5和SHA-1分别有128和160比特Hash值。因此,SHA-256比MD5和SHA-1能抵抗生日攻击。通过对抗。Chabaud-Joux攻击SHA-256分析,找到了SHA-256碰撞的一部分,其复杂性为266,但找不到SHA-256的整体碰撞,因此,SHA-256算法还可以抵御现有的差分攻击。可见,在抵御生日攻击和已知差分攻击方面,SHA-与目前广泛使用的256算法相比,MD5和SHA-1等更安全。