This repository is for parsing the input [EasyDC] programs of block ciphers and then performing the security analysis of block ciphers against differential cryptanalysis. It supports the following functions:
- Interpreter of EasyBC.
- SMT-based method for determiningg branch numbers of various cryptographic operations.
- Modeling differential propagations in S-boxes.
- MaxSMT-based method for determining the encoding of all probabilities in a given S-box's differential distribution table(DDT).
- Security analysis of block ciphers writing in EasyBC against differential cryptanalysis.
flex, bison, jsoncpp, Gurobi and Z3
You should first prepare the preparatory environment, then set up your Gurobi environment in the 'CMakeLists.txt' file, and then run the following commands to build the project:
mkdir build
cmake CMakeList.txt -B build
cd build; make
You can get the help information by executing:
./EasyBC -h
The full version of our paper is given here.