# RS File Crypter

This project was developed in 2008, when I was 15 years old, in order to delve into cryptography and security in general. It is now deprecated; while some of its ideas are solid, the implementation would not be considered best practice by today's standards. This page only exists for archival purposes.

## Project summary

RS File Crypter is a file encryption software, featuring 3 heavily used algorithms, up to 262-bit passwords, random password generator, password generation from file, and a keylogger-proof input method for all your paranoid needs.

## How does it work

RS File Crypter encrypts a file 3 times using 3 algorithms: Rijndael, Triple DES, and Blowfish. Only the last “layer” is encrypted with the password you provided, the other two are encrypted using “salted hashes” generated from the password.

### Speed

Since the software encrypts each file 3 times, the speed is quite slow than it would with a single algorithm. The software was developed under Vista x64, with a Q6600 quad-core processor, the stable release’s speed was around 7.5 MB/s. (60 Mb/s)

At 7.5 MB/s:

Size Time
1 MB 0.13 sec
10 MB 1.33 sec
100 MB 13.33 sec
600 MB 80 sec
1 GB 2.27 min
4 GB 9.11 min
10 GB 22 min

The resulting encrypted .rsc file has no headers or signatures, only the original file encrypted 3 times with 3 different algorithms. This is great, because after renaming to something else, nobody knows the file was encrypted by RS File Crypter.

For example you can use DSC00256.JPG as a file name, and if everybody else ask what is that, you can say it was a picture, but it seems it is damaged. I’m also planning to develop a steganography application in the future.

[Note from 2016 me: I did end up developing a steganography application as part of an extracurricular class assignment, see the Steganography project.]

The software is multithreaded, so if you have more than 1 CPU or core, all of them will be put to work.

### Memory usage

The first internal version of RS File Crypter was a memory hog. For encrypting a 1 GB file, a minimum of 4 GB memory was required. In the downloadable v1.0 version this is now fixed. You can encrypt files with TB sizes, with requiring a maximum of 100 MB of memory. (average memory usage is around 40 MB)

### Keylogger-proof input method

100 characters are shuffled, and they make a 10*10 table. The characters are the followings:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#\$%^&*()_+-=\\|[]{};':\"./,<>?éáíóúöü


The software generates a table randomly at every application run, and destroyes it at exit, so even if a keylogger logs what you enter, it cannot be decoded without the table.

When the keylogger-proof input method window is activated, you’ll have to search for the character in the table, and click them, or you can enter them by hand, separating each with one single space.

To provide an example, I use the table seen on the screenshot at right. For example to use the password

asd

you have to enter

F6 A8 B4

to the password field in the application’s main window.

When you’re finished, by pressing Ctrl+Tab again, the table vanishes, and the password field will be decoded.

### Self-extracting executables

The application can create so called self-extracting executables. This means you can encrypt a file into an sfx exe and the person who will receive the encrypted file, will not need to have RS File Crypter, just clicks the exe file and enters the password!

While you’re entering the password the software calculates it’s strength. The estimated time to crack a password was taken from Wikipedia’s Password strength article. I think this is quite outdated, since a Q6600 quad-core processor can generate 4 billion MD5 hashes per minute, while a 8800GT graphics card can generate more than 12 billion MD5 hashes each minute.

This means you can crack an 8 characters long 52-bit key (like _{Xo),o5 or Y|g?_!3&) in no more than 10 days. However, the 40 characters long 262-bit key generated by RS File Crypter is still a huge challenge to crack in less than $2.78934587 \cdot 10^{47}$ years.

## Get the software

Compatible with all Windowses from 98 to Vista. Unix users see the next chapter.

To run this software, .Net 2.0 is required, freely available from Microsoft’s Download Center.

### Non-Windows users

Although all of the required functions are inplemented in Mono, there are some bugs:

• may hang for unknown reasons while encrypting or decrypting
• may exit while:
• benchmarking