diff options
| author | Kévin Le Gouguec <kevin.legouguec@airbus.com> | 2018-12-11 11:28:51 +0100 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@airbus.com> | 2018-12-11 11:29:47 +0100 |
| commit | ff1a325d96799d009e3813b7f7ff488a47508ca6 (patch) | |
| tree | be2b19e65a16c41f0ab35d0f4d63f56163445547 /src | |
| parent | 935351af35068d97611788b2092ef9acd337ca30 (diff) | |
| download | lilliput-ae-implem-ff1a325d96799d009e3813b7f7ff488a47508ca6.tar.xz | |
Renommage des vecteurs du key schedule
Plus facile pour suivre la spec.
Diffstat (limited to 'src')
| -rw-r--r-- | src/tweakey.c | 80 |
1 files 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, |
