crocs-muni / eacirc

Automatic problem solver based on circuit-like representation and genetic programming
13 stars 8 forks source link
block-ciphers cryptography hash-functions randomness-testing research-tool stream-ciphers

EACirc
Build Status Coverity status Latest release DOI

EACirc is a framework for automatic problem solving. It can be utilized as randomness testing tool similar to statistical batteries (NIST STS, Dieaharder, TestU01), for instance for analysis of cryptographic function outputs.

It uses supervised learning techniques based on metaheuristics to construct adapted distinguisher of two input data streams. The distinguisher can be represented as hardware-like circuits or algebraic polynomial.

The Framework

This repository contains EACirc core and code for data stream generation (mainly eSTREAM and SHA-3 candidates). Further tools are:

For more information and details see project wiki pages.

Quickstart

Requirements are gcc5 (clang3.6), git and cmake 3.4.

Sample build on Metacentrum

module add gcc-5.3.0 cmake-3.6.1
git clone --recursive git@github.com:crocs-muni/eacirc.git src
mkdir src/build
cd src/build
ccmake ..
make

Authors

The framework is developed at the Centre for Research on Cryptography and Security (formerly Laboratory of Security and Applied Cryptography), Masaryk University, Brno, Czech Republic.

Former participation: