XOR file system

xor_fs is a filesystem for achieving perfect encryption.

Provided encryption is perfect (uncrackable and deniable (output looks like noise), forever) as long as:

As you can see your key has to be huge. This makes xorfs rather impractical for storing large amount of data. But it’s still ok for hiding small amounts. Nevertheless you can forget about remembering your key. You’ll have to store/transfer it separately from your encoded file.

Usage

You mount the xor_fs like this:
ruby xorfs.rb /tmp/xor_fs writable_encrypted_output_file readable_random_key_file
This will mount the xor_fs under /tmp/xor_fs
There will be just one file there, called ‘data’.
Data file is decrypted interface for your encrypted files:

If you make a mistake and specify wrong key file, you’re going to get garbage, and you’ll destroy your encoded data if you write anything to this improperly-mounted xorfs.

You can specify more than one key file, then you always need all files mentioned on command line to encode/decode your content properly. Use noise.

The intended use of the “data” file is to mkfs on it and mount it with -o loop.

Disclaimer

No warranty. Any. It can destroy your life or worse.

Downloads: