Blanc SIMI 2 - Blanc - SIMI 2 - Science informatique et applications

Protections Arithmétiques Vis à vis des attaques physiques pour la cryptOgraphIe basée sur les courbeS elliptiques – PAVOIS

Protections Arithmétiques Vis à vis des attaques physiques pour la cryptOgraphIe basée sur les courbeS elliptiques.

Étude et mise en œuvre de nouveaux algorithmes arithmétiques pour la cryptographie sur les courbes elliptiques (ECC) en matériel et logiciel.

Protections arithmétiques

Ce projet porte sur l'étude de solutions au niveau arithmétique mixant efficacité à l'exécution et résistance aux attaques physiques par canaux cachés pour des crypto-systèmes à base de courbes elliptiques (ECC) sur des plateformes à base de circuits FPGA ou ASIC et sur des processeurs multicœurs. Un objectif important est d'étudier théoriquement et d'évaluer pratiquement l'impact de représentations des nombres et d'algorithmes arithmétiques utilisés pour protéger certains calculs dans ECC sur les performances (p. ex. vitesse, débit, latence) et le coût d'implantation ou d'utilisation (p. ex. surface de silicium, mémoire nécessaire, énergie consommée) pour différents niveaux de sécurité théorique et de résistance à des attaques physiques par observation ou perturbation (p. ex. analyse simple ou différentielle, injection de fautes). Nous avons étudié ces aspects pour différentes arithmétiques des corps finis utilisés dans ECC (GF( p ) et GF( 2 )), le stockage et la manipulation des clés secrètes (les scalaires). Nous avons aussi étudié comment se comportent certains solutions dans le cadre de la cryptographie basée sur des courbes hyper-elliptiques (HECC).

Les principales techniques proposées, étudiées, implantées, évaluées et comparées sont :

Proposition d'algorithmes arithmétiques et leurs implantations matérielles (FPGA et ASIC) ou logicielles (p. ex. parallèles sur processeurs multicœurs) qui intègrent des protections internes contre certaines attaques par uniformisation ou « randomisation » des calculs en arithmétique des corps finis en apportant des gains en efficacité d'exécution par rapport à l'état de l'art (p. ex. des représentations modulaires des nombres ou RNS) ;

Utilisation de représentations avancées des nombres qui permettent de protéger mathématiquement les clés secrètes manipulées dans le circuit/processeur (tout en garantissant le bon comportement des calculs), p. ex. nous avons utilisé des représentations redondantes, des représentations à base de chaîne d'additions, et des représentations en bases multiples (p. ex. les bases (2 et 3 simultanément) ou (2, 3 et 5 simultanément) au lieu de la simple base 2 utilisée dans la communauté) ;

Étude et développement d'une architecture matérielle paramétrable lors de la conception, et de ses outils de développement pour ECC et HECC qui seront distribués en matériel/logiciel libre après les publications finales relatives à la version ASIC de notre cryptoprocesseur revenu de fabrication à la
fonderie au 19 janvier 2017 après plusieurs mois de retard chez le fondeur.

Algorithmes arithmétiques pour ECC sur multicœurs. L'objectif principal est d'utiliser au mieux les multiples cœurs pour à la fois paralléliser les calculs habituellement séquentiels et pour « casser » la dépendance (directe ou statistique) entre les traces mesurée et les secrets.

Représentation modulaire des nombres (RNS). RNS permet de paralléliser naturellement certaines opérations (+,-,*) en décomposant les grands nombres en petits éléments modulo une base de moduli. Mais pour d'autres opérations, comme la réduction modulaire, le fait que RNS ne soit pas un système positionnel d'écriture des nombres complique sensiblement les choses. Nous avons proposé tout un ensemble d'algorithmes arithmétiques et modifications de la représentation RNS bien plus efficaces que les techniques classiques.

Attaques par canaux auxiliaires et contre-mesures. Nous avons utilisé des attaques par observation de la consommation d'énergie ou du rayonnement électromagnétique
des circuits pour évaluer comment se comportent certains calculs arithmétiques. En particulier, la représentation RNS avec une « randomisation » des adresses des
mémoires semble offrir un bon niveau de robustesse.

Implantations matérielles sécurisées de crypto-systèmes ECC. Nous avons proposé des opérateurs de calcul qui sont naturellement robustes à certaines attaques (ils présentent une activité soit uniforme soit aléatoire dans le temps, ces deux aspects peuvent même être mélangés). Nous avons aussi implanté, pour la toute première fois, totalement en matériel des techniques de recodages de scalaires.

Mise en œuvre d'une architecture matérielle pour la cryptographie sur courbes hyper-elliptiques.

