From 471d6d7d34cb8d21e7b519fd278c97492695b7d7 Mon Sep 17 00:00:00 2001 From: Sun Yimin Date: Fri, 29 Oct 2021 10:25:41 +0800 Subject: [PATCH] Updated SM4 with AESENCLAST (markdown) --- SM4-with-AESENCLAST.md | 3 +++ 1 file changed, 3 insertions(+) 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)