 Ce talk is about the algebraic cryptosystems of the algebraic surface cryptosystems, which was proposed last year at PICAC 2009, and this is a joint work with Jean-Charles Fogère. The general context of this work is multivariate cryptography, which consists of a large family of cryptosystems, whose security relies on the difficulty of solving some hard algebraic problems. So usually the algebraic problem under consideration is the problem of solving a large system of multivariate equations. So for instance it's HEP or UOV. So this is from the design viewpoint. And from the cryptosystems viewpoint the main tool is the algebraic cryptosystems, which is a general framework which permits to evaluate the security of different cryptographic primitives by using algebraic tools or tools from computer algebra. So in this talk we will focus on the algebraic surface cryptosystem, which is based on another difficult algebraic problem, which is the section finding problem. So the problem is the following. Given a surface defined by a polynomial in three variables of our finite field, the goal is to find two univariate polynomials Ux and Uy, such that the evaluation of S in Ux and Uy and T is equal to 0. And the principle of the algebraic surface cryptosystem is then to use the polynomial S as the public key and the section Ux, Uy as the secret key. So what are the main specificities of this construction is that it involves high degree polynomials in only a few variables and this permits to achieve very short keys, which are linear in the logarithm of the expected security. Ok, so following these ideas, Akema Goto en Miyake proposed the algebraic surface cryptosystem last year and this cryptosystem is resistant to all-known attacks. So for the history of this system, Akema and Goto proposed before this, three other cryptosystems based on these difficult algebraic problems and this cryptosystem has been analyzed and attacked by Volok and Iwami. So the new algebraic surface cryptosystem is resistant to these attacks. So the security parameters of the algebraic surface cryptosystems are P, the cardinality of the ground field, D, the degree of the secret section. So D will be highly correlated to the size of the secret key. There is also W, which is the degree in X and Y of the polynomial S defining the public surface and this value will be related to the size of the public key. So in this work, we propose a new algebraic attack on the algebraic surface cryptosystem, which is based on tools from computer algebra, so mainly from these computations and decomposition of ideals. It's a message recovery attack and surprisingly, it's often faster than the legal decryption algorithm and, for instance, it can break the system with recommended parameters in 0.05 seconds. And this experimental behavior is explained by complexity analysis which shows that the attack is quasi linear in the size of the secret key and quill-memial in all the security parameters. So this is the outline of the talk. First, I will give a short description of the cryptosystem. Then, I will present three variants of the attack, which are more and more efficient. So the level one attack is deterministic, is very high level and gives a good view of the mechanisms involved in the attack. The level two attack is more efficient and is also deterministic and the level three attack is the most efficient of these three variants and it's probabilistic. Then, we'll make a complexity analysis of the attack and we'll show some experimental results. This is a short description of the cryptosystem. So we already saw the three main security parameters, PD and W. So PD is the cardinality of the ground field, D is the degree of the secret section and W is the degree of the public surface. But there are also three other public parameters which are the support of some polynomials, Gamma F, Gamma M and Gamma S. So we will say that polynomials as support Gamma, if all its monomials are in the set Gamma. Gamma F, Gamma M and Gamma S are sets of monomials. And the plaintext is embedded in the coefficients of a polynomial with given support Gamma M. So, how do we encrypt? First, we choose at random three polynomials F, S0 and S1 with given support Gamma F. And we choose two polynomials at random R0 and R1 with given support Gamma S, so the same support as the public surface. And we construct two polynomials FI which are defined by FI is equal to M plus SI times S plus RI times F and the ciphertext is this couple of polynomials. Then, how do we decrypt? So, to decrypt, we first compute the difference of the ciphertext F0 minus F1 and we evaluate it in the secret section, so in UX YMT. So this gives univariate polynomial H which is the product of two univariate polynomials. So, next we want to recover the evaluation of F in the secret section. So, we know the degree of this polynomial because it can be deduced from public parameters. So, we find factor F tilde of the good degree of H of T and we hope that this is exactly F evaluated in UX YT. Then, we can compute the evaluation of the plaintext in the secret section by computing the evaluation of F0 in the secret section modulo this polynomial F tilde. And finally, we know the support of M. We know the secret section. We know the evaluation of the plaintext in the secret section. So, we can stop substitute and then we can obtain a linear system whose solutions are the coefficients of the plaintext. So, we can recover the plaintext. And finally, we verify with a MAC that the factor F tilde which shows at the second step is exactly the evaluation of F in the secret section. Ok, so, the complexity of this algorithm is not completely clear since, for instance, the second step is how to recover a factor of the good degree if the security parameters are high but in practice, it seems to work. Ok, so, we can summarize the description algorithm in three steps. So, first, a substitution step when we need the secret key. Then, the factorization step and finally, a linear system to solve. So, the main point of the attack is to try to get rid of the substitution step and to do this, we will use the generalization of factorization which is decomposition of ideals. So, in practice, we consider the ideal generated by the difference of the plaintext of the ciphertext and by the polynomial S. And it can be seen that this ideal can be decomposed in an intersection of two prime ideals. So, we want to compute this decomposition. So, how to do this? First, we do a projection step. So, we eliminate the variable X. So, this can be done with standard tools like grammar basis or resultants. This gives a b-variant polynomial Q which is the product of two irreducible polynomials Q0 and Q1. And each of these factors correspond to one of the ideals of the decomposition. So, we can reconstruct the decomposition by adding to the initial ideal generated by F0 minus F1 and S each of the factors Q0 and Q1. And by looking at the degrees of these polynomials with respect to Y, we can select which one correspond to the ideal generated by F and S. So, now we have a description of the ideal generated by F and S and this knowledge will allow us to manipulate implicitly the polynomial F. So, the next step of the attack is the following. We consider the ideal J generated by the ideal F and S and the ciphertext F0 and F1. So, it can be seen that this ideal is exactly equal to the ideal generated by M, F and S. So, now we have a description of an ideal which contains the plaintext M. So, we want to use this to work over the plaintext and to do this, we will use the normal form which is a tool from commutative algebra. So, the normal form with respect to J, it's a linear application from the polynomial ring to itself whose kernel is exactly the ideal J and such linear map can be computed when a grammar basis of the ideal J is known. So, how do we use this to work over the plaintext? The support of the plaintext is public and we know that M belongs to the ideal J. So, the normal form of M is equal to 0. But, since the normal form is linear we can compute the normal form of each monomial in the support of the plaintext and then this gives a linear system whose solutions are exactly the coefficients of the plaintext. Ok, so, putting all of this together we get this algorithm. So, first, we eliminate one variable. So, we obtain this polynomial Q. We factor it. We select one of its irreducible factor with I, S, D, B, with respect to Y. Then, we construct the ideal J generated by F0, F1, S and Q0 from the basis of it. Finally, we compute the normal form of all monomials in the support of the polynomial M and we solve the following linear system which gives the coefficients of the plaintext. So, this attack can be straightforwardly implemented in a computer algebra system like magma. For instance, this is the code corresponding to the complete level 1 attack. Et, pour exemple, Goto et Miyake proposent un tout exemple d'un système de surface algebra et sur cet exemple, je peux refroidir le plaintext dans deux minutes. Donc, c'est déjà un attaque, mais ce n'est pas le cas avec les paramètres recommandés. Donc, nous devons trouver un moyen de faire cela plus efficace. Donc, pour faire cela, nous n'avons pas que dans l'attaque, tous les monomials ont un très haut degré en T et un très haut degré en X et Y. Donc, c'est naturel d'essayer de compter dans les fous de fractions avec respect à T. Donc, nous pouvons essayer de faire l'attaque dans cet état-là, mais il y a un problème. Quand nous considérons l'IDLJ, cette idée est générée par trois équations, des équations indépendantes et le polinomial a seulement deux variables. Donc, il y a un élément invertible dans l'IDL et cette IDLJ donne aucune information sur le plaintexte. Donc, pour éviter ce problème, nous devons ajouter un degré de liberté et cela est fait par ajouter une nouvelle variable pour l'IDL. Donc, nous considérons maintenant l'IDLJ', générée par l'IDL F et S et F0 plus Z et F1 plus Z et cette idée est exactement la idée générée par M plus Z, F et S. Donc, nous compétions l'IDLJ', puis nous compétions la forme normale de toutes les monoméles dans le support de M plus Z. Cela donne un système linéaire. Nous avons utilisé ce système linéaire. Nous avons recouvert le coefficient de M plus Z et puis nous avons élu les coefficients du plaintexte. Et en utilisant cet état-là permet de speed-up l'attaque. Donc, maintenant, l'example est bloquée dans seulement 74 secondes. Mais, nous pouvons faire une autre observation, qui est que durant l'attaque de niveau 2 les coefficients, donc, dans le fil des fractions avec respect à T sont très petites dans l'input de l'algorithme. Elles sont petites dans l'input de l'algorithme, mais elles peuvent être très grandes pendant les computations intermédiaires et par exemple pendant les computations de gramma donc, c'est un problème classique dans l'algebra des computers et la solution classique est d'utiliser un approche multimodulaire donc, comment faire ça ? à l'input dans le fil des fractions avec respect à T nous computons dans le final fil qui est le coefficient de l'input de l'input de l'algebra par un polynomial de l'input de l'algebra P. Donc, de cette façon, nous savons que le degré des coefficients intermédiaires sera boundé par le degré de P. Donc, nous pouvons faire exactement l'attaque de niveau 2 dans ce nouveau setting et cela permet d'aminer modulo 0 polynomial P. Mais si vous choisissez plusieurs polynomiaux polynomial P, comme le degré de votre produit est plus grand que le degré avec respect à T, nous pouvons reconstructer le degré de l'input de l'algebra P par l'input de l'input de l'algebra P et par l'utilisation de cette technique nous pouvons augmenter l'efficience de l'attaque de niveau 2 et maintenant, cet exemple est bloqué dans 0,05 secondes. Donc, mettre tous ces étapes ensemble, c'est l'algorithme complète pour l'attaque de niveau 3. Nous avons utilisé un set de polynomiaux réduisables, ainsi que les degrés sont plus grands que le degré de l'algebra P. Ensuite, pour tous ces polynomiaux, nous considérons le point de vue final qui est la question de l'algebra P par l'input de l'algebra P. Nous éliminons les variables X par la compétition des résultats. Nous facturez ces polynomiaux. Nous éliminons les polynomiaux avec le plus haut de l'algebra P par rapport à Y. Ensuite, nous construisons l'algebra J' généré par F0 plus D, F1 plus D, S et Q0. Ensuite, quand nous avons un grand ordre de l'algebra P nous concluons la forme normale de toutes les polynomiaux dans le support de M plus D. Et ensuite, nous prenons l'algebra M plus M plus M pour réconstruire le texte. Qu'est-ce qui est la compétition de cet algorithme ? Le nombre de loops est equal au nombre de polynomiaux. Ici, C est choisi par l'attaque. Pour tous les polynomiaux, nous devons compter un résultat. Nous devons facturer. Donc, c'est fait par l'algorithme de la compétition. Ici, nous utilisons l'algorithme F4 ou F5. Cette compétition est obtenue par la régularité de l'idéal par l'algebra M. Et ensuite, nous devons utiliser l'algebra M pour réconstruire le texte. Donc, ensemble, la compétition totale de 3 attaques est épargnée par cette valeur, qui est de la saison de D à W7 de log P. Et la main observation est que cette quantité est quasi-linear à l'intérieur de la saison. Donc, maintenant, nous avons l'estimation de la compétition de l'attaque. Nous pouvons expérimenter les résultats. Donc, nous comparons les temps de l'attaque de l'algebra M quand P et D augmentent. Donc, la première ligne représente les paramètres recommandés. Donc, avec ces paramètres, l'attaque est 0.05 secondes. Et nous voyons que quand D augmente, l'attaque totale augmente de l'algebra D comme prévu. Et nous pouvons aussi voir que ce n'est pas spécifique à la caractéristique 2. L'attaque est aussi efficace quand P est large. Donc, nous avons vu la compétition complexe que la compétition était de l'algebra M à W7. Donc, nous pouvons essayer de augmenter W de l'algebra M et de la compétition complexe de l'algebra W. Et en faisant ça, nous verrons que le plus expensif de l'attaque devient la compétition de l'algebra M qui est comme prévu par la compétition complexe. Et même quand W est large, l'attaque reste pratique, même après le système de cryptosystème de l'algebra M et ça nous permet de performer un cryptosystème d'algebra M de l'algebra M par utilisant des outils d'algebra M donc, principalement, des bases de gramma et des taux de réserve et des récompositions de l'algebra M et ce n'est pas le cas pour les paramètres recommandés dans 0,05 secondes. Pour la perspective, ce n'est pas un algorithme pour réserver le problème de la finding de la section nous avons juste montré comment poursuivre le système de cryptosystème dans le contexte de l'algebra XOFAS. Donc, nous pensons que le problème de la finding de la section pourrait être une alternative pour le système de cryptosystème de l'algebra M pour le cryptosystème multivarié. Merci beaucoup pour votre attention.