/EasyBC

Tool chains of EasyBC

Primary LanguageC

EasyBC

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.

Quick Start

Preparatory Environment:

flex, bison, jsoncpp, Gurobi and Z3

Building

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

Usage

You can get the help information by executing:

./EasyBC -h

Full version

The full version of our paper is given here.