新坑,慢慢填 :huaji:

MD5

找四个特殊变量:

0x67452301, 0xefcdab89, 0x98badcfe, 0x10235476

MD5的初始变量一般都是定死的,除开特殊题目,出题人故意坑你

SHA-1

找5个特殊变量:

0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0

同MD5,SHA-1一样是定死的,除非出题人坑人

SHA-256/384/512

同上,这里列出相关初始量:

sha-256
h0= 0x6a09e667       h1= 0xbb67ae85       h2= 0x3c6ef372
h3= 0xa54ff53a       h4= 0x510e527f        h5= 0x9b05688c
h6= 0x1f83d9ab       h7= 0x5be0cd19
sha-384
H0 = cbbb9d5dc1059ed8    H1 = 629a292a367cd507    H2 = 9159015a3070dd17
H3 = 152fecd8f70e5939    H4 = 67332667ffc00b31    H5 = 8eb44a8768581511
H6 = db0c2e0d64f98fa7    H7 = 47b5481dbefa4fa4
sha-512
6A09E66713BCC908   BB67AE8584CAA73B   3C6EF372FE94F82B 
A54FF53A5F1D36F1   510E527FADE682D1   9B05688C2B3E6C1F 
1F83D9ABFB41BD6B   5BE0CD19137E2179

SM4

SM4算法参考资料比较少,所以有些出题人为了降低难度,没有变动初始秘钥

看到这4组秘钥,可以粗略的认为是SM4加密。
[infobox title=”SM4加密流程:”]

1.期初输入128bit的密钥,与系统参数128bit进行异或
2.进入循环生成器,128bit分为4组ki,ki+1,ki+2,ki+3
3.分组1,2,3进行异或,再与固定参数进行异或
4.S盒置换
5.自身与自身的循环左移,循环右移进行异或
6.再与最初的ki进行异或,得到最终的结果

[/infobox]

所以SM4算法的特征就是:

1、有N个32周期轮回的子程序

2、置换表

图中的是默认的置换表,也可能会随着出题人的想法增加难度,产生变换

3、与置换表进行各种左移操作

Base-N

1、找到规则字符表。
            例如:base64默认为:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=

2、遇到字符末尾带=,考虑BASE-N算法

3、反汇编的时候看到大量的位移

算法初探:https://www.52pojie.cn/thread-793420-1-1.html