|
1 | 1 |  |
2 | | -[](https://travis-ci.org/crocs-muni/eacirc) |
3 | | -[](https://scan.coverity.com/projects/crocs-muni-eacirc) |
4 | | -EACirc is a framework for automatic problem solving. It uses supervised learning techniques based on evolutionary algorithms to construct and optimize software circuits in order to solve the given problem. |
| 2 | +[](https://travis-ci.org/crocs-muni/eacirc) [](https://scan.coverity.com/projects/crocs-muni-eacirc) |
5 | 3 |
|
6 | | -Problems are solved by the means of hardware-like circuits - small, software-emulated circuits consisting of gates and interconnecting wires transforming input data into desired output data. The layout of these circuits is designed randomly at first. They are subsequently optimized in the process of supervised learning (inputs are provided alongside with correct outputs) until the the desired success rate is achieved. |
| 4 | +EACirc is a framework for automatic problem solving. It can be utilized as randomness testing tool similar to statistical bateries (NIST STS, Dieaharder, TestU01), for instance for analysis of cryptografical function outputs. |
7 | 5 |
|
8 | | -The learning stage incorporates genetic programming principles: |
9 | | -* a handful of these circuits (circuit 'population') is considered simultaneously; |
10 | | -* each individual circuit is evaluated on the data and its 'fitness' is determined by comparison of its outputs with the expected outputs; |
11 | | -* individuals with low 'fitness' are deleted (survival of the fittest); |
12 | | -* individuals with high 'fitness' are altered ('sexiual crossover' and a small chance of 'mutation'); |
13 | | -* the process starts over with this new 'generation' of circuits. |
| 6 | +It uses supervised learning techniques based on metaheuristics to construct adapted distinguisher of two input data streams. The distinguisher can be represented as harware-like circuits or algebraic polynomial. |
14 | 7 |
|
15 | 8 | ## The Framework |
16 | 9 |
|
17 | | -The EACirc framework consists of main application and several supporting tools and scripts. The modular design allows for easy addition of new problem modules ('projects') and output interpretation modules ('evaluators'). Currently, the project has following main parts: |
18 | | -* **EACirc** - the main application, constructs circuits using evolutionary principles. |
19 | | -* **OneClick** - an automatic work generator for extensive computations in BOINC infrastructure |
20 | | -* **utils** - set of scripts and small programs used for results processing. |
| 10 | +This repository contains EACirc core and code for data stream generaion (mainly eSTREAM and SHA-3 candidates). |
| 11 | +Further tools are: |
| 12 | +* [Randomness Testing Toolkit (RTT)](https://github.com/crocs-muni/randomness-testing-toolkit), |
| 13 | +* [tools for GRID computations](https://github.com/crocs-muni/eacirc-utils) |
| 14 | +* [Oneclick](https://github.com/crocs-muni/oneclick) a tool for BOINC computation (deprecated) |
21 | 15 |
|
22 | 16 | For more information and details see [project wiki pages](http://github.com/petrs/EACirc/wiki/Home). |
23 | 17 |
|
24 | 18 | ## Authors |
25 | 19 | The framework is developed at the [Centre for Research on Cryptography and Security (formerly Laboratory of Security and Applied Cryptography)](https://www.fi.muni.cz/research/crocs/), [Masaryk University](http://www.muni.cz/), Brno, Czech Republic. |
26 | 20 |
|
27 | | -* **Michal Hajas** 2015-now (Java bytecode emulator) |
28 | | -* **Karel Kubíček** 2014-now (TEA) |
29 | | -* **Jiří Novotný** 2014-now (build system, CUDA core implementation) |
30 | | -* **Ľubomír Obrátil** 2014-now (automation tools) |
31 | | -* **Zdenek Říha** 2013-now (Java bytecode emulator) |
32 | | -* **Marek Sýs** 2013-now (project concept, results interpretation) |
33 | 21 | * **Petr Švenda** 2008-now (project lead, initial implementation) |
34 | | -* **Martin Ukrop** 2012-now (framework model, refactoring, SHA-3 candidates testing, supporting tools) |
| 22 | +* **Jiří Novotný** 2014-now (build system, CUDA, main developer) |
| 23 | +* **Michal Hajas** 2015-now (Java bytecode emulator) |
| 24 | +* **Dušan Klinec** 2012-now (polynomial distinguisher) |
| 25 | +* **Karel Kubíček** 2014-now (TEA, metaheuristics) |
| 26 | +* **Ľubomír Obrátil** 2014-now (RTT, Oneclick) |
| 27 | +* **Marek Sýs** 2013-now (statistics evaluation, polynomials) |
35 | 28 |
|
36 | 29 | Former participation: |
37 | | -* **Milan Čermák** 2012-2013 (CUDA support) |
38 | | -* **Dušan Klinec** 2012-2015 (polynomial circuits, BOINC related support) |
| 30 | +* **Milan Čermák** 2012-2013 (CUDA) |
39 | 31 | * **Ondrej Dubovec** 2011-2012 (SHA-3 candidates testing) |
40 | 32 | * **Matěj Prišťák** 2011-2012 (object model and refactoring, XML support, eStream candidates testing) |
| 33 | +* **Zdenek Říha** 2013-2016 (Java bytecode emulator) |
41 | 34 | * **Tobiáš Smolka** 2011-2012 (BOINC related support) |
| 35 | +* **Martin Ukrop** 2012-2016 (framework model, refactoring, SHA-3 candidates testing, supporting tools) |
42 | 36 |
|
0 commit comments