diff options
| -rw-r--r-- | src/add_tweakeyunrolled/tweakey.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/add_tweakeyunrolled/tweakey.c b/src/add_tweakeyunrolled/tweakey.c index 348de51..a5b88a8 100644 --- a/src/add_tweakeyunrolled/tweakey.c +++ b/src/add_tweakeyunrolled/tweakey.c @@ -96,12 +96,15 @@ static void _multiply_M(const uint8_t x[LANE_BYTES], uint8_t y[LANE_BYTES]) static void _multiply_M2(const uint8_t x[LANE_BYTES], uint8_t y[LANE_BYTES]) { + uint8_t x_M_5 = x[5]<<3 ^ x[4]; + uint8_t x_M_4 = x[4]>>3 ^ x[3]; + y[7] = x[5]; - y[6] = x[5]<<3 ^ x[4]; - y[5] = x[5]<<6 ^ _M1(x[4]) ^ x[3]; - y[4] = x[4]>>6 ^ x[3]>>3 ^ x[2]; - y[3] = x[6]<<2 ^ x[1]; - y[2] = x[5]<<2 ^ x[0]; + y[6] = x_M_5; + y[5] = x_M_5<<3 ^ x_M_4; + y[4] = x_M_4>>3 ^ x[2]; + y[3] = x[6]<<2 ^ x[1]; + y[2] = x[5]<<2 ^ x[0]; y[1] = x[7]; y[0] = x[6]; } |
