SHA256算法魔改版GMN256算法设计原理详解

SHA256算法魔改版GMN256算法设计原理详解

SHA256算法为美国第二代哈希算法标准,关于该算法的介绍和设计细节详见美国第2代哈希散列算法之SHA-256。为防止SHA256算法不能抵抗未知的攻击方法(未来有可能会出现新的攻击方法),本文提出了SHA256算法的改进版本GMN256。在不改变SHA256算法的整体结构和其它参数的情况下,通过对其消息扩展算法和压缩函数进行相应修改。相比较于SHA256算法,GMN256算法的安全性得到较大提升,同时两者的运算效率相差无几。

GMN256算法的优缺点:

(1)把压缩函数中的常量K放到了消息扩展算法中,这加强了消息M与常量K之间的复杂依赖关系和加快了雪崩效应。

(2)在压缩函数中使用相同的消息字来更新2个不同寄存器的值,而且使用两个线性扩散函数LLL0和LLL1作用于这两个消息字,这不但加快了算法的雪崩效应,同时提高了GMN256抵抗碰撞攻击和原像攻击的能力。

以下我将给出GMN256的算法流程及其设计细节,红色高亮显示部分为GMN256与SHA256两者之间的不同之处。

GMN256算法的杂凑值计算过程可以表示为:

GMN256算法中的常量有:

(1)8个移位寄存器的初始值为:

(2)常数K:轮常数K0,...,K63取自前64个素数立方根小数部分的前32比特。

(3)8个混淆和扩散函数为:

GMN256杂凑函数的三大操作:消息填充算法、消息扩展算法、消息压缩算法。

  1. 消息填充算法Pad:

对输入的消息进行填充,使其长度变为512的倍数。填充方法是在原始消息末尾添加一个1位,然后添加一定数量的0位,最后再添加64位的消息长度,使得填充后的消息长度为512的整数倍。然后将填充后的消息以512位为单位进行分组。如(M0||…||Mn-1=Pad(M))

 

(2)消息扩展算法MsgExtend(将16个32位消息字扩展成64个)

(其中Mj(i)为第i个512bit消息块的第j个32位字)

(3)消息压缩算法CF

总结:

GMN256算法完全继承了SHA256的优点和改进了一些问题,以期待能够抵抗未知的攻击方法。虽然两者的整体结构都为MD结构,天然存在一些固定的弱点,但是不可否认地是,GMN256的安全强度要高于SHA256。大家有什么不同的想法,欢迎在评论区中一起讨论,毕竟众人拾柴火焰高。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄金龙PLUS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值