首页
社区
课程
招聘
[原创]与SHA256类似的Hash算法SKAP512的算法原理介绍
发表于: 2023-2-15 17:16 14706

[原创]与SHA256类似的Hash算法SKAP512的算法原理介绍

2023-2-15 17:16
14706

SKAP-512密码杂凑算法


         

         什么是Hash算法

         Hash算法,又称为哈希算法、杂凑函数、散列函数、消息摘要算法。它可以将相当长(一般不大于2^64Bit)的输入数据经过计算生成固定长度的Hash值,不同的输入数据对应不同的Hash值(产生碰撞的概率很小)。同时Hash计算的过程是不可逆的,也就是说,由Hash值无法逆推出输入数据。Hash算法的应用非常多,分别是安全加密、唯一标识、数据校验、散列函数、负载均衡、数据分片、分布式存储、区块链。


SKAP-512密码杂凑算法描述

SKAP-512密码杂凑算法采用Merkle-Damgard结构,消息分组长度为512bit,摘要长度512bit。压缩函数状态大小为512bit共64步,每步更新8个寄存器,这加快了算法的雪崩效应。


SKAP-512密码杂凑算法的初始值

SKAP-512密码杂凑算法的初始值IV共512bit,由16个32bit串联而成,具体值如下:IV=606CB92D 63485C48 DEDB471D F53B8BE8 458B8E3F E9CD63A1 67FBE0E6 82807FE9 244FE77A 0A86FC13 D1C3A71B 62975AC4 8E969EA8 F8E8ED37 0939026E 2B39CF09


SKAP-512密码杂凑算法的常量

SKAP-512密码杂凑算法的常量为64个32bit,具体值如下:

C……C=90FA8DC8 7E40BC17 327BF0F1 9F59CF65 B639FB3A 3936A2F0 0C793624 44FDE4F3 DA9C8AD5 930855B4 EB16D526 EB1532F6 6746D2BE DF66D689 D3257F0F 9B57EBAE 267C86A5 D12CF550 FB867607 F73FBB6F EDEFC9ED C792EF7E 106C10F6 A9A67A2D 7F1847CC D092A4C5 6A278463 C88F9B13 36B3035E E300EE90 15D7D890 6C0FAA9B D02622AE 87A5B948 E50E1BA5 6DDFF522 4773FA56 DB00A5A1 17E1977B 6FD44CCD 489FBDAD CFF9059A 7895F7B0 9762DF81 DCE298C8 F486AE59 06586AF6 EB55561C 90FA8DC8 7E40BC17 33F1F0F1 9F59CF65 B639FB3A 3936A2F0 0C793624 44FDE4F3 DA9C8AD5 930855B4 EB16D526 EB1532F6 6746D2BE DF66D689 D3257F0F 9B57EBAE


SKAP-512密码杂凑算法的消息填充

对长度为l(l<2)比特的消息m,SKAP-512密码杂凑算法首先将比特“1”添加到消息的末尾,再添加k个“0”,k是满足(l+k+1)=448Mod512的最小非负整数。然后再添加一个64位比特串,该比特串是消息长度的二进制表示。填充后的消息m`的长度是512 的倍数。

          


SKAP-512密码杂凑算法的迭代压缩过程

将填充后的消息m`按512bit进行分组:m`=BB…B,其中n=(l+k+65)/512。对m`按如下方式迭代:

FOR i=0 TO (n-1)

V=CF(V,B)

ENDFOR

其中CF是压缩函数,V为512 bit初始值IV,B为填充后的消息分组,迭代压缩的结果为V。


SKAP-512密码杂凑算法的压缩函数

假定A,B,C,DE,F,G,HI,J,K,L,M,N,O,P为32位寄存器,T1,T2,T3,T4为中间变量,压缩函数V=CF(V,B),0≤i≤n-1状态更新过程描述如下:

ABCDEFGHIJKLMNOP<- V

FOR j=0 TO 63

T1=F1(B,D,F,H,I,K,M,O);

T2=F2(A,B,C,D);

T3=F3(E,F,G,H);

T4=F4(I,J,K,L);

Temp=P<<<13

P= A+T1+ C(8iMod64)

         A=B

B=C+T1<<<17+C((8i+1)Mod64)

C=D

D=E+T2+C((8i+2)Mod64)

E=F

F=G+T1+T2+C((8i+3)Mod64)

G=H

H=I+T3+C((8i+4)Mod64)

I=J

J=K+T1+T3+C((8i+5)Mod64)

K=L

L=M+T4+C((8i+6)Mod64)

M=N

N=O+T1+T4+C((8i+7)Mod64)

O= Temp

ENDFOR

V <- ABCDEFGHIJKLMNOPV

杂凑值

ABCDEFGHIJKLMNOP <- ABCDEFGHIJKLMNOPV

4个混淆扩散函数

Y=F1(X0,X1,X2,X3,X4,X5,X6,X7)

{

}

Y=F2(X0,X1,X2,X3)

{


}

Y=F3(X0,X1,X2,X3)

{


}

Y=F4(X0,X1,X2,X3)

{


}


SBOX查找表


SKAP-512密码杂凑算法的特点

SKAP-512密码杂凑算法压缩函数整体结构与SHA-256类似,除了没有消息扩展函数外,还增加了多种新的设计技术,包括使用S盒作为非线性变换使用了4个不同的加快雪崩效应的混淆扩散函数、每步更新8个寄存器的值等。能够有效地避免高概率的局部碰撞,有效地抵抗强碰撞性的差分分析、弱碰撞性的线性分析和比特追踪法等密码分析。


本人还是菜鸟一枚,希望大牛们不要吝啬你们的宝贵意见。你们的意见和建议对于像我这样的菜鸟来说是非常有意义的!




[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2023-2-28 09:58 被东关之南编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (1)
雪    币: 397
活跃值: (799)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wsy
2
题目不太恰当。看题目,有两种情况,该算法为作者原创,或者介绍设计原理思路。进来看,却是简单的算法介绍。
2023-2-20 09:38
0
游客
登录 | 注册 方可回帖
返回
//