• Aucun résultat trouvé

P1

+

+

P’’1

+

b a a b

+

Ci Ci P’0 P’1 ρ Ci Combinatoire Séquentielle Contrôle

Fig. 4.2: La LRA peut être implantée de façon combinatoire ou séquentielle.

Op

PE

Op

PE

Op

PE

Op

PE

1 0 2 3 a(3) b(3) r(3)

a(2) b(2) a(1) b(1) a(0) b(0)

r(1) r(0)

r(2)

Fig. 4.3: Une version du circuit pour la LRA à 4 PEs

4.2

Leak Resistant Reconfigurable Architecture : Vue d’ensemble

L’idée de base de cette architecture est d’implanter la LRA pour le système cryptographique RSA, tout en restant suffisamment flexible pour être capable d’exécuter d’autres algorithmes cryp- tographiques basés sur l’arithmétique modulaire, par exemple la cryptographie par courbes ellip- tiques (ECC - Elliptic Curve Cryptography). Afin de pourvoir à cette caractéristique, ce travail s’inspire dans les architectures reconfigurables étudiées dans le Chapitre 1, spécialement sur celles à gros grain. La Leak Resistant Reconfigurable Architecture (dorénavant appelée LR2A) a comme

éléments principaux les modules suivantes :

Tab.4.1: Résultats d’Implantation de la LRA sur FPGA t (bits) Version Multiplieurs LUTs Fréquence

32 Combinatoire 12 828 13MHz

96 Vers une Implantation Matérielle du LRA

Contrôleur de configurations et injecteur de données :

Le but d’un contrôleur de configurations est de réduire le fossé entre l’architecture reconfigurable et le processeur qui la contrôle. Implanter ce contrôleur dans la seule et même puce que l’archi- tecture reconfigurable diminue le coût de communication vis à vis d’un approche où le contrôleur serait implanté dans une puce à part, notamment dans un ordinateur hôte.

Éléments de calcul homogènes à gros grain :

La flexibilité matérielle fournie par les architectures reconfigurables à petit grain (FPGA) est limitée par un faible débit et un traitement des données au niveau bit. De plus, les architectures reconfigurables à gros grain permettent que la reconfiguration dynamique soit réalisée à chaque cycle d’horloge, ce qui est important dans une application cryptographique, où il est habituel de changer d’un algorithme de cryptographie asymétrique vers un algorithme symétrique pendant une même session de communication2

. Réseau d’interconnexion :

L’utilisation du seul RNS dans les calculs permettrait d’avoir un schéma de communication simple, car il n’y a pas de propagation de retenue, et donc, pas de nécessité d’échanger d’infor- mations parmi les éléments de calcul. Pourtant la LRA requiert aussi des extensions de base, réalisées au travers de la technique du Mixed Radix System, qui possède des opérations complexes du point de vue de la communication. C’est pour cela qu’un réseau de communication flexible se fait nécessaire.

Ressources de mémoire :

La Leak Resistant Arithmetic utilise plusieurs valeurs pré-calculées, tels que les inverses mo- dulaires et les moduli pour les bases RNS. Toutes ces données ont besoin d’être dans la puce au moment des calculs. Comme les PEs doivent constamment lire ces données et écrire des résultats intermédiaires dans une mémoire, cela induit que cette mémoire soit placée à côté de chaque PE. Les mémoires locales ont aussi l’avantage d’éviter la gestion complexe des conflits d’accès inhérents à une mémoire centralisée.

Un modèle de gestion de configurations :

Souvent l’efficacité d’une architecture reconfigurable est préjudiciée par l’absence d’une mé- thode de contrôle de configurations et d’injection de données, car cet absence conduit à un impor-

2

Normalement un algorithme à asymétrique (par exemple le RSA) est utilisé pour réaliser la signature numérique et ensuite pour chiffrer une clé privée d’un algorithme symétrique. Dans un deuxième moment, la communication entre les deux parties est cryptée à l’aide d’un algorithme à clé privé (par exemple le RC6), car ces dernières sont plus efficaces en termes de débit. Cela induit à l’utilisation de la reconfiguration.

4.2. Leak Resistant Reconfigurable Architecture : Vue d’ensemble 97

tant effort de programmation manuelle. Pour cela la LR2A est proposée avec un modèle de gestion

de configurations.

Le contrôleur est un processeur intégré à l’architecture (et non seulement un processeur hôte). Il a pour but gérer le schéma de reconfiguration et le flot de données. Le contrôleur utilisé est un processeur du type RISC (microprocesseur à jeu d’instruction réduit - Reduced Instruction-Set Computer ) doté d’un compilateur C.

Le bloc de base est un élément de calcul à gros grain3

capable de gérer des boucles et des sauts, aussi bien que les accès mémoire. Chaque PE incorpore des opérateurs classiques, habituellement identiques à ceux trouvés dans des processeurs du type RISC, augmenté d’instructions spécifiques à la cryptographie. Par rapport à des architectures à petit grain, les PEs remplacent les CLBs, et en comparaison à des architectures à gros grain classiques, la contribution de ces nouveaux PEs (en plus des opérateurs pour la cryptographie) c’est leur capacité de gérer des structures de contrôle plus complexes.

L’ensemble de blocs est lié à travers un réseau d’interconnexion reconfigurable. Ce réseau per- met la communication point-à-point ou par broadcast. Une vue d’ensemble de l’architecture (PEs, mémoire, processeur hôte, réseau d’interconnexion), telle qu’elle a été implantée, peut être observée dans la Figure 4.4. PE PE PE PE Réseau d’interconnexion M M M M Mémoire de Contrôleur (RSCM) Configuration

Fig. 4.4: Vue d’ensemble de l’architecture LR2A

La mémoire est distribuée, et chaque PE accède à sa portion de mémoire de façon locale. Le Contrôleur peut écrire dans les mémoires distribuées pour mener une nouvelle configuration ou pour injecter des nouvelles données.

L’architecture est gérée à travers d’un modèle de contrôle pour les architectures reconfigurables appelé RSCM (Reconfigurable Systems Configuration Model). Une version de ce modèle, adapté aux FPGAs a été publiée en [18]. Dans le cadre de cette thèse le modèle à évolué afin d’apporter le contrôle nécessaire à une architecture comme la LR2A.

Des détails architecturaux sont exposés par la suite ; aussi bien que le fonctionnement de la gestion de cette architecture.

3

En effet, dans le future sera un bloc à grain mixte petit / gros, car il existe des algorithmes symétriques de cryptographie très répandus, comme le AES, qu’utilisent des opérations à petit grain.

98 Vers une Implantation Matérielle du LRA