Tags

, , , , , , , , , , , , ,

XeroCrypt has been an ongoing project I started some months ago to create a modular cryptographic system. It’s not suitable (yet) for commercial deployment, but hopefully some people will find the code useful for their own projects.

The latest release includes the following three modules:
* XOR Encryption
* RSA
* Triple-DES

Running the Application
The XeroCrypt12.zip archive, available for download at SourceForge.net, contains the project source code, screenshots, a README file and the executable application itself. To run the XeroCrypt application, simply extract the file XeroCrypt12.exe and run it like any other executable.

The Triple-DES Encryption Module
This is the first module in this application to use .NET’s cryptographic libraries instead of mathematical operations created from scratch. There are two reasons for this. Visual Basic isn’t so good for ASCII text to binary conversion, and the hardcore mathematical stuff is better coded in C++.
The number of rounds in DES and its successor also makes coding this module impractical here, when we could instead call existing libraries for performing the operations.

The RSA Encryption Module
Much work needs to be done on this module to enable it to generate random primes and correctly perform the mathematical operations.

The XOR Encryption Module
This module demonstrates the conversion of ASCII text into a binary plaintext stream and a keystream. These are XORed together to generate the ciphertext stream, which is converted into ASCII ciphertext (the encrypted message).

To Do
XeroCrypt isn’t a finished product by any means. I’m regularly making improvements and additions to the software.

* The XOR Encryption module works reasonably well, and most bugs have been sorted.
* The RSA Encryption module still needs much work, in particular to turn the RSA algorithm into working VB code, and to enable the module to generate random prime numbers.
* Code to convert between ASCII text and binary in the RSA module.
* The software application itself is still missing a Random Number Generator (RNG). This should be present in the next release.

The Next Step
Future versions of XeroCrypt should include proper file encryption and the ability to export encrypted messages, which would make it a useful client-side system for encrypting emails along with any attachments before sending them. Even better, the application currently runs from a USB drive without any installation required, making XeroCrypt a very portable solution.
In the longer term, I’m hoping to develop this into a full commercially-deployable secure communications and storage system.