Problèmes mathématiques asymétriques
La section qui suit est dédiée à la description de problèmes asymétriques répandus en cryptographie et à l’énumération de règles et recommandations associées.
Factorisation
On appelle « module RSA », ou plus simplement « module », un nombre entier obtenu de manière secrète par multiplication de deux nombres premiers, généralement de taille comparable. Le problème de la factorisation d’un module RSA consiste à retrouver la décomposition en facteurs premiers d’un module RSA donné. Dans la suite, on désignera ce problème par « problème de la factorisation ».
Le problème de la factorisation est principalement utilisé par le mécanisme RSA. Les calculs de chiffrement et de déchiffrement RSA font intervenir deux autres données que le module, appelées « exposant public » et « exposant secret ».
- La taille minimale du module est de 2048 bits, pour une utilisation ne devant pas dépasser la fin de l’année 2030.
- Pour une utilisation à partir de l’année 2031, la taille minimale du module est de 3072 bits.
- L’exposant secret doit être environ de même taille que le module.
- Pour les applications de chiffrement, l’exposant public doit être strictement supérieur à et avoir une taille maximale de 256 bits.
- Les nombres premiers constitutifs du module doivent être choisis aléatoirement uniformément, éventuellement sous des conditions supplémentaires satisfaites par un grand sous-ensemble de ces nombres.
- Il est recommandé d’employer des modules d’au moins 3072 bits, même pour une utilisation ne devant pas dépasser 2030.
- Il est recommandé, pour toute application, d’employer des exposants publics strictement supérieurs à et de taille maximale 256 bits.
- Il est recommandé que les nombres premiers constitutifs du module soient de même taille.
- Le record public de factorisation (remontant à 2020) est de 829 bits. La taille de module de 1024 bits (encore occasionnellement rencontrée) est donc en deçà d’une marge de sécurité raisonnable. En revanche, compte tenu de la complexité des algorithmes connus pour factoriser de grands entiers, une taille de 3000 bits (en pratique, 3072 bits) donnerait une sécurité de même ordre de grandeur que celle d’une clé symétrique de 128 bits, et donc suffisante. Par conséquent, l’emploi de modules de 1024 bits est considéré comme une prise de risque incompatible avec des critères de sécurité raisonnables.
- L’annexe B.2 fournit des informations complémentaires sur les analyses liées au problème de la factorisation.
- L’emploi d’exposants publics très petits, tels que l’exposant 3, est également à proscrire dans le cas du chiffrement à cause des attaques existantes [13]. Plus généralement, pour toute application, l’emploi de tels exposants est déconseillé pour des raisons de sécurité.
- L’emploi d’exposants secrets particuliers (comme des exposants secrets petits par exemple) afin d’améliorer les performances est à proscrire. En revanche, l’emploi d’exposants publics particuliers, dans les limites de la remarque précédente, est possible : en pratique, l’exposant public généralement utilisé est .
- L’emploi de nombres premiers et trop proches ou de tailles trop différentes peut compromettre la sécurité du système. Il faut également éviter des valeurs possédant des propriétés particulières comme l’absence d’un grand facteur premier dans la décomposition de ou . Pour éviter ces problèmes, il faut choisir et aléatoirement uniformément parmi les nombres premiers de taille égale à la moitié de la taille du module, éventuellement sous la condition supplémentaire que et aient de grands diviseurs premiers.
- Le problème de la factorisation est résolu en temps polynomial par un adversaire quantique utilisant l’algorithme de Shor [32]. Il ne fournit aucune sécurité post-quantique.
Logarithme discret
Le problème dit « du logarithme discret » est fondé sur la difficulté d’inverser l’opération d’exponentiation dans un groupe. Ce problème peut être instancié dans différentes structures et nous donnons ici des règles et recommandations sur les choix de paramètres à utiliser pour trois d’entre elles :
- les corps finis à éléments où est un nombre premier ;
- les groupes des points de courbes elliptiques définies sur où est un nombre premier ;
- les groupes des points de courbes elliptiques définies sur .
Bien qu’il soit possible d’instancier ce problème dans d’autres structures, nombre d’entre elles sont à proscrire : tel est notamment le cas des corps finis de petite caractéristique, et en particulier de . Certaines de ces autres structures ne présentent toutefois pas de faiblesses connues, mais leur sécurité doit être étudiée au cas par cas et leur emploi doit être soumis à l’avis de l’ANSSI.
Logarithme discret dans . Le problème dit « du logarithme discret dans » est fondé sur des calculs effectués dans le corps fini à éléments, où est un nombre premier également appelé « module ».
- La taille minimale de modules premiers est de 2048 bits pour une utilisation ne devant pas dépasser la fin de l’année 2030.
- Pour une utilisation à partir de l’année 2031, la taille minimale de modules premiers est de 3072 bits.
- On emploiera des sous-groupes dont l’ordre est multiple d’un nombre premier d’au moins 250 bits.
Le problème du logarithme discret dans semble avoir une complexité comparable à celle de la factorisation. Des méthodes similaires s’appliquent à la résolution des deux problèmes et il est raisonnable de penser qu’une avancée majeure dans la résolution du problème de la factorisation s’accompagnerait d’une avancée semblable dans celui du logarithme discret.
Il est par conséquent naturel d’appliquer des règles identiques pour les deux problèmes.
Le problème du logarithme discret semble cependant légèrement plus difficile en pratique, certaines phases de calcul étant plus délicates que pour la factorisation, les records de calcul (voir annexe B) mettent en évidence un décalage compris entre 100 et 200 bits mais on peut se demander si une telle différence ne provient pas en partie du plus grand prestige promis à un record en matière de factorisation.
Si l’ordre d’un sous-groupe n’est pas premier mais possède un petit facteur premier (dans le pire des cas, 2), le problème Diffie–Hellman décisionnel dans ce sous-groupe peut être résolu avec une probabilité non négligeable. Ceci peut être très problématique, notamment dans des mécanismes de chiffrement de type ElGamal.
Le problème du logarithme discret dans est résolu en temps polynomial par un adversaire quantique utilisant l’algorithme de Shor [32]. Il ne fournit aucune sécurité post-quantique.
Logarithme discret sur les courbes elliptiques définies sur . Il est également possible de définir un problème de logarithme discret dans des structures plus complexes pour lesquelles aucun algorithme classique plus efficace que les méthodes génériques de calcul de logarithme discret n’est connu. C’est en particulier aujourd’hui le cas des courbes elliptiques qui sont définies sur un corps de base pouvant être, en pratique, premier () ou binaire ().
- On emploiera des sous-groupes dont l’ordre est multiple d’un nombre premier d’au moins 250 bits.
- En cas d’utilisation de courbes particulières faisant reposer la sécurité sur un problème mathématique plus facile que le problème générique de calcul de logarithme discret sur courbe elliptique définie sur , ce problème devra vérifier les règles correspondantes.
- Le problème du logarithme discret sur courbe elliptique permet d’obtenir, pour des tailles de paramètres réduites, une sécurité classique comparable à celle exigée pour des primitives symétriques.
- En cas d’utilisation de courbes généralement qualifiées de « particulières », la sécurité peut être sérieusement dégradée. Le problème mathématique sous-jacent peut notamment être ramené à un problème de calcul de logarithme discret dans un corps fini et non plus sur une courbe elliptique. Dans ce cas, les règles relatives à ce problème s’appliquent bien évidemment. Par exemple, dans le cadre d’un mécanisme utilisant les couplages – pour lequel l’utilisation de courbes « particulières » est nécessaire – le choix desdites courbes devra être fait avec soin. En particulier, les préconisations de la section 2.2.1.2 concernant la difficulté du logarithme discret devront être prises en compte pour le choix du groupe multiplicatif dans lequel le couplage prend ses valeurs.
- La raison de recommander un sous-groupe d’ordre premier est encore une fois que si l’ordre d’un sous-groupe n’est pas premier mais un petit multiple (dans le pire cas, le produit par 2) d’un grand premier, le problème Diffie–Hellman décisionnel dans ce sous-groupe peut être résolu avec une probabilité non négligeable.
- Le problème du logarithme discret sur les courbes elliptiques définies sur est résolu en temps polynomial par un adversaire quantique utilisant l’algorithme de Shor [32]. Il ne fournit aucune sécurité post-quantique.
- La courbe FRP256v1 – définie dans le journal officiel n°241 du 16/10/2011 et dont les paramètres, validés par l’ANSSI, peuvent librement être intégrés dans tous les produits de sécurité – est conforme au référentiel.
- Les courbes P-256, P-384 et P-521 définies dans le FIPS 186-5 de 2023, ainsi que des courbes brainpoolP256r1, brainpoolP384r1 et brainpoolP512r1 sont conformes au référentiel.
Logarithme discret sur les courbes elliptiques définies sur . Les règles énoncées précédemment se déclinent de manière similaire, en faisant attention au choix de .
- L’ordre du sous-groupe doit être multiple d’un nombre premier d’au moins 250 bits.
- Le paramètre doit être un nombre premier.
- En cas d’utilisation de courbes particulières faisant reposer la sécurité sur un problème mathématique plus facile que le problème générique de calcul de logarithme discret sur courbe elliptique définie sur , ce problème devra vérifier les règles correspondantes.
- L’emploi de composé réduit considérablement la difficulté du calcul de logarithme discret et affaiblit donc le mécanisme correspondant.
- Les courbes elliptiques définies sur ne sont pas différenciées de celles définies sur .
- Le problème du logarithme discret sur les courbes elliptiques définies sur est résolu en temps polynomial par un adversaire quantique utilisant l’algorithme de Shor [32]. Il ne fournit aucune sécurité postquantique.
Réseaux euclidiens : apprentissage avec erreurs, solution entière courte
Les mécanismes fondés sur les réseaux euclidiens sont généralement construits à partir des problèmes échantillonnables de « l’apprentissage avec erreurs » (LWE, « Learning with Errors ») et de la « solution entière courte » (SIS, « Short Integer Solution »), ou de leurs variantes respectives, MLWE et MSIS [27].
On peut, pour certains choix de paramètres, faire la preuve que résoudre l’un de ces problèmes implique de résoudre des problèmes géométriques tels que le problème du plus court vecteur (SVP, « Shortest Vector Problem ») ou celui du plus proche vecteur (CVP, « Closest Vector Problem »). Ces problèmes sont présumés difficiles à résoudre, même avec l’aide d’un ordinateur quantique [30]. En pratique, les attaques de type « block Korkine-Zolotarev » (BKZ) [31] sont les plus efficaces pour les paramètres les plus usuels. Leur complexité est dominée par la résolution de SVP dans une dimension réduite, appelée taille de bloc.
- Les paramètres de (M)LWE doivent être tels que la complexité de la meilleure attaque quantique connue soit au moins aussi élevée que celle de la résolution de SVP dans un réseau générique de dimension 400.
- Les paramètres de (M)SIS doivent être tels que la complexité de la meilleure attaque quantique connue soit au moins aussi élevée que celle de la résolution de SVP dans un réseau générique de dimension 400.
- Il est recommandé que les paramètres de (M)LWE soient tels que la complexité de la meilleure attaque quantique connue soit au moins aussi élevée que celle de la résolution de SVP dans un réseau générique de dimension 600.
- Il est recommandé que les paramètres de (M)SIS soient tels que la complexité de la meilleure attaque quantique connue soit au moins aussi élevée que celle de la résolution de SVP dans un réseau générique de dimension 600.
- Les problèmes de réseaux euclidiens ont un espace de paramètres bien plus grand que les problèmes fondés sur la théorie des nombres. En effet, pour paramétrer le problème LWE, il faut choisir : les deux dimensions de la matrice définissant le système, le module, la distribution du secret ainsi que la distribution du bruit ajouté aux équations. L’interaction entre ces paramètres est complexe, et les jeux de paramètres proposés par les standards prennent en général en compte toutes les attaques connues, même celles fonctionnant dans des régimes spécifiques.
- Les algorithmes fondés sur les réseaux euclidiens ont pour but d’apporter une sécurité post-quantique. À ce titre, il est crucial de prendre en compte leur sécurité contre un adversaire quantique, contrairement aux problèmes fondés sur la théorie des nombres qui n’apportent qu’une sécurité pré-quantique.
- Compte tenu des meilleures attaques quantiques connues pour résoudre SVP [12] combinées avec des techniques de réduction de la dimension du problème [18], un problème SVP en dimension 400, respectivement 600, requiert un calcul quantique de complexité en temps estimé à au moins , respectivement . Cependant, cette estimation néglige les facteurs polynomiaux de l’attaque, qui sont difficiles à calculer précisément, et sous-estime donc largement sa complexité.
- La résolution de SVP est une étape répétée à de nombreuses reprises lors de l’exécution de l’algorithme BKZ, et donc au cours de la résolution des problèmes (M)LWE et (M)SIS. Cependant, il reste de nombreux points d’ombre sur les heuristiques utilisées pendant ces résolutions, notamment dans le cas de l’attaque dite “duale” contre LWE [11, 19, 28]. De plus, l’optimisation de l’algorithme BKZ est toujours à l’étude dans la communauté académique [1]. De manière conservatrice, la règle considère que la complexité de ces attaques est équivalente à celle d’une seule résolution de SVP.