Skip to content
/ CASCADA Public

A tool to evaluate the security of cryptographic primitives against distinguishing attacks with bit-vector SMT solvers.

License

Notifications You must be signed in to change notification settings

ranea/CASCADA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CASCADA

CASCADA (Characteristic Automated Search of Cryptographic Algorithms for Distinguishing Attacks) is a Python 3 library to evaluate the security of cryptographic primitives, specially block ciphers, against distinguishing attacks with bit-vector SMT solvers.

A detailed introduction of CASCADA can be found in the paper Characteristic Automated Search of Cryptographic Algorithms for Distinguishing Attacks (CASCADA).

CASCADA implements several SMT-based automated search methods to search for characteristics and zero-probability properties to evaluate the security of ciphers against:

  • differential cryptanalysis
  • related-key differential cryptanalysis
  • rotational-XOR cryptanalysis
  • impossible-differential cryptanalysis
  • related-key impossible-differential cryptanalysis
  • impossible-rotational-XOR cryptanalysis
  • linear cryptanalysis
  • zero-correlation cryptanalysis

The online documentation of CASCADA can be found here.

Installation

CASCADA requires Python 3 (>= 3.10) and the following Python libraries:

  • cython
  • sympy
  • bidict
  • cffi
  • wurlitzer
  • pySMT

These libraries can be easily installed with pip:

pip install cython sympy bidict cffi wurlitzer pysmt

CASCADA also requires an SMT solver supporting the bit-vector theory, installed through pySMT. For example, the SMT solver boolector can be installed through pySMT by

pysmt-install --btor

Optionally, hypothesis can be installed to run the tests, and sphinx and sphinx-rtd-theme to build the documentation.

Citation

If you use CASCADA, please consider citing the paper:

@article{DBLP:journals/iet-ifs/RaneaR22,
  author     = {Adri{\'{a}}n Ranea and Vincent Rijmen},
  title      = {Characteristic automated search of cryptographic algorithms
                for distinguishing attacks ({CASCADA})},
  journal    = {{IET} Inf. Secur.},
  volume     = {16},
  number     = {6},
  pages      = {470--481},
  year       = {2022},
  doi        = {https://doi.org/10.1049/ise2.12077}
}

About

A tool to evaluate the security of cryptographic primitives against distinguishing attacks with bit-vector SMT solvers.

Topics

Resources

License

Stars

Watchers

Forks