How can I encrypt an external device (i.e. USB keys, external hard-drives, memory sticks, etc.) so that it would subsequently be readable/writable on any computer that I plug it in?
For instance, it should then be possible to easily plug the encrypted device on a Linux, Windows, or OS X machine, and be able to access the contents without any fuss.
How can I do that?
You could also consider installing Truecrypt on your USB. Once installed, use TrueCrypt to create an encrypted container, which can be opened with the software on the key. Saves you time installing software on multiple computers, still leaving you with the encryption you wanted.
Update since 2014, from TrueCrypt site:
I would use EncFS which is available for Linux, OS X and Windows. Advantage is that you can also use it with cloud storage since EncFS encrypts on filesystem level and therefore the changes only affect the files changed not a partition as a whole.
On Linux it's as easy as
I presume it's similar on Windows but I have only tested it between OSX and Linux so far. You can find a little more info here
On Linux Gnome Encfs Manager is a pretty handy GUI tool to manage EncFS encrypted directories, store passwords in keyring, etc.
Truecrypt is probably your best choice, though you'll need to be able to install the software on any computer you want to use.
Update since 2014, from TrueCrypt site:
There is DoxBox:
After open-source computer program FreeOTFE for on-the-fly disk encryption (OTFE) got discontinued, the DoxBox fork sprung up.
This means that you can encrypt a partition using LUKS (How to encrypt external devices?), and then access it from a Windows machine using DoxBox.
I would suggest Kruptos 2 Pro encryption software if you want to use your files on Windows, Mac OS and Android. I would suggest Kruptos 2 Pro is best fit along with any cloud folder integration. Kruptos does support USB drive as well. You can use simply right click context menu.
Use VeraCrypt it's been the default replacement to TrueCrypt.
The problem with free solutions is that apart from a few, most of them are usually not well maintained or well supported. You have to wait for compatibility updates and bugs resolutions. It is also better to go for container encryption than drive or disk encryption, specially for external drives, as they are more flexible and easier to manage. If you are willing to spend a little, I can suggest BestCrypt containers. They are supported on Windows, Linux, Mac and even Android with a number of algorithms. Instead of encrypting your USB, you can create a container the size of your USB, external hard drives etc. and access them on each platform.