mirror of
https://github.com/emmansun/gmsm.git
synced 2025-05-11 03:26:17 +08:00
Updated SM4 with AESENCLAST (markdown)
parent
25d407e0ea
commit
3c3235efde
@ -435,11 +435,21 @@ def matrix_from_cols(cols):
|
||||
k = 7 - i
|
||||
j = 1 << k
|
||||
m.SetRow(i, [(cols[0] & j) >> k, (cols[1] & j) >> k, (cols[2] & j) >> k, (cols[3] & j) >> k, (cols[4] & j) >> k, (cols[5] & j) >> k, (cols[6] & j) >> k, (cols[7] & j) >> k])
|
||||
|
||||
return m
|
||||
|
||||
|
||||
def gen_matrix_based_table(table):
|
||||
return matrix_from_cols([table[0x80] ^ table[0], table[0x40] ^ table[0], table[0x20] ^ table[0], table[0x10] ^ table[0], table[0x08] ^ table[0], table[0x04] ^ table[0], table[0x02] ^ table[0], table[0x01] ^ table[0]])
|
||||
|
||||
def gen_matrix_based_high_low(high, low):
|
||||
table = []
|
||||
for i in range(16):
|
||||
for j in range(16):
|
||||
table.append(high[i] ^ low[j])
|
||||
return gen_matrix_based_table(table)
|
||||
|
||||
print(gen_matrix_based_high_low([0x00,0x50,0x14,0x44,0x89,0xd9,0x9d,0xcd,0xde,0x8e,0xca,0x9a,0x57,0x07,0x43,0x13], [0xd3,0x59,0x38,0xb2,0xcc,0x46,0x27,0xad,0x36,0xbc,0xdd,0x57,0x29,0xa3,0xc2,0x48]))
|
||||
```
|
||||
# AES ShiftRows
|
||||

|
||||
|
Loading…
x
Reference in New Issue
Block a user