Updated SM4 with AESENCLAST (markdown)

Sun Yimin 2021-10-22 10:50:36 +08:00
parent 86540c2671
commit 3475d28c0b

@ -18,3 +18,55 @@ Two known (M1, C1, M2, C2), please reference [sm4 with AESENCLAST](https://gist.
{(M1, C1, M2, C2) | SM4-S(x) = A2(AES-S(A1(x)), A1(x) = M1*x + C1, A2(x) = M2*x + C2}
```
**How to calculate M, C from lookup table?**
1.The first element of the table, T[0] should be the C.
2.Use T[1] XOR T[0], T[2] XOR T[0], T[4] XOR T[0], T[8] XOR T[0], T[16] XOR T[0], T[32] XOR T[0], T[64] XOR T[0], T[128] XOR T[0] to calculate matrix M.
Below is sample
```
1 2 3 4 5 6 7 8
00000110 01110011 01110101 11100101 11100011 10010110 10010000 01010110
0x00, 0x06, 0x73 0x75 0xE5 0xE3 0x96 0x90 0x56
1 10100010
2 01001001
3 11111011
4 00001001
5 10101011
6 01000000
7 11100010
8 00010010
9
00010010
00001001
01001001
10100010
01010110
11100101
01110011
00000110
1 2 3 4 5 6 7 8
00111100 10101001 11111010 10110110
0x00 0x3c 0xa9 0xfa 0xb6
1 11011100
2 10101111
3
4 11011101
5
6
7
8 10111111
10111111
11011101
10101111
11011100
10110110
11111010
10101001
00111100
```