Information Security Stack Exchange is a question and answer site for information security professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I was wondering how to encrypt by doing a AES-Twofish-Serpent encryption. Does this mean I encrypt in AES first then after that in Twofish, and after that in Serpent (three separate encryptions). In truecrypt they talk about cascading in xts mode, but I was having trouble finding a tutorial on how to do it.

share|improve this question… – buherator Aug 4 '13 at 19:41
That just explains what it is, not how to do it – abden003 Aug 4 '13 at 20:29
I didn't mean to answer your question (this is why I wrote a comment, not an answer), just wanted to give some pointers to the solution. The linked article and the referenced CTS article and NIST publication actually describe the algorithm for XTS. – buherator Aug 9 '13 at 12:25
Thanks it actually did really help. – abden003 Aug 9 '13 at 15:21
  • Generate three distinct keys from the original encryption key using a Key Derivation Function (KDF). For example, if you're using a 128-bit key, derive a 384-bit key from it with the KDF and split the result in three 128-bit keys.
  • Encrypt with AES using the first key, then encrypt the output with Twofish using the second key, then encrypt the new output with Serpent using the third key.

You would need to check the TrueCrypt source code if you want to do exactly like them (I don't know the exact mechanism they use for deriving the keys).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.