HardEncrypt logo

"When pretty good privacy isn't good enough."
"When you don't even want the NSA to know."
Bug fix (source only) version 1.1b now available
A new encryption package featuring a completely uncrackable encryption scheme. (No, we didn't say virtually uncrackable...)

This free package contains three pieces of software:
GenKeyFile-- generates a series of key files from a user-provided seed file.
HardEncrypt-- encrypts any kind of file.
HardDecrypt-- decrypts a file encrypted by HardEncrypt.

Nothing new, nothing revolutionary...

This package utilizes an utterly simple one-time pad encryption scheme. As simple as it may be, a symmetric, one-time pad scheme is theoretically the best encryption scheme. This scheme has been avoided in many popular internet encryption packages because it is not as convenient as a public-key encryption scheme.
However, when you really want to ensure that no third party is able to read an intercepted message, convenience isn't the main issue.

This package offers everyone (from novices to experts) a completely secure encryption alternative. No special hardware is required, though a sound card is recommended for generating key seed files.

All three programs were written in C++ using only ANSI standard library calls. This means that the package is completely portable and can be compiled and used on virtually every platform. These tools run in a console interface and don't require a windowing environment.

Currently, the package has been compiled for several different platforms. It will be compiled for more platforms in the future. This is an open-source package, so if binaries aren't available for your platform, you can compile them yourself.

Just incase you don't believe the math behind HardEncrypt's uncrackability, HardenedCriminal software is proposing the following challenge:

We've written a simple message and encrypted it using HardEncrypt. The original message and the key file that was used to encrypt it have been destroyed. However, we remember what the message said, and it actually gives away certain secrets that could potentially damage us.

If you doubt HardEncrypt's uncrackability, or if you think you're an expert code cracker, then we challenge you to decrypt this simple message. We invite everyone (even our friends at the NSA) to try to crack our encryption.

If you can crack this message, send the decrypted message to jcr13@cornell.edu. We will send you a money order for $500 US. (It may not sound like much, but it's all we can afford.)

There is no time limit on this challenge.

The encrypted message:

The message was a 752 byte ASCII text file with Unix line ends.
The message contained a whimsical poem written in English.

The cyphertext is a 752 byte file. It is being transferred as a binary file to preserve line end characters that no longer represent line ends (the encryption can map other character bytes to line end bytes). However, after downloading in binary mode, the file can be viewed by an ASCII text editor.

Good luck! ;)

NOTE: an important bug fix for GenKeyFile (bug found by Stephan Rudlof) is only available in the source version 1.1b (see below). To get this fix, you will need to compile the GenKeyFile.cpp source for yourself.

HardEncrypt.sit -- MacOS PPC applications in a stuffit archive. (637 K) (ver. 1.1)

HardEncrypt.zip -- Win32 (Win95, 98, NT) executables in a zip archive. (66 K) (ver. 1.1)

HardEncryptLxPPC.tar.gz -- LinuxPPC executables tarred and gziped. (9 K) (ver. 1.1)

HardEncryptLxX86.tar.gz -- Red Hat Linux (6.0) executables tarred and gziped. (121 K) (ver. 1.1) --Compiled by Eric Fosdike

HardEncryptBePPC.tar.gz -- BeOS PPC executables tarred and gziped. (6 K) (ver. 1.1)

HardEncryptBeX86.tar.gz -- BeOS X86 executables tarred and gziped. (10 K) (ver. 1.1)

HardEncryptFreeBSD.tar.gz -- FreeBSD X86 executables tarred and gziped. (47 K) (ver. 1.1)

Note: the MacOS archive is around 8 times larger than the Win32 archive. This is due to the fact that the Win32 platform has a built-in console (the DOS or Command prompt), while MacOS does not. The library that provides a console has to be linked right in with the Mac application. This will all change with OSX, however, which will have a built-in prompt.

Using the HardEncrypt package

How it works

Why it's uncrackable
(or, why it's better than public key schemes--RSA, PGP, etc.)

Tips for good key seed files

Tips for specific platforms (BeOS, MacOS...)

Version history

(get .txt files if your browser doesn't like .cpp extensions)

GenKeyFile.cpp -or- GenKeyFile.txt (contains important 1.1b bug fix)

HardEncrypt.cpp -or- HardEncrypt.txt

HardDecrypt.cpp -or- HardDecrypt.txt

If you'd like to compile HardEncrypt for some flavor of Unix but don't know how:

Save the source files with the names listed on the website (e.g., GenKeyFile.cpp).
type the following at the command prompt (while in the same directory as the source files):
gcc GenKeyFile.cpp -o GenKeyFile

Repeat this for each of the different source files.

For questions, comments, and bug reports (or if you're having trouble with the website), email jcr13@cornell.edu
Visit HardenedCriminal software to check out other open source projects:
HardenedCriminal software

since 8-26-99