If I have understood correctly, Twofish is more secure (harder to break) than AES and Camellia, but it's slower than both.

How can I measure the speed difference between AES vs Twofish and Camellia vs Twofish? Does Twofish use twice as much time? Half as much time? Or does it just take a few percent longer to encrypt/decrypt than AES/Camellia?

I'm in the starting/planning phase of software development: the local stored data will be encrypted, and the data to be transmitted over a network will be encrypted/signed. I would like to use Twofish as the symmetric cipher, but if it uses twice the resources of AES/Camellia, then it's not a good idea.

  • $\begingroup$ The final speed of ciphers depend on their implementation. If you want to perform a good comparison instead of hand-waving, you should compare the algorithms on a reference system using the algorithm implementations of your choice. If you're really serious about speed, you're more likely to find AES hardware implementations (e.g. AES-NI or ARM instructions) than Twofish implementations. $\endgroup$ – Maarten Bodewes Apr 28 '16 at 22:22
  • $\begingroup$ While I am a fan of Twofish for max security, AES on modern processors will be substantially faster, at least 5 times, maybe 10 times faster $\endgroup$ – Richie Frame Apr 29 '16 at 1:00

Just use AES. It's hardware-accelerated and implementations have had ages to have flaws discovered and patched. More strongly, just use GPG to encrypt data at rest and just use TLS (>= 1.2, with appropriate AEAD ciphers) for data in motion. "If you're typing the letters A-E-S into your code, you're doing it wrong."

Anything you build yourself is infinitely more likely to be broken as a result of your design choices than by your choice of cipher.

  • $\begingroup$ To be clear: If you choose to use the more advanced features of GPG (e.g. public key encryption) you should consider that your software most certainly won't work with standard Java / PKCS#11 / CAPI / CNG crypto hardware which may become a (serious) problem once you scale it to enterprise level. Using S/MIME (instead of PGP) would be the far more well-supported alternative if you want to use public key cryptography. $\endgroup$ – SEJPM Apr 28 '16 at 21:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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