自主設(shè)計類似SHA256的Hash算法SKAP512原理介紹

SKAP-512密碼雜湊算法
黃金龍(QQ1435271638)
SKAP-512密碼雜湊算法描述
SKAP-512密碼雜湊算法采用Merkle-Damgard結(jié)構(gòu),消息分組長度為512bit,摘要長度512bit。壓縮函數(shù)狀態(tài)大小為512bit,共64步,每步更新8個寄存器,這加快了算法的雪崩效應(yīng)。
SKAP-512密碼雜湊算法的初始值
SKAP-512密碼雜湊算法的初始值IV共512bit,由16個32bit串聯(lián)而成,具體值如下:IV=606CB92D 63485C48 DEDB471D F53B8BE8 458B8E3F E9CD63A1 67FBE0E6 82807FE9 244FE77A 0A86FC13 D1C3A71B 62975AC4 8E969EA8 F8E8ED37 0939026E 2B39CF09
SKAP-512密碼雜湊算法的常量
SKAP-512密碼雜湊算法的常量為64個32bit,具體值如下:
C0……C63=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<264)比特的消息m,SKAP-512密碼雜湊算法首先將比特“1”添加到消息的末尾,再添加k個“0”,k是滿足(l+k+1)=448Mod512的最小非負(fù)整數(shù)。然后再添加一個64位比特串,該比特串是消息長度的二進(jìn)制表示。填充后的消息m`的長度是512 的倍數(shù)。
?

SKAP-512密碼雜湊算法的迭代壓縮過程
將填充后的消息m`按512bit進(jìn)行分組:m`=B(0)B(1)…B(n-1),其中n=(l+k+65)/512。對m`按如下方式迭代:
FOR i=0 TO (n-1)
V(i+1)=CF(V(i),B(i))
ENDFOR
其中CF是壓縮函數(shù),V(0)為512 bit初始值IV,B(i)為填充后的消息分組,迭代壓縮的結(jié)果為V(n)。
SKAP-512密碼雜湊算法的壓縮函數(shù)
假定A,B,C,D,E,F(xiàn),G,H,I,J,K,L,M,N,O,P為32位寄存器,T1,T2,T3,T4為中間變量,壓縮函數(shù)V(i+1)=CF(V(i),B(i)),0≤i≤n-1,狀態(tài)更新過程描述如下:
ABCDEFGHIJKLMNOP<- V(i);
FOR j=0 TO 63
T1=F1(B,D,F(xiàn),H,I,K,M,O);
T2=F2(A,B,C,D);
T3=F3(E,F(xiàn),G,H);
T4=F4(I,J,K,L);
Temp=P<<<13
P= A+T1+ C(8i)
A=B
B=C+T1<<<17+C(8i+1)
C=D
D=E+T2+C(8i+2)
E=F
F=G+T1+T2+C(8i+3)
G=H
H=I+T3+C(8i+4)
I=J
J=K+T1+T3+C(8i+5)
K=L
L=M+T4+C(8i+6)
M=N
N=O+T1+T4+C(8i+7)
O= Temp
ENDFOR
V(i+1) <- ABCDEFGHIJKLMNOP⊕V(i)
雜湊值
ABCDEFGHIJKLMNOP <- ABCDEFGHIJKLMNOP⊕V(i)
4個混淆擴散函數(shù)




SBOX查找表

SKAP-512密碼雜湊算法的特點
SKAP-512密碼雜湊算法壓縮函數(shù)整體結(jié)構(gòu)與SHA-256類似,除了沒有消息擴展函數(shù)外,還增加了多種新的設(shè)計技術(shù),包括使用S盒作為非線性變換、使用了4個不同的加快雪崩效應(yīng)的混淆擴散函數(shù)、每步更新8個寄存器的值等。能夠有效地避免高概率的局部碰撞,有效地抵抗強碰撞性的差分分析、弱碰撞性的線性分析和比特追蹤法等密碼分析。