Cryptosystem ME6

Cryptosystem ME6 is a file encryption program, using a symmetric key, developed by the author of this website, Peter J. Meyer. The program and the user manual are available on the author's website at Cryptosystem ME6. The user interface for this program was written in Visual Basic 6 (the source code for this is currently unpublished) and the underlying encryption code was written in C (see below).

The method of encryption and decryption of a single file is described at The Cryptosystem ME6 Encryption Process. This algorithm is proprietary (property of the author of this website). It is based on the MD5 Message Digest Algorithm, developed by Ron Rivest. This program includes code for this algorithm written by Colin Plumb in 1993 (for which no copyright is claimed).

Cryptosystem ME6 uses five DLLs (dynamic link libraries) which were all written in C by the present author. Three of these DLLs are not part of the code which performs encryption and decryption. The fourth DLL, namely, md52dll.dll, consists of code for producing an MD5 message digest of a block of bytes. The fifth DLL, namely, me6e30.dll, contains the code which, based on md52dll.dll, performs the encryption and decryption.

A File Comparison Utility

You can download from this site a program that demonstrates the use of the DLL md52dll.dll. Click on this link — MD5 File Comparison — to download the installation program. Click on the downloaded file — mdfc83_setup.exe — to install the program. After two files have have been specified the program reports (based on their MD5 signatures) if they are the same or different).

If the files are identical then the output (with the MD5 signature) will be "The files are the same".

Here is the C source code for the DLL md52dll.dll.

C Source Code for Cryptosystem ME6

As stated above, Cryptosystem ME6 uses five DLLs, one of which is me6e30.dll, which contains the code for performing encryption and decryption of a file. The source code for this DLL consists of eight modules. Apart from the header file and the code for md52dll.dll, the other modules are:

me5.h Header file
me5.c DLL entry point and buffer allocation
compr.c Compress a buffer of n unsigned ints
fops2.c Encrypt/decrypt a file.
fops3.c Encrypt/decrypt a block.
key.c Create a priming key for each block then subsequent keys
rand.c Generate pseudorandom numbers
shuffle.c Shuffle a buffer of chars

Clink on the file names above for the C code, which contains comments. See also the description of the Cryptosystem ME6 encryption algorithm at Cryptosystem ME6.

Home Page of this Hermetic Systems Website
Home Page of the other Hermetic Systems Website