This is an implementation of a differential attack on a round-reduced version of the KLEIN block cipher, achieving key recovery. The attack is implemented purely in C, with the option to use OpenMP to parallelize the brute-force phase.
On an AMD Ryzen 7 4700U (8 cores), the attack takes around 5 seconds for 5 rounds and around 3 minutes for 6 rounds.
A full report is available here.
The differential is based on this paper. The original KLEIN implementation by Gong Zheng is used, which is also available at this repository.
git clone https://github.com/lcian/klein-cryptanalysis.git
cd klein-cryptanalysis/src
$EDITOR config.h # set the master key and the number of rounds
make
./attack