From ff1a325d96799d009e3813b7f7ff488a47508ca6 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Tue, 11 Dec 2018 11:28:51 +0100 Subject: Renommage des vecteurs du key schedule Plus facile pour suivre la spec. --- src/tweakey.c | 80 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/src/tweakey.c b/src/tweakey.c index d202dc4..6905372 100644 --- a/src/tweakey.c +++ b/src/tweakey.c @@ -43,16 +43,16 @@ void tweakey_state_extract( } -static void _multiply_M(const uint8_t old[LANE_BYTES], uint8_t new[LANE_BYTES]) +static void _multiply_M(const uint8_t X[LANE_BYTES], uint8_t Y[LANE_BYTES]) { - new[7] = old[6]; - new[6] = old[5]; - new[5] = old[4] ^ old[5]<<3; - new[4] = old[3] ^ old[4]>>3; - new[3] = old[2]; - new[2] = old[1] ^ old[6]<<2; - new[1] = old[0]; - new[0] = old[7]; + Y[7] = X[6]; + Y[6] = X[5]; + Y[5] = X[4] ^ X[5]<<3; + Y[4] = X[3] ^ X[4]>>3; + Y[3] = X[2]; + Y[2] = X[1] ^ X[6]<<2; + Y[1] = X[0]; + Y[0] = X[7]; } static const uint8_t M_1[256] = { @@ -90,58 +90,58 @@ static const uint8_t M_1[256] = { 0xdf, 0xd7, 0xcf, 0xc7, 0xff, 0xf7, 0xef, 0xe7 }; -static void _multiply_M2(const uint8_t old[LANE_BYTES], uint8_t new[LANE_BYTES]) +static void _multiply_M2(const uint8_t X[LANE_BYTES], uint8_t Y[LANE_BYTES]) { - new[7] = old[5]; - new[6] = old[4] ^ old[5]<<3; - new[5] = old[3] ^ M_1[old[4]] ^ old[5]<<6; - new[4] = old[2] ^ old[3]>>3 ^ old[4]>>6; - new[3] = old[6]<<2 ^ old[1]; - new[2] = old[5]<<2 ^ old[0]; - new[1] = old[7]; - new[0] = old[6]; + Y[7] = X[5]; + Y[6] = X[4] ^ X[5]<<3; + Y[5] = X[3] ^ M_1[X[4]] ^ X[5]<<6; + Y[4] = X[2] ^ X[3]>>3 ^ X[4]>>6; + Y[3] = X[6]<<2 ^ X[1]; + Y[2] = X[5]<<2 ^ X[0]; + Y[1] = X[7]; + Y[0] = X[6]; } -static void _multiply_M3(const uint8_t old[LANE_BYTES], uint8_t new[LANE_BYTES]) +static void _multiply_M3(const uint8_t X[LANE_BYTES], uint8_t Y[LANE_BYTES]) { uint8_t tmp[LANE_BYTES]; - memcpy(tmp, old, LANE_BYTES); + memcpy(tmp, X, LANE_BYTES); - _multiply_M2(old, tmp); - _multiply_M(tmp, new); + _multiply_M2(X, tmp); + _multiply_M(tmp, Y); } -static void _multiply_MR(const uint8_t old[LANE_BYTES], uint8_t new[LANE_BYTES]) +static void _multiply_MR(const uint8_t X[LANE_BYTES], uint8_t Y[LANE_BYTES]) { - new[0] = old[1]; - new[1] = old[2]; - new[2] = old[3] ^ old[4]<<3; - new[3] = old[4]; - new[4] = old[5] ^ old[6]>>3; - new[5] = old[6] ^ old[3]>>2; - new[6] = old[7]; - new[7] = old[0]; + Y[0] = X[1]; + Y[1] = X[2]; + Y[2] = X[3] ^ X[4]<<3; + Y[3] = X[4]; + Y[4] = X[5] ^ X[6]>>3; + Y[5] = X[6] ^ X[3]>>2; + Y[6] = X[7]; + Y[7] = X[0]; } -static void _multiply_MR2(const uint8_t old[LANE_BYTES], uint8_t new[LANE_BYTES]) +static void _multiply_MR2(const uint8_t X[LANE_BYTES], uint8_t Y[LANE_BYTES]) { uint8_t tmp[LANE_BYTES]; - memcpy(tmp, old, LANE_BYTES); + memcpy(tmp, X, LANE_BYTES); - _multiply_MR(old, tmp); - _multiply_MR(tmp, new); + _multiply_MR(X, tmp); + _multiply_MR(tmp, Y); } -static void _multiply_MR3(const uint8_t old[LANE_BYTES], uint8_t new[LANE_BYTES]) +static void _multiply_MR3(const uint8_t X[LANE_BYTES], uint8_t Y[LANE_BYTES]) { uint8_t tmp[LANE_BYTES]; - memcpy(tmp, old, LANE_BYTES); + memcpy(tmp, X, LANE_BYTES); - _multiply_MR2(old, tmp); - _multiply_MR(tmp, new); + _multiply_MR2(X, tmp); + _multiply_MR(tmp, Y); } -typedef void (*matrix_multiplication)(const uint8_t old[LANE_BYTES], uint8_t new[LANE_BYTES]); +typedef void (*matrix_multiplication)(const uint8_t X[LANE_BYTES], uint8_t Y[LANE_BYTES]); static const matrix_multiplication ALPHAS[6] = { _multiply_M, -- cgit v1.2.3