TableCrypt is a file encryption utility.
The major difference with most file encryptors is that this program uses a generated table in combination with a password to encrypt a file.
This way you need 2 variables to decrypt the file. This is how it works:
Generate a 10kb table file and enter a password. The password is used to pick bytes from the table file which in
their turn are used to encrypt the bytes of the inputfile with XOR encryption.
This programs strength lies in the fact that without the tablefile and password it is impossible to retrieve the plaintext.
For people interested in attacking this program: here are some challenges I've created.
The special challenges are created with TableCrypt v0.1 Beta. Of course you can encrypt your own files and attack those if you prefer.
Screenshot:

Updates:
v 0.1:
19JUN2006:
Fixed clearing the variable which checks if it's the first run in the EncryptOrDecryptFile fuction.
Updated the usage box to better explain how to use the program.
22JUN2006:
Implemented a newly written hashing alghoritm to generate a 32-byte hash of the entered password.
v 0.2:
28JUN2006:
Added a check in the hashfunction since I encountered one input string where a devide by 0 occured.
Created a function which grabs the mousepointer location to collect random data for the tablefile.
Added another dialogbox to tell user that he or she must move the mouse to collect data for tablefile.
After the tablefile is created, the file is automatically put in the tablefile selection field.
v 0.3:
01JUL2006:
Finally finished my swapping function. This function will swap bytes in the output file depending on
both the password entered and table used. This makes it a lot more difficult to brute force the encrypted file.
Unfortunately this also slows down the alghoritm.
It now takes about 20 seconds to encrypt/decrypt a 14,7mb file on a 1600mhz centrino system.
So security should be ok now, the next point of update will probably be a speed update.
Changed the time the message exists that the mouse should be moved while generating a table from 600ms to 1000ms.
v 0.4:
04JUL2006:
Added a function to securely delete the original file if user wants to do so.
v 0.5:
05JUL2006:
Updated the secure delete function to be faster and more secure.
Removed a small error I've made after a CreateFile check.
Tests:
Hash Test:
I've downloaded every dictionary from http://www.picozip.com/prt/index.html
I've added all the dictionaries together to one big dictionary. Total size: 49MB
I wrote a small program which would hash every word in that wordlist and wrote the output to another file in the format hash-word
This gave me a total of 4,485,600 words with their hashes (3.4GB file).
Then I sorted the complete file using the windows sort.exe tool by hash.
After this I wrote another small program which compared every line to the next.
if they are the same then skip the line.
if they are not the same, then compare only the hash.
if hashes match then print them to stdout.
This resulted in 0 double hashes.
Encrypted File Test:
This is the result of ent.exe on a 102kb source-code file encrypted with TableCrypt v0.1 Beta:
Entropy = 7.994551 bits per byte.
Optimum compression would reduce the size
of this 104829 byte file by 0 percent.
Chi square distribution for 104829 samples is 787.63, and randomly
would exceed this value 0.01 percent of the times.
Arithmetic mean value of data bytes is 126.5524 (127.5 = random).
Monte Carlo value for Pi is 3.180584969 (error 1.24 percent).
Serial correlation coefficient is 0.002258 (totally uncorrelated = 0.0).
The same source-code file, except now encrypted with TableCrypt v0.3 Beta:
Entropy = 7.991606 bits per byte.
Optimum compression would reduce the size
of this 104829 byte file by 0 percent.
Chi square distribution for 104829 samples is 1189.74, and randomly
would exceed this value 0.01 percent of the times.
Arithmetic mean value of data bytes is 126.8170 (127.5 = random).
Monte Carlo value for Pi is 3.137771164 (error 0.12 percent).
Serial correlation coefficient is -0.003776 (totally uncorrelated = 0.0).
Download:
License Agreement:
This program is released as is. This means that the author / supplier can in no way be held responsible for any damage this program,
it's created files or it's release source-code might cause in any way possible,
the correct working of this program, removing bugs, updating this program, or even the content of the distributed archive for previous, current and future releases.
The sourcecode of this program can be downloaded from this page as well.
However, using any part of the sourcecode without written permission is strictly prohibited.
If you don't agree with this license agreement, then don't download the program or it's source-code.
TableCrypt 0.5 Beta
TableCrypt 0.5 Beta source-code
TableCrypt 0.4 Beta
TableCrypt 0.4 Beta source-code
TableCrypt 0.3 Beta
TableCrypt 0.3 Beta source-code
TableCrypt 0.2 Beta
TableCrypt 0.2 Beta source-code
TableCrypt 0.1 Beta
TableCrypt 0.1 Beta source-code
Final Note: Even though I believe this program will keep your data safe in a production environment, it has not been tested enough to be absolutely sure.
|
|