# Twofish vs. Serpent vs. AES (or a combo)

I've seen some posts and info online, but they are from 2009, 2010, 2011 or 2012, which is 3-6 years ago, which is a very long time. So I'm looking for an up-to-date answer about which of these is the safest encryption to be used, or rather most unbreakable? Particularly interested in encryption programs, so performance would also interest me, not only security.

I think things have changed since Snowden's postings, though then again - I know that a file encrypted with some sort of TrueCrypt algorithms remains uncracked after a few years of trying in the FBI.

So, having that in mind, I'd like to know more about it all so that I would be able to choose the right algorithm for me.

• The key derivation, mode, and protocol used is more important than the actual cipher. That being said, AES has implementation advantages – Richie Frame Mar 1 '15 at 10:03
• The strength of the blockcipher is rarely the weakest point in a security system. There is no public cryptoanalysis that comes close to a practical break of AES. I use AES in TrueCrypt, since it's much faster than the others (thanks to AES-NI) and I consider it strong enough. – CodesInChaos Mar 1 '15 at 13:08

None of Twofish, Serpent and AES are currently known as broken, so as far as security is concerned, you can use any of them. AES has a slight advantage because it's very widely used, so if it gets broken you're more likely to hear about it and get relevant software updates quickly.

The Snowden postings haven't changed much as far as cryptography usage is concerned. They confirmed what was generally suspected before, which is that the generally-accepted cryptographic primitives are safe even from NSA-level adversaries¹; it's the systems and sometimes the protocols that are insecure. What's important is not your choice of primitive (as long as it's one of the generally-accepted ones, e.g. one approved by a NIST standard), but your choice of software.

AES has the advantage that high-end x86 and ARM CPUs include hardware acceleration for it.

If you're a user of cryptography, as opposed to an implementer of software like GPG, keep in mind that if you're typing the letters A-E-S into your code, you're doing it wrong.

¹ You might consider Dual_EC_DRBG to be an exception, but few people used it because it had no obvious security benefit, and its potential to be backdoored was known, and it was slow.

• Actually AES is known to be broken in the purely cryptographic sense of the word (i.e. there are attacks which can recover plaintext or the key more efficiently than brute force, even if still well out of reach for humanity). And Serpent has a higher security margin than AES anyway. Of course, they're all completely fine. I'd say AES is the fastest and most resistant to side-channel attacks, while Serpent is the most secure. Twofish is extra vulnerable to side-channel attacks due to large, key-dependent S-boxes, though. They're all unbreakable anyway. – forest Feb 25 '18 at 4:04

Twofish's composition is actually more secure than AES and is rendered unbreakable from a theoretical perspective and physical on the other hand Rijindael (Known as AES) is breakable in some theoretical scenarios. Due to Rijindael's higher efficiency, it was selected as the AES or Advanced Encryption Standard because both standards were regarded as so secure it was just faster to addopt Rijindael as AES due to it's high efficiency. But if you really want the best encryption use Twofish, it is impossible to break (except for bruteforce of course) and the only feasible way any mortal could break a Twofish password with at least 128 Bits and an 8-6 character password is if they rented a data center and waited a couple years until they finaly broke your password using bruteforce.

• Mind you Gilles had I perfect. – Dan Dec 31 '15 at 21:19
• While I'd agree that Twofish is probably more secure than AES, you take very big shortcuts on some information, which in turn render your answer pointless. If you want to be taken seriously start explaining your reasoning. -1 – axapaxa Apr 19 '17 at 16:43
• "rendered unbreakable from a theoretical perspective" no it isn't. Theoretically unbreakable is the one time pad. All block ciphers are theoretically breakable, the definition of security relies on the advantage over non-random distribution being negligible and only the one time pad reduces that to zero. Theoretically unbroken maybe, if there is no cryptanalysis reducing security. Moreover, brute-forcing a 128-bit wouldn't take "a couple of years" and "a datacentre", it would take more energy than the whole of humanity can feasibly produce right now dedicated to that single task. – diagprov Mar 22 '18 at 15:07
• A 6-8 character password? You wouldn't need a datacenter to do that. My GPU could do that. – forest Sep 22 '18 at 4:06

## protected by Community♦Feb 25 '18 at 10:52

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).