nume rique
Tous les circuits présentés dans cette thèse ont subi une vérification poussée.
L’automatisation des tests est essentiels lorsque qu’il y a de nombreux circuits et pour
permettre au concepteur d’effectuer des tests de non-régressions. Pour les travaux présentés
dans cette thèse, j’ai automatisé le test fonctionnel de chaque élément du crypto-processeurs.
Ces tests sont réalisés par le simulateur évènementiel Modelsim de Mentor Graphics qui
simule l’élément sous test à partir de sa description. Il simule aussi le testeur qui fournit les
vecteurs d’entrées au circuit sous test. C’est aussi son rôle de vérifier à l’aide d’assertions la
validité des vecteurs de sorties.
Le jeu de fonctions à la disposition d’un testeur décrit en « vhdl »est limité et ne permet
pas d’effectuer une multiplication sur 𝐺𝐹(2
𝑑) ou manipuler des points sur une courbe
elliptique. Le test de nombreux éléments d’un crypto-processeur doit donc être écrit d’une
manière statique. Il en résulte des tests peu flexibles et un nombre restreint de vecteurs. Pour
remédier à ce problème j’ai développé un jeu de fonctions « vhdl » permettant au testeur
d’effectuer des opérations cryptographiques classiques pour générer des vecteurs d’entrées
aléatoires et vérifier les vecteurs de sorties associés. Ceci a été réalisé sous la forme d’une
bibliothèque dynamique (libeccvhd.so) a l’intermédiaire entre Modelsim et des
bibliothèques cryptographiques. Je peux ainsi comparer les sorties de mes circuits avec ceux
d’une implémentation de référence, dans mon cas une bibliothèque logicielle cryptographique
largement auditée et validée : openssl.
Fifure 1 Bibliothèques cryptographiques et simulation de circuits numériques
Les capacités offertes au testeur couvre l’arithmétique sur 𝐺𝐹(𝑝) et 𝐺𝐹(2
𝑑) et la
manipulation de points sur une courbe elliptique. La vérification fonctionnelle devient dès lors
plus robuste : par exemple, il est possible de vérifier l’implémentation de l’arithmétique sur
𝐺𝐹(𝑝) ou 𝐺𝐹(2
𝑑) pour de nombreux nombres premiers ou polynômes irréductibles choisis au
hasard. L’implémentation logicielle de référence utilisée pour l’arithmétique sur ces deux
corps est celle d’openssl.
Ma bibliothèque offre aussi la possibilité de décrire des tests faisant appel à des fonctions
tels que : générer un point aléatoire sur une courbe donnée (en coordonnées affines, ou avec
une représentation projective aléatoire), vérifier que deux points sont équivalents même s’ils
ont des représentations différentes et bien sûr, effectuer les opérations sur les points (addition,
doublage, multiplication scalaire). La référence des opérations sur les courbes de Weierstrass
sur 𝐺𝐹(𝑝) ou 𝐺𝐹(2
𝑑) est fournie par openssl avec la possibilité d’utiliser une courbe déjà
intégrée dans cette bibliothèque ou une courbe arbitraire. La référence des opérations sur les
courbes quartiques est fournie par la bibliothèque logicielle mphell développée à l’institut
Fourier (Grenoble).
Cette bibliothèque est réutilisée pour les tests et les attaques sur carte. Elle permet de
générer les points choisis au hasard sur une courbe qui sont ensuite envoyés au circuit à
travers une interface UART. Que ce soit pour le test sur carte ou les attaques, le point résultat
est toujours reçu et vérifié via une bibliothèque cryptographique de référence.
Annexe 3 Synthe se de haut niveau
applique e a la cryptographie sur les
courbes elliptiques
Suite à mes travaux présentés dans le Chapitre II basés sur une méthode classique de
conception (de bas en haut), j’ai exploré les possibilités que peut offrir la conception de haut
niveau (HLS) appliqué à la cryptographie basée sur les courbes elliptiques. Ce travail a été
mené en collaboration avec l’équipe SLS du laboratoire TIMA, plus particulièrement avec
Alban Bourge pour la partie applicative, flot de conception et Adrien Prost-Boucle pour le
support sur l’outil de synthèse de haut niveau AUGH [PrMu14] dont il est le développeur
principal. Je me contente, ici, de fournir un aperçu de ce travail et de ces conclusions. Pour
plus de détails, je renvois le lecteur vers l’article [PoBo16].
La méthode de conception est constituée de plusieurs boucles décrites par la Figure 1.
Durant la première phase de développement, de premières itérations sur la description haut
niveau permettent d’arriver à une description fonctionnelle. S’en suit alors des itérations pour
optimiser les performances estimées par l’outil de HLS. Le développement se termine par une
optimisation des performances en sortie du flot complet.
Figure 1 Flot et méthode de conception
La première ligne de la Figure 2 décrit les outils que nous avons utilisés pour la première
boucle. Le langage de haut niveau que nous utilisons est le langage C et la vérification
fonctionnelle est faite par comparaison avec openssl. Le logiciel AUGH [PrMu14] effectue
une synthèse de haut niveau pour générer des estimateurs et une description matérielle (en
langage vhdl) à partir de la description haut niveau. C’est un logiciel libre supportant un
grand nombre de FPGAs (Xilinx, Altera, Lattice). Dans nos expérimentations, nous avons
optimisé la description de haut niveau pour des FPGA Xilinx.
Figure 2 Outils sélectionnés pour en mettre en œuvre le flot de conception
Cette méthode de conception est rapide car les itérations en vue d’obtenir une description
fonctionnelle sont purement logicielles et l’on dispose en quelques secondes d’estimateur sur
le circuit matérielle en amont des outils du vendeur de FPGA. Par exemple, un multiplieur de
Montgomery par digit a été développé en 14 jours d’optimisations après de nombreuses
modifications architecturales et algorithmiques (voir Figure 3).
Figure 3 Développement d'un Multiplieur de Montgomery en quelques jours
Nous avons montré que la synthèse de haut niveau appliqué à la cryptographie basée sur
les courbes elliptiques permet d’obtenir rapidement des circuits compétitifs (voir Figure II-8,
page 67). Elle peut s’adapter à des contraintes spécifiques tels que la manipulation de grand
entiers et le calcul en temps constant. Par contre certaines étapes de la méthode proposée
nécessitent une intervention humaine. Le degré de parallélisme atteignable a quelques limites
avec l’outil de HLS, mais des développements en ce sens sont en cours.
Annexe 4 Courbes quartiques de
Dans le document
Sécurisation matérielle pour la cryptographie à base de courbes elliptiques
(Page 148-152)