v1.1 ==== 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 ------------- TODO add_tweakeyloop --------------- TODO add_python ---------- TODO add_vhdl -------- TODO v1.0 ==== Initial release to round 1 of the LWC standardization process.