Cipher security summary
From Infogalactic: the planetary knowledge core
This article summarizes publicly known attacks against block ciphers and stream ciphers. Note that there are perhaps attacks that are not publicly known, and not all entries may be up to date.
Contents
Table color key
No known successful attacks — attack only breaks a reduced version of the cipher
Theoretical break — attack breaks all rounds and has lower complexity than security claim
Attack demonstrated in practice
Best attack
This column lists the complexity of the attack:
- If the attack doesn't break the full cipher, "rounds" refers to how many rounds were broken
- "time" — time complexity, number of cipher evaluations for the attacker
- "data" — required known plaintext-ciphertext pairs (if applicable)
- "memory" — how many blocks worth of data needs to be stored (if applicable)
- "related keys" — for related-key attacks, how many related key queries are needed
Common ciphers
Key recovery attacks
Attacks that lead to disclosure of the key.
Cipher | Security claim | Best attack | Publish date | Comment |
---|---|---|---|---|
AES128 | 2128 | 2126.1 time, 288 data, 28 memory | 2011-08-17 | Independent biclique attack.[1] |
AES192 | 2192 | 2189.7 time, 280 data, 28 memory | ||
AES256 | 2256 | 2254.4 time, 240 data, 28 memory | ||
Blowfish | 2448 | 4 of 16 rounds | 1997 | Differential cryptanalysis.[2] Author of Blowfish recommends using Twofish instead.[3] |
DES | 256 | 239 – 243 time, 243 known plaintexts | 2001 | Linear cryptanalysis.[4] In addition, broken by brute force in 256 time, no later than 1998-07-17, see EFF DES cracker.[5] Cracking hardware is available for purchase since 2006.[6] |
Triple DES | 2168 | 2113 time, 232 data, 288 memory | 1998-03-23 | Extension of the meet-in-the-middle attack. Time complexity is 2113 steps, but along with proposed techniques, it is estimated to be equivalent to 290 single DES encryption steps. The paper also proposes other time-memory tradeoffs.[7] |
KASUMI | 2128 | 232 time, 226 data, 230 memory, 4 related keys | 2010-01-10 | The cipher used in 3G cell phone networks. This attack takes less than two hours on a single PC, but isn't applicable to 3G due to known plaintext and related key requirements.[8] |
RC4 | Up to 22048 | 220 time, 216.4 related keys (95% success probability) | 2007 | Commonly known as PTW attack, it can break WEP encryption in Wi-Fi on an ordinary computer in negligible time.[9] This is an improvement of the original Fluhrer, Mantin and Shamir attack published in 2001.[10] |
Serpent-128 | 2128 | 10 of 32 rounds (289 time, 2118 data) | 2002-02-04 | Linear cryptanalysis.[11] |
Serpent-192 | 2192 | 11 of 32 rounds (2187 time, 2118 data) | ||
Serpent-256 | 2256 | |||
Twofish | 2128 – 2256 | 6 of 16 rounds (2256 time) | 1999-10-05 | Impossible differential attack.[12] |
Distinguishing attacks
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
Attacks that allow distinguishing ciphertext from random data.
Cipher | Security claim | Best attack | Publish date | Comment |
---|---|---|---|---|
RC4 | up to 22048 | ?? time, 230.6 bytes data (90% probability) | 2000 | Paper.[13] |
Less common ciphers
Key recovery attacks
Attacks that lead to disclosure of the key.
Cipher | Security claim | Best attack | Publish date | Comment |
---|---|---|---|---|
CAST (not CAST-128) | 264 | 248 time, 217 chosen plaintexts | 1997-11-11 | Related-key attack.[14] |
CAST-128 | 2128 | 6 of 16 rounds (288.51 time, 253.96 data) | 2009-08-23 | Known-plaintext linear cryptanalysis.[15] |
CAST-256 | 2256 | 24 of 48 rounds (2156.2 time, 2124.1 data) | ||
IDEA | 2128 | 2126.1 time | 2012-04-15 | Narrow-biclique attack.[16] |
MISTY1 | 2128 | 269.5 time, 264 chosen plaintexts | 2015-07-30 | Chosen-ciphertext, integral cryptanalysis,[17] an improvement over a previous chosen-plaintext attack.[18] |
RC2 | 264 – 2128 | Unknown[clarification needed] time, 234 chosen plaintexts | 1997-11-11 | Related-key attack.[14] |
RC5 | 2128 | Unknown | ||
SEED | 2128 | Unknown | ||
Skipjack | 280 | 280 | ECRYPT II recommendations note that, as of 2012, 80 bit ciphers provide only "Very short-term protection against agencies".[19] NIST recommends not to use Skipjack after 2010.[20] | |
TEA | 2128 | 232 time, 223 chosen plaintexts | 1997-11-11 | Related-key attack.[14] |
XTEA | 2128 | Unknown | ||
XXTEA | 2128 | 259 chosen plaintexts | 2010-05-04 | Chosen-plaintext, differential cryptanalysis.[21] |
Distinguishing attacks
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
Attacks that allow distinguishing ciphertext from random data.
Cipher | Security claim | Best attack | Publish date | Comment |
---|---|---|---|---|
CAST-256 | 2256 | 28 of 48 rounds (2246.9 time, 268 memory, 298.8 data) | 2012-12-04 | Multidimensional zero-correlation cryptanalysis.[22] |
See also
- Block cipher
- Hash function security summary
- Time/memory/data tradeoff attack
- Transport Layer Security
- Bullrun (decryption program) — a secret anti-encryption program run by the U.S. National Security Agency
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 14.0 14.1 14.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Yearly Report on Algorithms and Keysizes (2012), D.SPA.20 Rev. 1.0, ICT-2007-216676 ECRYPT II, 09/2012.
- ↑ Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths, NIST
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.