Réalisation d'un prototype ASIC de circuit ECC 256 bits. Nous avons conçus, totalement par nous même, un circuit intégré numérique de prototype dédié à ECC.

Les enjeux sur les implantations ECC multicoeurs sont d'essayer de voir comment faire à la fois les calculs parallèles sur plusieurs cœurs des calculs aux niveaux courbes et corps finis et ceux relatifs au recodage des scalaires sur des machines avec de nombreux cœurs (machines de type manycore).

Les enjeux pour RNS, et nos variantes de la représentation, sont de passer au développement d'un prototype matériel de grande envergure. Nous
pensons que cet axe de recherche est très prometteur pour la cryptographie asymétrique (et pas seulement ECC/HECC).

Les enjeux sont nombreux pour les attaques et contremesures : essayer de monter des attaques mélangeant apprentissage et templates pour viser des comportements mathématiquement plus complexes que les dépendances statistiques habituelles ; proposer des contre-mesures algorithmiques à base de randomisation des calculs internes (dans les chemins non-critiques en terme de dépendances) ; proposer des contre-mesures aux niveaux architecture et circuit compatibles avec des utilisations d'arithmétiques évoluées (algorithmes et représentations).

Nous continurons d'essayer de trouver de nouvelles idées pour encore accélérer les calculs de base au niveau des algorithmes, des représentations de nombres, des architectures et implantations (p. ex. multiplications modulaires multiples pour augmenter le parallélisme d'instructions des architectures). Notre expertise sur ce sujet est reconnue dans la communauté.

Nous avons une première architecture HECC qui montre environ 40 % de meilleur efficacité en compromis temps*surface comparée à ECC (dans les mêmes conditions de test). Les travaux amorcés dans le projet PAVOIS se poursuivent dans le projet HAH et nous espérons gagner un facteur d'environ 2 au final. Nous souhaitons poursuivre ces travaux sur HECC en matériel dans le futur.

Une page web dédiée (http://pavois.irisa.fr/project-publis) liste l'ensemble des productions et publications du projet PAVOIS et des liens sur leurs contenus (accessibles publiquement pour la très grande majorité). À la rédaction de ce rapport, on compte :

• 2 thèses soutenues et financées par le projet PAVOIS ;

• 6 articles dans des journaux internationaux de premier plan comme IEEE Transactions on Computers ;

• 21 articles dans des conférences internationales réputées dont certaines sont majeures dans nos domaines comme ARITH, AsiaCrypt, Async, CHES, ECC ou ISVLSI ;

• 3 articles dans des conférences nationales ;

• 3 conférences invitées dont 2 internationales ;

• 1 cryptoprocesseur matériel et ses outils de développement qui sera distribué en matériel/logiciel libre ;

- 1 circuit intégré ASIC de notre cryptoprocesseur ECC (version 256 bits) malheureusement revenu de fonderie après la fin administrative du projet.

L'objectif principal de ce projet est la conception et la distribution libre et gratuite de la description d'un circuit (FPGA/ASIC) et des outils logiciels de paramétrage et de programmation ainsi que les documentations nécessaires, dédié à la cryptographie des courbes algébriques (ECC/HECC). Nous proposons d'étudier l'impact des nouvelles techniques de protections que nous allons mettre au point pour contrer différent types d'attaques de type canaux cachés. En particulier, nous allons évaluer le niveau de robustesse fourni par des contre-mesures non-conventionnelles mises en place au niveau arithmétique, par exemple en considérant des systèmes redondants de représentation des nombres. Un autre objectif ambitieux de notre proposition concerne l'extension de nos travaux théoriques et pratiques aux courbes hyperelliptiques de genre 2. La version finale de notre crypto-processeur sera en effet capable d'effectuer l'ensemble des calculs nécessaire pour l'implantation de ces protocoles. En fonction de ces résultats théoriques et expérimentaux, nous prevoyons de fabriquer un circuit (ASIC) pour la cryptographie des courbes elliptiques, qui intégrera les solutions les plus avantageuses. Après les tests et évaluations du circuit, nous comptons distribuber quelques exemplaires du circuit à différents groupes français de recherche académique et d'organismes gouvernementaux pour des initier des collaborations.

Coordinateur du projet

Monsieur Arnaud TISSERAND (CNRS / Institut de recherche en informatique et systèmes aléatoires) – arnaud.tisserand@univ-ubs.fr

L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.

Partenaire

LIRMM - DALI Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier
CNRS / IRISA CNRS / Institut de recherche en informatique et systèmes aléatoires

Aide de l'ANR 348 868 euros
Début et durée du projet scientifique : août 2012 - 42 Mois

Liens utiles

Inscrivez-vous à notre newsletter
pour recevoir nos actualités
S'inscrire à notre newsletter