mirror of
https://github.com/emmansun/gmsm.git
synced 2025-05-11 03:26:17 +08:00
Updated SM4 with AESENCLAST (markdown)
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
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user