-
-
[原创]与SHA256类似的Hash算法SKAP512的算法原理介绍
-
发表于:
2023-2-15 17:16
14704
-
[原创]与SHA256类似的Hash算法SKAP512的算法原理介绍
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,D,E,F,G,H,I,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 <- ABCDEFGHIJKLMNOP⊕V
杂凑值
ABCDEFGHIJKLMNOP <- ABCDEFGHIJKLMNOP⊕V
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个寄存器的值等。能够有效地避免高概率的局部碰撞,有效地抵抗强碰撞性的差分分析、弱碰撞性的线性分析和比特追踪法等密码分析。
本人还是菜鸟一枚,希望大牛们不要吝啬你们的宝贵意见。你们的意见和建议对于像我这样的菜鸟来说是非常有意义的!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2023-2-28 09:58
被东关之南编辑
,原因: