diff options
| author | Kévin Le Gouguec <kevin.legouguec@airbus.com> | 2019-02-20 15:37:26 +0100 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@airbus.com> | 2019-02-20 17:23:47 +0100 |
| commit | 1ea3b9a3fe91c54c9be7dd7014f3af0c861260c3 (patch) | |
| tree | 0fc00c3ce5990a044d179f4c911588d3da2567ef /src/add_tweakeyunrolled | |
| parent | 590637c9e555d6ba6b9b0e8e871d1ed926b49911 (diff) | |
| download | lilliput-ae-implem-1ea3b9a3fe91c54c9be7dd7014f3af0c861260c3.tar.xz | |
Adaptation du code de α₆
Diffstat (limited to 'src/add_tweakeyunrolled')
| -rw-r--r-- | src/add_tweakeyunrolled/tweakey.c | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/src/add_tweakeyunrolled/tweakey.c b/src/add_tweakeyunrolled/tweakey.c index cad50da..b2822b0 100644 --- a/src/add_tweakeyunrolled/tweakey.c +++ b/src/add_tweakeyunrolled/tweakey.c @@ -62,21 +62,6 @@ void tweakey_state_extract( } -static uint8_t _M1(uint8_t x) -{ - return x<<3 ^ x>>3; -} - -static uint8_t _M3(uint8_t x) -{ - return (uint8_t)(x<<3) >> 3; -} - -static uint8_t _M4(uint8_t x) -{ - return (uint8_t)(x<<2) >> 3; -} - static void _multiply_M(const uint8_t x[LANE_BYTES], uint8_t y[LANE_BYTES]) { y[7] = x[6]; @@ -149,12 +134,15 @@ static void _multiply_MR2(const uint8_t x[LANE_BYTES], uint8_t y[LANE_BYTES]) static void _multiply_MR3(const uint8_t x[LANE_BYTES], uint8_t y[LANE_BYTES]) { + uint8_t x_MR_4 = x[5] ^ x[6]<<3; + uint8_t x_MR2_4 = x[3]<<2 ^ x[6] ^ x[7]<<3; + y[0] = x[3] ^ x[4]>>3; - y[1] = x[4] ^ x[5]>>3 ^ _M3(x[6]); - y[2] = _M4(x[3]) ^ x[5] ^ _M1(x[6]) ^ _M3(x[7]); - y[3] = x[3]<<2 ^ x[6] ^ x[7]<<3; + y[1] = x[4] ^ x_MR_4>>3; + y[2] = x_MR_4 ^ x_MR2_4>>3; + y[3] = x_MR2_4; y[4] = x[0]<<3 ^ x[4]<<2 ^ x[7]; - y[5] = x[0] ^ x[5]<<2 ^ x[6]<<5; + y[5] = x_MR_4<<2 ^ x[0]; y[6] = x[1]; y[7] = x[2]; } |
