Forgot your password?

typodupeerror
Encryption Security Technology

New AES Attack Documented 236

Posted by timothy
from the ponder-don't-panic dept.
avxo writes "Bruce Schneier covers a new cryptanalytic related-key attack on AES that is better than brute force with a complexity of 2^119. According to an e-mail by the authors: 'We also expect that a careful analysis may reduce the complexities. As a preliminary result, we think that the complexity of the attack on AES-256 can be lowered from 2^119 to about 2^110.5 data and time. We believe that these results may shed a new light on the design of the key-schedules of block ciphers, but they pose no immediate threat for the real world applications that use AES.'"
This discussion has been archived. No new comments can be posted.

New AES Attack Documented

Comments Filter:
  • Re:Improvement (Score:4, Informative)

    by WaXHeLL (452463) on Wednesday July 01 2009, @05:56PM (#28550503)

    erm only a 99.7% improvement.

  • Re:Complexity (Score:3, Informative)

    by wealthychef (584778) on Wednesday July 01 2009, @06:04PM (#28550613)
    Normally, "complexity" in computer science refers to how long it takes to do a given task, given the size of the task. It's usually expressed as O(blah), read, "Order of blah". For example, an O(n^2) ("order n squared") complexity means that if it takes "m" minutes to finish a problem of size x, then it will take 16m minutes to finish a problem of size 4x. I'm not familiar with the term "complexity" being used in this context and with these specific numbers.
  • Re:Complexity. (Score:5, Informative)

    by xZgf6xHx2uhoAj9D (1160707) on Wednesday July 01 2009, @06:05PM (#28550631)

    AES-128 uses keys which are 128 bits long. That means in order to "break AES" (in order to decrypt something you don't have the key to), all you have to do is try all possible keys of length 128 until you find one that works. That means you would have to try 2^128 different combinations, which is a lot.

    What these people have done is found some clever way where you can break AES trying only 2^119 combinations. Effectively this means AES is no better than if it had used 119-bit keys instead of 128-bit keys. Sometimes you'll hear this colloquially as something like "AES has 119 bits of security", referring to how many combinations of keys you have to try before you find the one works.

    2^119 is a massively large number. Trying 2^119 combinations is still terribly far outside of the realm of what all of the world's most powerful supercomputers combined could hope to do. This is an attack of theoretical interest, not practical interest.

  • Re:Complexity. (Score:2, Informative)

    by Anonymous Coward on Wednesday July 01 2009, @06:13PM (#28550751)

    Except IYRTFA, the attack only works on AES-192 and AES-256. AES-128 is unaffected, which would seem to imply that, oddly, AES-128 could be stronger than AES-256 and AES-192 in some circumstances.

  • Re:Complexity. (Score:5, Informative)

    by quercus.aeternam (1174283) on Wednesday July 01 2009, @06:16PM (#28550793) Homepage

    Two things:

    First, they are talking about AES-256.

    Second, I find it useful to think about how much faster that is. In this case, it means it is 2^137 times faster than a pure brute force attack, which certainly seems impressive. Fortunately, as you mentioned, this is still far too difficult to be applied.

    Just for fun, google this: 2^119 picoseconds in millenia

  • Re:Complexity (Score:5, Informative)

    by vux984 (928602) on Wednesday July 01 2009, @06:18PM (#28550809)

    Could somebody rephrase that in a way that people like me, who aren't cryptography specialists can understand what they're talking about?

    Sure I'll rephrase it for you. "Don't worry."

    What? You wanted something deeper without having to know anything? Ok...so AES was thought to require 2^128 time units to brute force. So 2^119 time complexity means essentially that the new algorithm takes 2^119 units of time to complete which is a lot better, and they think it might be able to optimize it down to 2^110 units of time.

    What a 'unit of time is' is a computing science hand-wave because it doesn't really matter what it is. When comparing algorithms for large problems you are interested in how it compares relative to other algorithms, not how much absolute time it will take on a Commodore 64 or Intel i7 or whether its programmed in Smalltalk vs C. Those details while important in their own right aren't really relevant to the comparison of the algorithms themselves.

    A 2^110 algorithm is significantly better than a 2^119 algorithm for 'large problems' regardless of what we set the unit of time to be, and in turn 2^119 is much better than 2^128.

    In practice the unit of time is rooted in how long it takes a computer to do 'an operation'. So it might be milliseconds or nanoseconds, or whatever. And the upshot is that even 2^110 is STILL gazillion years even if its programmed in C on an i7 and every i7 on the planet is contributing to the effort...

    Hence... "Don't worry."

    Its mathematically very interesting, but for the moment, its nothing to "worry" about.

  • Re:Complexity. (Score:4, Informative)

    by tabrisnet (722816) on Wednesday July 01 2009, @06:32PM (#28551003)

    Bull.

    a) AES is not based on prime numbers, nor is it a public-key cipher. you're thinking RSA or some other public-key cipher. Hence why RSA has to be at least 1024 (and now 2048 and up is recommended) bits long.

    b) There's a lot more bull going around here. AES256 was believed to require 2^128 operations to bruteforce, not 2^256. Thus any question of 256 -> 119 is bull. It's 128 -> 119.

    c) Brute-forcing a 64bit RC5 key took distributed.net years (and note that that was with the benefit of Moore's [so called] Law). Mind you, that actually required searching a 64bit keyspace.

  • Re:Complexity. (Score:2, Informative)

    by dermoth666 (1019892) on Wednesday July 01 2009, @06:38PM (#28551083)

    I believe the probability being halved has something to do with the birthday paradox. It's been a time where I could explain this better; if you wish to find out just search for it on Google... This page seems to have a good explanation too:

    http://betterexplained.com/articles/understanding-the-birthday-paradox/ [betterexplained.com]

  • Re:Complexity (Score:5, Informative)

    by Joce640k (829181) on Wednesday July 01 2009, @06:38PM (#28551085) Homepage
    It means you only have to test 2^119 possible keys to break 256-bit AES - still far beyond what's ever going to be feasible (do the math - give everybody on the planet a million PCs running at 1THz and see how long it takes to do 2^119 things, then figure out where you're going to get that much electricity from)

    Interesting to note is that AES-128 is immune to this attack - it's now the strongest variant of AES. Everybody (like me) who thought the 256-bit and 192-bit were a waste of time now has a reason to be smug about it.

    Reason: Both AES-192 and AES-256 are just AES-128 internally but they mess around with the key data between each loop of the encryption process. The new attack only works on the "messing around" part of the process so AES-128 is unaffected.
  • Re:2^119 is... (Score:2, Informative)

    by b00fhead (669286) on Wednesday July 01 2009, @06:41PM (#28551115) Journal

    No, EFF's Deep Crack [wikipedia.org] brute-forced 2^56 - a fair way from 2^64.

  • Re:Complexity. (Score:3, Informative)

    by betterunixthanunix (980855) on Wednesday July 01 2009, @06:48PM (#28551185)
    This is an attack on key schedules; the key schedule of AES-128 is different from that of AES-192 and AES-256, thus rendering it impervious to this particular attack. As the authors note, this sheds new light on key schedule design, much in the same way that differential cryptanalysis shed light on S-box design.
  • Re:Yawn (Score:5, Informative)

    by a_n_d_e_r_s (136412) on Wednesday July 01 2009, @06:55PM (#28551301) Homepage Journal

    Given that the new theory lowers the time to break it with about 99.7% if it before took 1 million years it now only takes 3000 years.

    Remember for everý less bit it takes to decrypt - it halves the time it takes to break a cipher.

  • Re:Complexity. (Score:3, Informative)

    by electrostatic (1185487) on Wednesday July 01 2009, @07:11PM (#28551483)

    Just for fun, google this: 2^119 picoseconds in millenia.

    Google says:

    2.10607966 × 10^13 millenia -- which equals about 21,000,000 billion years

    With the new attack the figure is 2^110.5 trys, which is

    (2^110.5) picoseconds = 5.81727815 × 10^10 millenia

    a mere 58,000 billion years.

    Looking at it another way, 119 - 110.5 = 8.5, which is the reduction of the exponent, giving 2^8.5 = 362. So knocking off 8.5 bits reduces the amount of time+effort by that ratio.

    "Picosecond" is the assumed amount of time it takes for one attempt here, which I assume is reasonable given a massively-parallel attack machine.

    Still, 58 trillion years...

  • Re:Complexity. (Score:1, Informative)

    by RaymondKurzweil (1506023) on Wednesday July 01 2009, @07:24PM (#28551627) Journal

    CPU power doubles about every 18 months (Moores Law)

    Moore's Law never claimed this.

  • Re:Quantum Computers (Score:4, Informative)

    by mathimus1863 (1120437) on Wednesday July 01 2009, @07:31PM (#28551713)
    Parent is slightly off on the Quantum computing comment. Quantum computers can break cryptographic protocols based on the difficulty of integer factorization (RSA/PGP/GPG/PKI/SSL/TLS), and discrete-logarithms (all of the above plus elgamal, elliptic curves). However, AES is a block cipher which relies on neither of these pure-math problems.

    The only advantage of QCs in breaking AES is that Grover's Algorithm can be applied for random guessing of the encryption key. AES-256 has 2^256 possible encryption keys. It takes a classical computer an average of n/2 guesses to find the right key, or 2^255 operations. However a QC running Grover's Algorithm does it in an average of approx sqrt(n) "guesses." This means that it takes about 2^128 operations to get the AES-256 key using a quantum computer.

    As previous posters have mentioned, 2^128 is still far out of our reach. And to subvert QCs for this type of problem, all we have to do is double our key length to get the same security. Perhaps if we find a way to combine Grover's Algorithm with this new AES vulnerability, we can get it down to 2^60 to 2^64, but that is still extremely prohibitive. Additionally, that's a big "if," since Grover's Algorithm is intended for pure-guessing problems.
  • by Anonymous Coward on Wednesday July 01 2009, @07:39PM (#28551789)

    The usual threat model for a cipher is either a "chosen plaintext attack" (CPA) or a "chosen ciphertext attack" (CCA). In both of those, you have a lot of plaintext-ciphertext pairs all encrypted under the same key, and your job is to use that info against the cipher. Not necessarily to actually compute the key (which would totally destroy the cipher) but even to be able to infer anything about it statistically (for example, to have a better than random chance of guessing whether a new plaintext/ciphertext pair was encrypted with the same key).

    This attack is a related-key attack, which traditionally means that you get to see the same plaintext encrypted under enormous numbers (like 2^119 in this case) of different but related keys, rather than under the same key (or a "small" number of keys like a few trillion). This is a threat model that most ciphers aren't designed against and it's instead countered by designing the application to not rely on it. For example, don't use the cipher as a hash function by using the plaintext as a key and encrypting some constant. Properly designed crypto applications don't let attackers access the keys, and they generate their keys randomly rather than letting them be related. I don't think related-key attack resistance was part of the specification given to entrants of the AES contest, and IIRC the AES standard doesn't claim such resistance.

    Nonetheless, the designers of Rijndael (the cipher that is the basis of AES) designed Rijndael to be "ideal", which among other things Rijndael was supposed resist related-key attacks, which was above and beyond the AES requirements.

    This new discovery finds that the AES cipher in fact does not meet Rijndael's design goals. Rijndael's design goals, however, exceeded the requirements stated in the AES standardization process, and any applications using AES are supposed to only use the characteristics of AES stated in the standard. So, even if this attack were of low enough complexity to be practical, it STILL should not affect valid AES applications, unless they are relying on characteristics that AES was never promised to have.

  • by Virak (897071) on Wednesday July 01 2009, @07:53PM (#28551929) Homepage

    Almost everyone here seems to be missing the bit in the summary that mentions that it's time and data complexity. It's not nearly as bad as 2^119 time and some tiny data.

  • Re:Complexity. (Score:2, Informative)

    by someSnarkyBastard (1521235) on Wednesday July 01 2009, @08:19PM (#28552191)
    Or they switch to the cipher they should have gone with, namely Serpent: http://en.wikipedia.org/wiki/Serpent_(cipher) [wikipedia.org] http://www.cl.cam.ac.uk/~rja14/serpent.html [cam.ac.uk] For those too lazy to read the links, Rijndael (aka AES) is faster, simpler, and more elegantly designed than Serpent. Serpent is more conservative, slightly slower in software (faster in hardware though), and not quite as pretty aesthetically. Rijndael was chosen to become AES for its speed and simplicity, two things IMO that have minimal desirability in a cryptography algorithm.
  • Re:Quantum Computers (Score:3, Informative)

    by evilviper (135110) on Wednesday July 01 2009, @09:32PM (#28552765) Journal

    How do you create a key, when the entire large number method is made obsolete by quantum computing?

    There are several methods of public-key encryption which are secure against quantum computers. Try Lamport Signatures for a start:

    http://en.wikipedia.org/wiki/Lamport_signature [wikipedia.org]

  • MOD PARENT DOWN (Score:1, Informative)

    by Anonymous Coward on Thursday July 02 2009, @04:59AM (#28555231)

    Parent is wrong. This is a related key attack and not one of the standard known plaintext attacks. AES-128 is supposed to have a complexity of 2^64 against those (please google before talking about the obvious "this is just for hashes"). So AES-256 is still better than AES-128.

Learning at some schools is like drinking from a firehose.

Working...