Javascript CHaotic Encryption Key System.
This project was generated with the Angular Full-Stack Generator version 3.5.0.
A javascript (babel) implementation of jCHECKS of Archos Research (available here: https://github.com/Archos-Research). The main idea is to use co-evolving chaotic systems to generate secret keys. These keys are used to encrypt or decrypt messages. We want it to be as secure as a crypto-secure pseudo random number generator and to be syncronisable.
I have separated the app into services.
Contains the classes for the chaoticSystem and encapsulate the system into a Singleton. It contains theses classes: ChaoticSystem, Agent, RuleSets, Rule, Utils, PRNG
Contains the AES encrypter.
Websocket encapsulation service
This project is a proof of concept. I have done that mainly for learning purposes.
I am not a cryptographic or security expert. I cannot provide any warranty or guarantees if you choose to use this code.
I used yoeman (http://yeoman.io/) to generate the base of the project. I used the angular-fullstack generator (https://github.com/angular-fullstack/generator-angular-fullstack). The server is written in node-js with express. The client uses Angular-js (version 1). The whole project is written in babel to generate javascript, Jade (Now renamed to Pug) to generate HTML and Stylus to generate CSS.
Prerequisites
-
Node.js and npm Node ^4.2.3, npm ^2.14.7
-
Bower (
npm install --global bower
) -
Grunt (
npm install --global grunt-cli
)You can install it via npm with the following command:
npm install something.. (TODO)
Or you can download it and run:
npm install bower install
You can run the server on port 9000 with the following command:
grunt serve
Your browser should open a page at http//:localhost:9000
There is no unit tests for the moment. However, the Java implementation has been tested with the NIST SP 800-22 tests suite and a lot of other randomness tests. This javascript implementation has not been tested yet.
Running npm test
will run the unit tests with karma.
The whole project is not currently secure. I currently use ws protocol (Websockets) which is new and not secured over ssl. If you want to do something secure, start by using wss instead. Then I hav not (pen)tested the whole project for security holes.
I am currently the only one on the project, if you want to contribute, feel free to send me an e-mail at rousselm4@gmail.com.
This repositery is under GNU General Public License v3.0.