Tools-for-Cryptanalysis
Crypto-Tools
A curated list of cryptography and cryptanalysis related tools and libraries.
Motivation
The motivation of curating a list of cryptography and cryptanalysis related tools was born from desire to have a centralized point where all such tools can be found. Attempts will be made to keep it updated as frequently as possible. If you find any tools/library that are missing feel free to contribute.
Contents
- Lineartrails
- KeccakTools
- S-Box Mixed-Integer Linear Programming tool
- HashClash
- ARX Toolkit
- Information Set Decoding
- Linear Hull Cryptanalysis PRESENT
- CodingTool Library
- Grain of Salt
- SYMAES
- Automated Algebric Cryptanalysis
- Algebraic Preimage Attack on Hash functions
- Lex Toolkit
- Yafu
- Msieve
- CADO-NFS
- sha1collisiondetection
- S-function Toolkit
- SIMON/SPECK Cryptanalysis
- CryptoSMT
- YAARX
- CTF Tool
- SHA-1 GPU near-collision attacks
- Improved Conditional Cube Attacks on Keccak Key Modes with MILP Method
- Conditional Cube Attack on Round-Reduced ASCON
- Yoyo Tricks with AES
- sboxgates
- SoCracked key-recovery attack on SoDark
- Cryptanalysis of ISEA
- Bucketing Computational Analysis Attack
- SPARX Differential Attacks
- Attack on 721-round Trivium
- MILP on SPECK
- SoCracked
- Peigen SBoxes
- Cryptanalysis of Persichetti’s One-Time Signature (OTS)
- Key-dependent cube attack on Frit-AE
- Extended Expectation Cryptanalysis on Round-reduced AES and Small-AES
- Cryptanalysis of MORUS
- Boomerang probablities on Kiasu-BC
- Mixture Integral Attacks on Reduced-Round AES
- Integral Cryptanalysis of CRAFT
- Integral Cryptanalysis of MIBS
- License
lineartrails
Tool to automatically search for linear characteristics
- Developers: Christoph Dobraunig, Maria Eichlseder, Florian Mendel
- Official Repository
A tool that searches for linear characteristics for given S-Box. The tool was born
from the paper Heuristic Tool for Linear Cryptanalysis with Applications to CAESAR Candidates.
KeccakTools
A set of C++ classes that can help analyze the Keccak sponge function family
- Developers: Guido Bertoni, Joan Daemen, Michael Peeters, Gilles Van Assche
- Direct download
- Official website
KeccakTools is a set of C++ classes aimed as an assistant in analyzing the sponge function family Keccak
. These classes and methods were used to obtain the results reported in the paper Differential propagation analysis of Keccak
presented at FSE 2012 (available here IACR ePrint 2012/163).
S-Box Mixed-Integer Linear Programming tool
Toolkit for Counting Active S-boxes using Mixed-Integer Linear Programming (MILP)
- Developer: Nicky Mouha
- Direct download
- Location within this repository
This toolkit can be used to prove the security of cryptographic ciphers against linear and differential cryptanalysis. This toolkit generates Mixed-Integer Linear Programming problem which counts the minimum number of (linearly or differentially) active S-boxes for a given cipher. The toolkit currently supports AES and xAES (both in the single-key and related-key setting), as well as Enocoro-128v2 (in the related-key setting). The paper that introduced this toolkit is available online.
HashClash
Framework for MD5 & SHA-1 Differential Path Construction and Chosen-Prefix Collisions for MD5
- Developer: Marc Stevens
- Official website
This framework contains tools for the constructions of differential paths for MD5 and SHA-1, including chosen-prefix collisions for MD5.
ARX Toolkit
The ARX toolkit is a set of tools to study ARX ciphers and hash functions
- Developer: Gaetan Leurent
- Official website
The ARX toolkit is a set of tools to study ARX ciphers and hash functions. This toolkit was presented at the SHA-3 conference in March 2012.
Information Set Decoding
A tool for information set decoding
- Developers: Unknown?
- Official source
- Location within this repo
This library, written in C++ that is efficient at finding low weight codewords of a linear code using information set decoding.
Linear Hull Cryptanalysis of PRESENT
A tool to compute linear hulls for PRESENT cipher
- Developer: Bingsheng Zhang
- Direct download
- Paper
- Location within this repo
This tool computes linear hulls for the original PRESENT cipher. It confirms and even improves on the predicted bias (and the corresponding attack complexities) of conventional linear relations based on a single linear trail.
CodingTool Library
Tool for cryptanalysis based on coding theory
- Developer: Tomislav Nad
- Direct download
- Official website
- Location within this repo
The CodingTool library is a collection of tools to use techniques from coding theory in cryptanalysis. The core part is an implementation of a probabilistic algorithm to search for code words with low Hamming weight. Additional functionalities like shortening and puncturing of a linear code or adding a weight to each bit of a code word are implemented. Furthermore, the library provides data structures to assist the user in creating a linear code for a specific problem. An easy to use interface to the provided algorithms, powerful data structures and a command line parser reduces the implementation work of a cryptanalyst to a minimum.
Grain of Salt
An automated way to test stream ciphers through SAT solvers
- Developer: Mate Soos
- Official website
- Location within this repo
Grain of Salt is a tool developed to automatically test stream ciphers against standard SAT solver-based attacks. The tool takes as input a set of configuration options and the definition of each filter and feedback function of the stream cipher. It outputs a problem in the language of SAT solvers describing the cipher. The tool can automatically generate SAT problem instances for Crypto-1, HiTag2, Grain, Bivium-B and Trivium.
SYMAES
A Fully Symbolic Polynomial System Generator for AES-128
- Developers: Vesselin Velichkov, Vincent Rijmen, Bart Preneel
- Paper
SYMAES is a software tool that generates a system of polynomials in GF(2), corresponding to the round transformation and key schedule of the block cipher AES-128.
Automated Algebraic Cryptanalysis
A simple tool for the automatic algebraic cryptanalysis of a large array of stream- and block ciphers
- Developer: Paul Stankovski
- Official website
- Direct download: Windows Executable, Linux Executable, C code
A simple tool for the automatic algebraic cryptanalysis of a large array of stream and block ciphers. Three tests have been implemented and the best results have led to continued work on a computational cluster.
Algebraic Preimage Attack on Hash functions (AlPAtH)
A software framework AlPAtH (Algebraic Preimage Attack on Hash functions) to run algebraic attacks on hash function
- Developer: Luk Bettale
- Official website
- Location within this repo
AlPAtH is a software framework to run algebraic attacks on hash functions. This framework is intended to run algebraic attacks on hash functions, but could be extended to any kind of ciphers (block, stream). It provides a framework to generate equations, solve these equations and interpret the results.
Lex Toolkit
A Tool for Algebraic Analysis of Stream Cipher LEX
- Developer: V. Velichkov, V. Rijmen, and B. Preneel
- Official Repository
- Location within this repo
The Lex Toolkit is a collection of Python programs for the computer algebra system Sage. The programs generate Boolean algebraic equations for a small-scale version of stream cipher LEX.
Yafu (Yet Another Factorization Utility
YAFU software that has implemented integer factoring algorithms
YAFU (with assistance from other free software) uses the most powerful modern algorithms (and implementations of them) to factor input integers in a completely automated way. Useful for RSA attacks.
Msieve
Useful library for RSA attacks
Msieve is a C library implementing a suite of algorithms to factor large integers. It contains an implementation of the SIQS and GNFS algorithms. Useful for RSA attacks.
CADO-NFS
Toolkit for NFS verification