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.
This repository contains EACirc core and code for data stream generation (mainly eSTREAM and SHA-3 candidates). Further tools are:
- Randomness Testing Toolkit (RTT),
- tools for GRID computations
- Oneclick a tool for BOINC computation (deprecated)
For more information and details see project wiki pages.
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 email@example.com:crocs-muni/eacirc.git src mkdir src/build cd src/build ccmake .. make
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.
- Petr Švenda 2008-now (project lead, initial implementation)
- Jiří Novotný 2014-now (build system, CUDA, main developer)
- Michal Hajas 2015-now (Java bytecode emulator)
- Dušan Klinec 2012-now (polynomial distinguisher)
- Karel Kubíček 2014-now (TEA, metaheuristics)
- Ľubomír Obrátil 2014-now (RTT, Oneclick)
- Marek Sýs 2013-now (statistics evaluation, polynomials)
- Martin Ukrop 2012-now (framework model, refactoring, SHA-3 & CAESAR candidates testing, supporting tools)
- Milan Čermák 2012-2013 (CUDA)
- Ondrej Dubovec 2011-2012 (SHA-3 candidates testing)
- Matěj Prišťák 2011-2012 (object model and refactoring, XML support, eStream candidates testing)
- Zdenek Říha 2013-2016 (Java bytecode emulator)
- Tobiáš Smolka 2011-2012 (BOINC related support)