I see many people recommending TrueCrypt for backing up and securing wallets. I think it is important to protect wallets, but I suggest that
GnuPG would be the better tool. As BTC become increasingly valuable, it becomes more and more important to use the best tools to protect your stash.
GPG is more than a tool facilitating symmetric crypto. It is a standardized and well-tested suite of tools that permit encryption/signing of arbitrary data such as files and
email. Basically, anyone looking to get deeper into the
bitcoin economy would be well-advised to understand and use GPG to develop and maintain a cryptographically strong reputation. TrueCrypt just isn't as flexible. GPG also follows an
established standard, and it interoperable with
commercial software. TrueCrypt does not. TrueCrypt also isn't available for nearly as many platforms as GPG.
TrueCrypt's novel feature is the "deniable" filesystem. Bruce Schneier has
published some work on it and stated that he "wouldn't trust it."Then there is the small matter of licensing. GnuPG is licensed under the GPL. TrueCrypt has a non-free license.
From
http://en.wikipedia.org/wiki/Truecrypt#LicensingThe TrueCrypt License has not been officially approved by the Open Source Initiative and is not considered "free" by several major Linux distributions (Arch Linux,[35] Debian,[36] Ubuntu,[37] Fedora,[38] openSUSE,[39] Gentoo[40]), mainly because of distribution and copyright-liability reasons.[41]
How to use GPG?
gpg --compress-algo BZIP2 --bzip2-compress-level 9 --encrypt -a -o text_crypt_wallet.txt wallet.dat
This will compress and then encrypt your wallet using your private GPG key. The -a flag tells gpg to give you ascii-armored (printable) output. The -o flag tells gpg to name the output file "text_crypt_wallet.txt". You can then print this out. The file will look something like this:
-----BEGIN PGP MESSAGE-----
gz9DKDc3Qb+idbP5gOn0TIZ5Sg74zP7ds4eoezpG5HPSvt3RXARQcvSeUrW8htFD
aTEOO/lqWw/BzwZN
=FdZO
-----END PGP MESSAGE-----
I recommend first moving bitcoins to a fresh wallet with a single address via a single transaction, so as to have as small a file as possible. Otherwise, you may end up with many pages of output.
Make sure the font is OCR-readable (
http://en.wikipedia.org/wiki/Optical_character_recognition) and large enough to avoid scanning and transcription errors. Also, make sure to keep track of page numbers.
If you don't have a GPG key, you can encrypt it via just a symmetric cipher and password:
gpg --compress-algo BZIP2 --bzip2-compress-level 9 --symmetric -a -o text_crypt_wallet.txt wallet.dat
Just don't forget your password.
By default, GPG uses CAST5 as the symmetric cipher. Note that you can always specify which symmetric cipher you want to use (all of gpg's ciphers are considered strong) with one of these flags:
--cipher-algo 3DES
--cipher-algo AES128
--cipher-algo AES192
--cipher-algo AES256
--cipher-algo BLOWFISH
--cipher-algo CAMELLIA
--cipher-algo TWOFISH
To recover the wallet, you can scan the document and OCR it to a file. Then decrypt it:
gpg --decrypt -o wallet.dat scanned_text_file.txt
If you are running GNU/Linux, you probably already have GnuPG If you have windows, you can get GnuPG here:
http://www.gpg4win.org/