Working on a fancy Javascript graphics/animation to paint a picture of the operation of the CRC version 4.0

Version 4.0 stator structure is modular compared with versions 1 to 3. More details to follow.

Theory of operation for the

Chaotic Random Core Version 4.0

CRC diagram. CRC simulation.

The Chaotic Random Core is best viewed as a motor with one stator and two rotors.

Sorry no support.


The Chaotic Random Core

The CRC is a modular pseudo random number generator. It's internal state starts at 128 bits and has no theoreical upper limit. The only requirement is that the stages must be added in 128 bit increments. The Eristic Cryptographic Toolkit uses a CRC with eight security levels which repersent 512 to 4096 bits, in 512 bit increments.

The CRC has no limits on key length. It can be keyed manually from the console keyboard, or it can be keyed with a 2 gigabyte file. The CRC outputs a single eight bit byte at a time. All variables in the CRC are 8 bit bytes, so the CRC is endian neutral. Version 2 of the CRC has been sucessfully run on an Arduino 'Micro' embedded controller.

The basic sequence of operations of the CRC can be broken down as follows:

Detailed descriptions of the CRC components follow:

The design philsosophy of the Eristic Cryptographic Toolkit since the origonal version of Eris, has been to build a secure pseudo random number generator first, and then adapt it to real works cryptography uses. By focusing on generating good random numbers, a measurable metric can be established. The CRC has been, and will allways by 8 bit in nature. Being able to run in a limited environment (CPU and memory) was a design objective from the start of this project. Keeping the design simple enough to easily visualize helps with both development and analysis.

The CRC has evolved over time from it's neural network roots in version 1.0 of Eris. Version 4's modular system incorporates all of the reasearch and lessons learned in previous versions while staying true to the origional design objectives.

The NIST SHA-3 contest was my "official" start as a crypto geek. Eris 1.0 was never submitted for consideration as SHA-3 due to my paying job at the time having a deadline that was within two weeks of the SHA-3 submission deadline. Eris 1.0 would have been torn to shreads anyway, primiarially due to my inexperience and unfamiliarity with the subtletys of the subject of cryptography at the time. Over the next few years I tore Eris 1.0 to shreads on my own and finaly version 2.0 was produced.


When the Eristic Cryptographic Toolkit is built from source, Hera is compiled first. Once built, Hera is then invoked with the 'g' command line option which causes Hera to generate the 'C' header files which define the rotors for the rest of the binarys in the toolkit. When not used in the build process, Hera serves as a general purpose random number generator.


Eris is a hash function which can generate a variable length hash of a file. Valid hash lengths range from 1 to 512 bytes, depending on security level. If a security level of 1 is chosen, the max hash length is 64 bytes, if a security level of 8 is chosen, up to 512 bytes of hash can be generated.


Discordia is a stream cipher. It uses the CRC to generate a stream of random numbers that Discordia then XOR's against the plain text input.


Athena uses the CRC to "shuffle" the input file like a deck of cards. As long as the file lengths are different, an attacker attempting to XOR two files together encrypted using Discordia, with the same key, will be unable to extract any meaningfull information.

This link shows a graphic example of the problem that Athena attempts to solve.

The sequence of operations to shuffle a file will go something like this:

To un-shuffle, generate a pad file with the CRC keyed with the decrypt key and the file length. Index from the last byte of the file in reverse order as the shuffle procedure.


Harmonia is a key exchange protocall. During early development (pre. 1.0) of the single rotor version of Eris, the single rotor would "stall" from time to time. Harmonia takes advantage of this phenomenon using a single rotor CRC at each end of a insecure connunication channel to generate identical keys.


Aphrodite will be an authentication protocall.

Chaos Check

Chaos Check is a tool I'm hacking together to test the chi-squared distribution of the output of the CRC. As with the rest of the software on the site, it is a work in progress. In my experience, the chi-squared test seems to be the best indication of the CRC's performance.

Return to main page. Logo

link to