summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaetan Leplus <gaetan.leplus@airbus.com>2019-07-05 09:49:36 +0200
committerGaetan Leplus <gaetan.leplus@airbus.com>2019-07-05 09:49:36 +0200
commit78ac6d448a77d6047f82c136633b251ddb820fca (patch)
treee75f50f160248b84e4514bc611fbc6ff56da3a0f
parent26695bc39ab84d42897b7e516b3c66ddf3385937 (diff)
downloadlilliput-ae-implem-78ac6d448a77d6047f82c136633b251ddb820fca.tar.xz
Ajout du changelog pour add_vhdl
-rw-r--r--CHANGELOG.txt116
1 files changed, 115 insertions, 1 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index d836ba6..7d7413f 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,7 +1,121 @@
v1.1
====
-TODO
+ref
+---
+
+### Fixes
+
+These modifications change the algorithm's output.
+
+- Change alpha coefficients in tweakey schedule to ensure lane 0 is updated between each round:
+ - lane 0: Id => M
+ - lane 1: M => M^2
+ - lane 2: M^2 => M^3
+ - lane 3: M^3 => M^4
+ - lane 4: M_R (unchanged)
+ - lane 5: M_R^2 (unchanged)
+ - lane 6: M_R^3 (unchanged)
+ (multiplications.h, tweakey.c)
+
+### Cleanups
+
+These modifications are structural and/or stylistic and do not change the algorithm's ouptut.
+
+- Introduce helper function copy_block_index() to make tweak-building functions more legible.
+ (lilliput-ae-utils.h, lilliput-i.c, lilliput-ii.c)
+
+- Initialize ΘCB3 tweak with nonce instead of copying the latter into the latter repeatedly.
+ (lilliput-i.c)
+
+- Re-write _nonlinear_layer() and _linear_layer() functions to better resemble the specification.
+ (cipher.c)
+
+- Extract tweakey multiplications into their own header file, so that other implementations can make more targeted changes.
+ (constants.h, multiplications.h, tweakey.c)
+
+add_threshold
+-------------
+
+### Fixes
+
+See reference implementation.
+
+### Cleanups
+
+See reference implementation. Further cleanups:
+
+- Use size_t to iterate on arrays in lilliput_tbc_encrypt() and lilliput_tbc_decrypt().
+ (cipher.c)
+
+- Add constant macros KEY_LANES_NB and TWEAK_LANES_NB to make tweakey schedule code more legible.
+ (tweakey.c)
+
+add_tweakeyloop
+---------------
+
+See reference implementation.
+
+add_python
+----------
+
+### Fixes
+
+See reference implementation.
+
+### Cleanups
+
+- Re-write tweakey multiplications to better resemble the specification.
+ (multiplications.py)
+
+add_vhdl
+--------
+
+### Reorganization
+
+- A more synthetical organisation was chosen. Indeed, Lilliput-II only need encryption and Lilliput-I need encryption and decryption, so LilliputTBCencrypt is always used for lilliput-I and LilliputTBCencryptdecrypt for Lilliput-II. And LilliputTBCdecrypt is no longer described because no version uses it.
+
+### Fixes
+
+- For all vhdl versions we change coefficients in tweakey schedule to ensure lane 0 is updated between each encryption round:
+ - lane 0: Id => M
+ - lane 1: M => M^2
+ - lane 2: M^2 => M^3
+ - lane 3: M^3 => M^4
+ - lane 4: M_R (unchanged)
+ - lane 5: M_R^2 (unchanged)
+ - lane 6: M_R^3 (unchanged)
+ (multiplication.vhd)
+
+- For Lilliput-I we change coefficients in tweakey schedule to ensure lane 0 is updated between each decryption round:
+ - lane 0: Id => inv(M)
+ - lane 1: inv(M) => inv(M)^2
+ - lane 2: inv(M)^2 => inv(M)^3
+ - lane 3: inv(M)^3 => inv(M)^4
+ - lane 4: M_R (unchanged)
+ - lane 5: M_R^2 (unchanged)
+ - lane 6: M_R^3 (unchanged)
+ (inv_multiplication.vhd)
+
+
+ ### Cleanups
+
+ - Merge Sbox in one file.
+ (sbox.vhd, inner_sbox_a.vhd, inner_sbox_b, vhd,inner_sbox_c.vhd)
+
+ - Create registers in file roundexe_lilliput.vhd.
+ (state_key_register.vhd, state_register.vhd, roundexe_lilliput)
+
+ - Reduction of the number of signals.
+ (chiffrement.vhd)
+
+ ### Optimizations
+
+ - Pipeline RoundTweakey extraction and round function.
+ (roundexe_lilliput.vhd, machine_etat_chiffrement.vhd)
+
+ - Isolate input and output from critical path.
+ (roundexe_lilliput.vhd, machine_etat_chiffrement.vhd)
v1.0
====