The problem with hardware encryption is that operating system engineers and cryptographers have their own view on encryption and/or design goals; this can create implementation incompatibilities with different operating systems; and with different operating systems comes different filesystems; and with different filesystems comes a wealth of new issues with encryption at the filesystem level.
This means that:
- There must be a standard among operating systems to create a compatibility with eachother for encryption, and...
- There must be a standard filesystem among operating systems, and...
- The encryption method used must be open source for peer review.
I have my own solution:
- Create two partitions; one about 100MB and the other the rest of the space using TrueCrypt. Alternatively, just create a TrueCrypt volume container.
- The compatibility between Linux, Windows, and Mac comes from ensuring that your filesystem is a compatible one between OS's such as FAT.
The incompatibilities with Linux and encryption most likely stems from LUKS and the new standard ecryptfs.
Encryption with TrueCrypt can be defeated by dumping keys (easily done with aeskeyfind). I should note that decryption in general requires the secret key; this means that in order to read the data off of the hardware encrypted flash drive the key must be present somewhere (most likely in RAM like with TrueCrypt). I do not know of any way to break truecrypts encryption other than dumping the keys from RAM or by brute-force which leaves the same issue present with the hardware encrypted flash drives.