17
$\begingroup$

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.

$\endgroup$
2
  • 3
    $\begingroup$ The key derivation, mode, and protocol used is more important than the actual cipher. That being said, AES has implementation advantages $\endgroup$ Commented Mar 1, 2015 at 10:03
  • 1
    $\begingroup$ 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. $\endgroup$ Commented Mar 1, 2015 at 13:08

2 Answers 2

17
$\begingroup$

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.

$\endgroup$
1
  • 1
    $\begingroup$ 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. $\endgroup$
    – forest
    Commented Feb 25, 2018 at 4:04
-1
$\begingroup$

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.

$\endgroup$
4
  • 1
    $\begingroup$ Mind you Gilles had I perfect. $\endgroup$
    – Dan
    Commented Dec 31, 2015 at 21:19
  • 4
    $\begingroup$ 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 $\endgroup$
    – axapaxa
    Commented Apr 19, 2017 at 16:43
  • 5
    $\begingroup$ "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. $\endgroup$
    – diagprov
    Commented Mar 22, 2018 at 15:07
  • 3
    $\begingroup$ A 6-8 character password? You wouldn't need a datacenter to do that. My GPU could do that. $\endgroup$
    – forest
    Commented Sep 22, 2018 at 4:06

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