Dear authors, dear all,The current reference impl
ementation of KEM LOTUS128 fails to achieve CCA security.
Indeed, similarly to Odd Manhattan, even though the verification of the ciphertext is performed, when it fails, the shared secret is not modified. As such, it is also possible to run a new CCA attack where one discards the return flag and exploits what is in ss to recover the matrix S row by row.
Find attached an attack script to be put in the Reference_Implementation/kem/lotus128/ directory and to run as follows:
$ gcc -O3 -lcrypto lwe-arithmetics.c crypto.c rng.c pack.c sampler.c kem.c cpa-pke.c attack.c -o attack
$ ./attack
(Note that you also need to add the files rng.c and rng.h from NIST.)
This attack can be avoided if proper action is taken in case of failure.
Kind regards,
Tancrède Lepoint.
PS: I did not try, but this attack may apply directly to kem/lotus192 and kem/lotus256