Cryptographie multivariée et problème MQ
Cryptographie multivariée et problème MQ
Cours 9
Julien Lavauzelle
Université Paris 8
Master 1 mathématiques et applications – parcours ACC
25/03/2024
Séance précédente
Vu à la séance précédente :
– Introduction à la cryptographie post-quantique
– Réseaux euclidiens et problèmes difficiles associés
– Chiffrement NTRU
– LWE et chiffrement de Regev
Questions ?
2. Chiffrement HFE
3. Signature UOV
2. Chiffrement HFE
3. Signature UOV
La cryptographie « multivariée » repose sur le problème de calculer des solutions de systèmes d’équations
polynomiales (de degré ≥ 2) à plusieurs variables.
La cryptographie « multivariée » repose sur le problème de calculer des solutions de systèmes d’équations
polynomiales (de degré ≥ 2) à plusieurs variables.
Le problème difficile sous-jacent est le problème MQ (pour multivariate quadratic : équations de degré 2). On le
présente ici dans les corps finis.
La cryptographie « multivariée » repose sur le problème de calculer des solutions de systèmes d’équations
polynomiales (de degré ≥ 2) à plusieurs variables.
Le problème difficile sous-jacent est le problème MQ (pour multivariate quadratic : équations de degré 2). On le
présente ici dans les corps finis.
La cryptographie « multivariée » repose sur le problème de calculer des solutions de systèmes d’équations
polynomiales (de degré ≥ 2) à plusieurs variables.
Le problème difficile sous-jacent est le problème MQ (pour multivariate quadratic : équations de degré 2). On le
présente ici dans les corps finis.
Pour une application en cryptographie, il faut déduire du problème MQ une fonction à sens-unique et à trappe ?
Pour une application en cryptographie, il faut déduire du problème MQ une fonction à sens-unique et à trappe ?
Fait. On sait résoudre efficacement des équations polynomiales à une variable sur un corps fini.
Pour une application en cryptographie, il faut déduire du problème MQ une fonction à sens-unique et à trappe ?
Fait. On sait résoudre efficacement des équations polynomiales à une variable sur un corps fini.
Par exemple, algorithme de recherche de racines de Chien (Chien search), ou algorithmes de factorisation de
polynômes (algorithme de Berlekamp, de Cantor–Zassenhaus).
→ leur complexité est polynomiale en log q et en le degré du polynôme.
Pour une application en cryptographie, il faut déduire du problème MQ une fonction à sens-unique et à trappe ?
Fait. On sait résoudre efficacement des équations polynomiales à une variable sur un corps fini.
Par exemple, algorithme de recherche de racines de Chien (Chien search), ou algorithmes de factorisation de
polynômes (algorithme de Berlekamp, de Cantor–Zassenhaus).
→ leur complexité est polynomiale en log q et en le degré du polynôme.
Idée. Pour créer un système d’équations polynomiales multivariées à trappe, on passe de 1 variable à m variables :
Procédé :
– on choisit une extension de corps finis Fqm /Fq ,
– pour tout polynôme f ∈ Fqm [x], l’équation f (x) = 0 (dans Fqm ) peut se décomposer comme m équations
polynomiales à m variables (dans Fq ).
Remarque 1. Pour obtenir un système d’équations quadratiques sur Fq , on va choisir f sous une forme particulière :
Remarque 1. Pour obtenir un système d’équations quadratiques sur Fq , on va choisir f sous une forme particulière :
Remarque 1. Pour obtenir un système d’équations quadratiques sur Fq , on va choisir f sous une forme particulière :
i
En effet, comme x 7→ xq est Fq -linéaire, et vaut l’identité sur Fq , en décomposant sur une base Fqm /Fq , on obtient des
polynômes dont les termes sont de degré au plus 2.
Remarque 1. Pour obtenir un système d’équations quadratiques sur Fq , on va choisir f sous une forme particulière :
i
En effet, comme x 7→ xq est Fq -linéaire, et vaut l’identité sur Fq , en décomposant sur une base Fqm /Fq , on obtient des
polynômes dont les termes sont de degré au plus 2.
Remarque 2. Si l’on connaît la base Fqm /Fq qui a été choisie, on peut aisément appliquer la transformation
f (x) = 0 ←→ { fi ( x ) = 0 } 1 ≤ i ≤ m
Remarque 1. Pour obtenir un système d’équations quadratiques sur Fq , on va choisir f sous une forme particulière :
i
En effet, comme x 7→ xq est Fq -linéaire, et vaut l’identité sur Fq , en décomposant sur une base Fqm /Fq , on obtient des
polynômes dont les termes sont de degré au plus 2.
Remarque 2. Si l’on connaît la base Fqm /Fq qui a été choisie, on peut aisément appliquer la transformation
f (x) = 0 ←→ { fi ( x ) = 0 } 1 ≤ i ≤ m
Idée pour la crypto : on va cacher cette base en appliquant des transformations affines sur les variables x et sur le
système final.
2. Chiffrement HFE
3. Signature UOV
3. Alice calcule
g1 (x) f1 (S · x)
g2 (x) f2 (S · x)
. = R· ..
..
.
gm (x) fm ( S · x )
3. Alice calcule
g1 (x) f1 (S · x)
g2 (x) f2 (S · x)
. = R· ..
..
.
gm (x) fm ( S · x )
4. Les clefs sont :
– clé privée : les transformations R et S et le polynôme f ∈ Fqm [x]
– clé publique : les polynômes gi (x) ∈ Fq [x1 , . . . , xm ].
HFE : CHIFFREMENT
Pour chiffrer un message a = (a1 , . . . , am ) ∈ Fm
q :
1. calculer y = (g1 (a), g2 (a), . . . , gm (a)),
2. retourner y.
HFE : CHIFFREMENT
Pour chiffrer un message a = (a1 , . . . , am ) ∈ Fm
q :
1. calculer y = (g1 (a), g2 (a), . . . , gm (a)),
2. retourner y.
HFE : DÉCHIFFREMENT
1. Calculer b = R−1 (y) ∈ Fm
q.
2. Calculer Z ⊂ Fqm , l’ensemble des solutions z de l’équation f (z) = b, où b ∈ Fqm est l’élément associé à b.
3. Calculer S−1 (Z ) et reconnaître le message a.
HFE : CHIFFREMENT
Pour chiffrer un message a = (a1 , . . . , am ) ∈ Fm
q :
1. calculer y = (g1 (a), g2 (a), . . . , gm (a)),
2. retourner y.
HFE : DÉCHIFFREMENT
1. Calculer b = R−1 (y) ∈ Fm
q.
2. Calculer Z ⊂ Fqm , l’ensemble des solutions z de l’équation f (z) = b, où b ∈ Fqm est l’élément associé à b.
3. Calculer S−1 (Z ) et reconnaître le message a.
Remarque. Pour reconnaître le message a parmi toutes les solutions, on peut y ajouter de la redondance, un haché, ou
encore utiliser un procédé de remplissage (padding).
Le chiffrement HFE a été attaqué par Kipnis et Shamir, en 1999, qui retrouvent la clef privée à partir de la clé
publique en temps polynomial.
Cryptanalysis of the HFE Public Key Cryptosystem. A. Kipnis et A. Shamir. CRYPTO. 1999.
Le chiffrement HFE a été attaqué par Kipnis et Shamir, en 1999, qui retrouvent la clef privée à partir de la clé
publique en temps polynomial.
Cryptanalysis of the HFE Public Key Cryptosystem. A. Kipnis et A. Shamir. CRYPTO. 1999.
Le chiffrement HFE a été attaqué par Kipnis et Shamir, en 1999, qui retrouvent la clef privée à partir de la clé
publique en temps polynomial.
Cryptanalysis of the HFE Public Key Cryptosystem. A. Kipnis et A. Shamir. CRYPTO. 1999.
Informellement, l’idée est de remarquer que la partie quadratique de G peut être modélisée comme une forme
quadratique, dont la matrice associée a un rang particulièrement faible.
Le chiffrement HFE a été attaqué par Kipnis et Shamir, en 1999, qui retrouvent la clef privée à partir de la clé
publique en temps polynomial.
Cryptanalysis of the HFE Public Key Cryptosystem. A. Kipnis et A. Shamir. CRYPTO. 1999.
Informellement, l’idée est de remarquer que la partie quadratique de G peut être modélisée comme une forme
quadratique, dont la matrice associée a un rang particulièrement faible.
On se ramène alors à une version d’un problème appelé MinRank (étant données des matrices M 1 , . . . , M n , trouver
une combinaison linéaire des matrices qui a faible rang).
Le chiffrement HFE a été attaqué par Kipnis et Shamir, en 1999, qui retrouvent la clef privée à partir de la clé
publique en temps polynomial.
Cryptanalysis of the HFE Public Key Cryptosystem. A. Kipnis et A. Shamir. CRYPTO. 1999.
Informellement, l’idée est de remarquer que la partie quadratique de G peut être modélisée comme une forme
quadratique, dont la matrice associée a un rang particulièrement faible.
On se ramène alors à une version d’un problème appelé MinRank (étant données des matrices M 1 , . . . , M n , trouver
une combinaison linéaire des matrices qui a faible rang).
Ce problème est NP-difficile, mais il s’avère que l’instance choisie pour HFE est facile, et résoluble par des
techniques de « relinéarisation » (des attaques par calcul de bases de Gröbner fonctionnent également).
Le chiffrement HFE a été attaqué par Kipnis et Shamir, en 1999, qui retrouvent la clef privée à partir de la clé
publique en temps polynomial.
Cryptanalysis of the HFE Public Key Cryptosystem. A. Kipnis et A. Shamir. CRYPTO. 1999.
Informellement, l’idée est de remarquer que la partie quadratique de G peut être modélisée comme une forme
quadratique, dont la matrice associée a un rang particulièrement faible.
On se ramène alors à une version d’un problème appelé MinRank (étant données des matrices M 1 , . . . , M n , trouver
une combinaison linéaire des matrices qui a faible rang).
Ce problème est NP-difficile, mais il s’avère que l’instance choisie pour HFE est facile, et résoluble par des
techniques de « relinéarisation » (des attaques par calcul de bases de Gröbner fonctionnent également).
Remarque. Des variantes de HFE (par exemple, multi-HFE, HFE− ,...) ont également été attaquées.
Le chiffrement HFE a été attaqué par Kipnis et Shamir, en 1999, qui retrouvent la clef privée à partir de la clé
publique en temps polynomial.
Cryptanalysis of the HFE Public Key Cryptosystem. A. Kipnis et A. Shamir. CRYPTO. 1999.
Informellement, l’idée est de remarquer que la partie quadratique de G peut être modélisée comme une forme
quadratique, dont la matrice associée a un rang particulièrement faible.
On se ramène alors à une version d’un problème appelé MinRank (étant données des matrices M 1 , . . . , M n , trouver
une combinaison linéaire des matrices qui a faible rang).
Ce problème est NP-difficile, mais il s’avère que l’instance choisie pour HFE est facile, et résoluble par des
techniques de « relinéarisation » (des attaques par calcul de bases de Gröbner fonctionnent également).
Remarque. Des variantes de HFE (par exemple, multi-HFE, HFE− ,...) ont également été attaquées.
Conclusion partielle. En général, peu de solutions pratiques de chiffrement à clef publique basées sur des systèmes
polynomiaux multivariés. En revanche, beaucoup de signatures numériques.
2. Chiffrement HFE
3. Signature UOV
∑ ∑ ∑
(k ) (k ) (k )
fk (x) = αi,j xi xj + β i,j xi xj + γi xi + η (k) .
i∈V,j∈O i,j∈V,i≤j i∈V ∪O
∑ ∑ ∑
(k ) (k ) (k )
fk (x) = αi,j xi xj + β i,j xi xj + γi xi + η (k) .
i∈V,j∈O i,j∈V,i≤j i∈V ∪O
F: Fnq → Foq
x = (x1 , . . . , xv , xv+1 , . . . , xn ) 7→ (fv+1 (x), . . . , fn (x))
∑ ∑ ∑
(k ) (k ) (k )
fk (x) = αi,j xi xj + β i,j xi xj + γi xi + η (k) .
i∈V,j∈O i,j∈V,i≤j i∈V ∪O
F: Fnq → Foq
x = (x1 , . . . , xv , xv+1 , . . . , xn ) 7→ (fv+1 (x), . . . , fn (x))
Comment ?
∑ ∑ ∑
(k ) (k ) (k )
fk (x) = αi,j xi xj + β i,j xi xj + γi xi + η (k) .
i∈V,j∈O i,j∈V,i≤j i∈V ∪O
F: Fnq → Foq
x = (x1 , . . . , xv , xv+1 , . . . , xn ) 7→ (fv+1 (x), . . . , fn (x))
Comment ?
1. On choisit aléatoirement des valeurs x1 , x2 , . . . , xv , et en substituant dans les équations, on obtient un système
linéaire de o équations en o inconnues.
2. On essaie de l’inverser par élimination gaussienne.
3. Si cela ne fonctionne pas, on recommence.
10/15 J. Lavauzelle – Clé publique 9 – M1 mathématiques et applications
La signature UOV : unbalanced oil and vinegar
∑ ∑ ∑
(k ) (k ) (k )
fk ( x ) = αi,j xi xj + β i,j xi xj + γi xi + η (k) .
i∈V,j∈O i,j∈V,i≤j i∈V ∪O
et
F: Fnq → Foq
x 7→ (fv+1 (x), . . . , fn (x))
3. La clé publique est P := L1 ◦ F ◦ L2 , la clé secrète est formée de L1 , L2 et F.
UOV : SIGNATURE
Alice souhaite signer m ∈ {0, 1}∗ .
1. Elle hache son message : h = H (m).
2. Elle calcule successivement z = L1−1 (h), z′ = F−1 (z) et , s = L2−1 (z′ ).
3. Elle retourne la signature s.
UOV : SIGNATURE
Alice souhaite signer m ∈ {0, 1}∗ .
1. Elle hache son message : h = H (m).
2. Elle calcule successivement z = L1−1 (h), z′ = F−1 (z) et , s = L2−1 (z′ ).
3. Elle retourne la signature s.
UOV : VÉRIFICATION
Bob souhaite vérifier si la signature s correspond au message m.
1. Bob calcule h = H (m)
2. Bob calcule P(s) (P est la clé publique), et compare le résultat avec h.
3. S’il y a égalité, la signature est acceptée. Sinon elle est rejetée.
Des attaques exponentielles (mais efficaces pour les paramètres proposés) existent, ce qui implique de choisir des clés
très grandes.
Des attaques exponentielles (mais efficaces pour les paramètres proposés) existent, ce qui implique de choisir des clés
très grandes.
Notons par exemple :
Des attaques exponentielles (mais efficaces pour les paramètres proposés) existent, ce qui implique de choisir des clés
très grandes.
Notons par exemple :
– La résolution directe du problème MQ sous-jacent. Pour cela on utilise un calcul de bases de Gröbner par les
algorithmes F4 ou F5 de Faugère.
Des attaques exponentielles (mais efficaces pour les paramètres proposés) existent, ce qui implique de choisir des clés
très grandes.
Notons par exemple :
– La résolution directe du problème MQ sous-jacent. Pour cela on utilise un calcul de bases de Gröbner par les
algorithmes F4 ou F5 de Faugère.
– La recherche d’une combinaison linéaire de faible rang (sur Fq ) des applications coordonnées de P (clé publique).
C’est une version du problème MinRank, lui aussi résoluble par calcul de bases de Gröbner en temps
exponentiel.
Des attaques exponentielles (mais efficaces pour les paramètres proposés) existent, ce qui implique de choisir des clés
très grandes.
Notons par exemple :
– La résolution directe du problème MQ sous-jacent. Pour cela on utilise un calcul de bases de Gröbner par les
algorithmes F4 ou F5 de Faugère.
– La recherche d’une combinaison linéaire de faible rang (sur Fq ) des applications coordonnées de P (clé publique).
C’est une version du problème MinRank, lui aussi résoluble par calcul de bases de Gröbner en temps
exponentiel.
– Recherche brute des variables « huile ».
Des attaques exponentielles (mais efficaces pour les paramètres proposés) existent, ce qui implique de choisir des clés
très grandes.
Notons par exemple :
– La résolution directe du problème MQ sous-jacent. Pour cela on utilise un calcul de bases de Gröbner par les
algorithmes F4 ou F5 de Faugère.
– La recherche d’une combinaison linéaire de faible rang (sur Fq ) des applications coordonnées de P (clé publique).
C’est une version du problème MinRank, lui aussi résoluble par calcul de bases de Gröbner en temps
exponentiel.
– Recherche brute des variables « huile ».
– D’autres : réduction à des sous-corps, recherche de sous-espaces particuliers, etc.
Des attaques exponentielles (mais efficaces pour les paramètres proposés) existent, ce qui implique de choisir des clés
très grandes.
Notons par exemple :
– La résolution directe du problème MQ sous-jacent. Pour cela on utilise un calcul de bases de Gröbner par les
algorithmes F4 ou F5 de Faugère.
– La recherche d’une combinaison linéaire de faible rang (sur Fq ) des applications coordonnées de P (clé publique).
C’est une version du problème MinRank, lui aussi résoluble par calcul de bases de Gröbner en temps
exponentiel.
– Recherche brute des variables « huile ».
– D’autres : réduction à des sous-corps, recherche de sous-espaces particuliers, etc.
Remarque. La version équilibrée (v = o) de UOV a été attaquée en temps polynomial par Kipnis et Shamir.
La signature Rainbow proposait une amélioration qui consiste à « empiler » m ≥ 2 couches de problèmes UOV.
Elle avait été proposée pour standardisation au NIST, avec le choix m = 3.
https://www.pqcrainbow.org
Tailles de clefs et signature :
sécurité (bits) 128 192 256
(q, v1 , v2 − v1 , v3 − v2 ) (16, 36, 32, 32) (256, 68, 32, 48) (256, 96, 36, 64)
clé publique 157.8 ko 861.3 ko 1.89 Mo
clé privée 101.2 ko 611.3 ko 1.38 Mo
taille de signature 66 o 164 o 204 o
La signature Rainbow proposait une amélioration qui consiste à « empiler » m ≥ 2 couches de problèmes UOV.
Elle avait été proposée pour standardisation au NIST, avec le choix m = 3.
https://www.pqcrainbow.org
Tailles de clefs et signature :
sécurité (bits) 128 192 256
(q, v1 , v2 − v1 , v3 − v2 ) (16, 36, 32, 32) (256, 68, 32, 48) (256, 96, 36, 64)
clé publique 157.8 ko 861.3 ko 1.89 Mo
clé privée 101.2 ko 611.3 ko 1.38 Mo
taille de signature 66 o 164 o 204 o
Attaque récente. Mais à la conférence CRYPTO en 2022, Beullens donne une attaque sur la clé d’une durée de
quelques jours.
La signature Rainbow proposait une amélioration qui consiste à « empiler » m ≥ 2 couches de problèmes UOV.
Elle avait été proposée pour standardisation au NIST, avec le choix m = 3.
https://www.pqcrainbow.org
Tailles de clefs et signature :
sécurité (bits) 128 192 256
(q, v1 , v2 − v1 , v3 − v2 ) (16, 36, 32, 32) (256, 68, 32, 48) (256, 96, 36, 64)
clé publique 157.8 ko 861.3 ko 1.89 Mo
clé privée 101.2 ko 611.3 ko 1.38 Mo
taille de signature 66 o 164 o 204 o
Attaque récente. Mais à la conférence CRYPTO en 2022, Beullens donne une attaque sur la clé d’une durée de
quelques jours.
La signature UOV reste proposée comme candidate (dans de nombreuses versions) à la compétition du NIST.
Questions ?