diff --git a/SM4-with-AESENCLAST.md b/SM4-with-AESENCLAST.md index a28d5d4..2e2f897 100644 --- a/SM4-with-AESENCLAST.md +++ b/SM4-with-AESENCLAST.md @@ -24,6 +24,9 @@ My question is how to generate all (M1, C1, M2, C2)? **Evolution path** sm4_box_aesenclast <-> sm4_box_aesbox_1 <-> sm4_box_aesbox_2 <-> sm4_box_aesbox_3 <-> sm4_box_aesbox_4 + +**We note that each affine transform can be constructed from XOR of two 4x8-bit table lookups, which we implement with constant time byte shuffle instructions (each 16-entry table is in a single 128-bit register).** + ``` sm4_box_aesenclast y := mm_and_si128(x, const_0f)