summaryrefslogtreecommitdiff
path: root/CHANGELOG.txt
diff options
context:
space:
mode:
authorGaetan Leplus <gaetan.leplus@airbus.com>2019-07-05 10:31:59 +0200
committerGaetan Leplus <gaetan.leplus@airbus.com>2019-07-05 10:31:59 +0200
commit6ecd47cadc92084dc3b56ae9d30698e756c518f2 (patch)
tree314c2c1c28d33446117a82de19297a7e65c230b5 /CHANGELOG.txt
parentc86d6796a4a3fcb25a4898897b0316b613bf86e1 (diff)
downloadlilliput-ae-implem-6ecd47cadc92084dc3b56ae9d30698e756c518f2.tar.xz
Simplification du format du changelog
Diffstat (limited to 'CHANGELOG.txt')
-rw-r--r--CHANGELOG.txt79
1 files changed, 32 insertions, 47 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 7d7413f..78e8e63 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,13 +1,33 @@
+This document summarizes the modifications brought by each version. Some modifications are tagged as follows:
+
+- [spec] when the modification is brought by a new revision of the specification,
+- [break] when the modification changes the implementation's output.
+
+A modification that has no tag corresponds to stylistic and/or structural changes that have no impact on test vectors.
+
+
v1.1
====
ref
---
-### Fixes
+- 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)
-These modifications change the algorithm's output.
+- Use size_t to iterate on arrays in lilliput_tbc_encrypt() and lilliput_tbc_decrypt().
+ (cipher.c)
+[spec][break]
- Change alpha coefficients in tweakey schedule to ensure lane 0 is updated between each round:
- lane 0: Id => M
- lane 1: M => M^2
@@ -18,35 +38,21 @@ These modifications change the algorithm's output.
- lane 6: M_R^3 (unchanged)
(multiplications.h, tweakey.c)
-### Cleanups
+add_felicsref
+-------------
-These modifications are structural and/or stylistic and do not change the algorithm's ouptut.
+See reference implementation. Further changes:
-- 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)
+- Introduce helper function _multiply() to reduce code duplication.
+ (tweakey.c)
-- Re-write _nonlinear_layer() and _linear_layer() functions to better resemble the specification.
+- Compute round-tweakeys on the fly to save on RAM, instead of storing all pre-computed round-tweakeys.
(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)
+See reference implementation. Further changes:
- Add constant macros KEY_LANES_NB and TWEAK_LANES_NB to make tweakey schedule code more legible.
(tweakey.c)
@@ -59,11 +65,7 @@ See reference implementation.
add_python
----------
-### Fixes
-
-See reference implementation.
-
-### Cleanups
+See [spec] and [break] changes in reference implementation. Further changes:
- Re-write tweakey multiplications to better resemble the specification.
(multiplications.py)
@@ -71,22 +73,10 @@ See reference implementation.
add_vhdl
--------
-### Reorganization
+See [spec] and [break] changes in reference implementation. Further changes:
- 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
@@ -97,9 +87,6 @@ add_vhdl
- 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)
@@ -108,9 +95,7 @@ add_vhdl
- Reduction of the number of signals.
(chiffrement.vhd)
-
- ### Optimizations
-
+
- Pipeline RoundTweakey extraction and round function.
(roundexe_lilliput.vhd, machine_etat_chiffrement.vhd)