Échange de clefs dans les graphes d'isogénies supersingulières

Mots clés: courbes elliptiques, isogénies, multi-précision.

Le but de ce projet est d’implanter le protocôle d’échange de clefs SIDH (Supersingular Isogeny Diffie-Hellman), dans des graphes d’isogénies supersingulières de degré arbitraire.

Résumé

Parmi les plus jeunes des protocoles post-quantiques, SIDH est un échange de clef dont la sécurité repose sur la difficulté de trouver des chemins dans de très grands graphes d’isogénies entre courbes elliptiques supersingulières. Initialement proposé en 2011, il fait l’objet en 2017 d’une soumission à la compétition NIST pour la standardisation de primitives post-quantiques.

Dans SIDH on fixe un nombre premier de la forme , où et sont deux petits premiers distincts (typiquement et ), et est un petit cofacteur (souvent égal à ). En supposant que divise , on fixe la courbe initiale , le choix de garantit alors que est supersingulière, d’ordre sur , et sur .

La première phase de l’échange de clef consiste pour Alice à choisir un point secret de d’ordre , à calculer l’isogénie de noyaux , et à publier sa courbe image . Bob fait l’opération analogue avec les points de -torsion. Dans la deuxième phase, Alice et Bob répètent leurs calculs secret à partir des courbes publiques respectives, obtenant ainsi la clef partagée.

La majorité des implantations de SIDH utilise et pour et . Il est néanmoins possible d’utiliser d’autres nombres premiers et d’autres courbes de départ, avec potentiellement des gains en efficacité. Le but de ce projet est d’implanter un échange de clefs SIDH d’après l’état de l’art, ainsi que des variations utilisant des degrés d’isogénies non conventionnels.

Le projet est à réaliser en C à l’aide d’une bibliothèque de grands entiers, par exemple GMP. Neanmoins du code externe dans d’autres langages, par exemple Sage, peut être utilisé pour trouver des paramètres et adaptés, ainsi que pour définir les stratégies de calcul.

Objectifs

Prérequis

Connaissances en courbes elliptiques.

Références