Séminaire de Cryptographie

Accueil     Présentation     Archives

Nicolas Courtois

Algebraic attacks and design of block ciphers, stream ciphers, and multivariate public key schemes

Following the famous 1949 paper of Shannon, breaking a "good" cipher should require: "as much work as solving a system of simultaneous equations in a large number of unknowns of a complex type". For most practical cryptosystems, the problem of recovering the key can indeed can be seen as solving a huge system of binary nonlinear equations. In general, solving such a problem is known to be NP-hard, and chances to have a general and efficient method to break ciphers this way are extremely low. However, what makes this problem hard, is not the size of the system, and not the number of variables involved, but the difference between the number of equations and the number of monomials. In many interesting cases, even very big systems of multivariate equations may be solved efficiently. For example, systems that are overdefined, sparse, or both turn out to be solved much easier than expected, by the XL method [due to Shamir, Patarin, Courtois, Klimov, Eurocrypt'2000] and the recent XSL variant [Courtois, Pieprzyk, Asiacrypt'2002].

We will explain that, the new encryption standard AES, designed to resist all previously known attacks on block ciphers, turns out to be an extremely weak cipher with regard to these new algebraic attacks (it is in fact difficult to imagine a worse cipher). One version of this attack, due to Courtois, Pieprzyk, Murphy and Robshaw, seems to be able to achieve an "academic" break of AES: recover the key a bit faster than trying all possible keys.

These attacks are very new, based on some unproven heuristics, and evaluating their exact complexity remains an open problem. In fact, many people naively believe that they cannot break on AES. For example the American government NIST and the European consortium Nessie, still fully back up and recommend AES. Yet, to the best of our knowledge, there is nothing that allows to say they will not work.

We will also explain how to design better ciphers, for which there will be no algebraic attacks.

Another area of application of algebraic attacks are stream ciphers. For reasons that will be explained the situation is much worse here, and we will exhibit several general classes of stream ciphers that resist to all known attacks, and yet can be broken in polynomial time by an algebraic attack. Surprisingly, the resulting design criterion on Boolean functions and S-boxes to be used in stream ciphers in order to resist algebraic attacks, applies equally to the components of block ciphers, and can be seen as an application of the security criterion proposed by Courtois for multivariate trapdoor functions (motivated by the security of the multivariate public key cryptosystem HFE). Finally, it can also be seen as an interpretation of Shannon's prescription quoted above.