Architectures Reconfigurables et Cryptographie

Dรฉfinitions

ย  ย Le terme ยซย architecture reconfigurableย ยป suscite toujours dโ€™intenses dรฉbats. Partant du principe que reconfiguration signifie le changement des fonctionnalitรฉs dโ€™une architecture aprรจs le processus de fabrication, on peut considรฉrer que le processeur gรฉnรฉrique est le plus reconfigurable des systรจmes numรฉriques, car il peut changer de comportement ร  chaque cycle dโ€™horloge. Pourtant il est possible de dire quโ€™il est lโ€™un des moins flexibles, car son architecture cรขblรฉe ne se modifie pas aprรจs sa fabrication. De plus, les processeurs gรฉnรฉriques nโ€™exploitent que faiblement le parallรฉlisme. Dans ce document les architectures numรฉriques ne seront considรฉrรฉes comme reconfigurables que si elles comportent plusieurs composants de base tels que รฉlรฉments de calculs reconfigurables, interconnectรฉs par un moyen dโ€™interconnexion lui aussi reconfigurable. Lโ€™exemple classique dโ€™un dispositif avec cette caractรฉristique est le FPGA1 , mais dโ€™autres circuits en font partie. Le FPGA est un exemple dโ€™architecture reconfigurable ร  petit grain. Dans ce domaine le grain est lโ€™unitรฉ de calcul de base. La taille du grain est donnรฉe par la taille des donnรฉes atomiques qui lโ€™architecture en question est capable de manipuler ร  chaque opรฉration. Dans un FPGA les donnรฉes sont reprรฉsentรฉes bit ร  bit, et calculรฉes ร  lโ€™aide des tables de vรฉritรฉ (LUT – look-up tables). Un dispositif reconfigurable comprenant des opรฉrateurs comme multiplieurs, additioneurs, multiplexeurs, par exemple, peut รชtre considรฉrรฉ comme appartenant ร  la catรฉgorie des architectures reconfigurables ร  grain moyen. Cependant, un dispositif composรฉ par des unitรฉs logiques et arithmรฉtiques interliรฉes par un rรฉseau intra-circuit peut รชtre considรฉrรฉ comme รฉtant une architecture reconfigurable ร  gros grain. Cette dรฉfinition de taille de grain peut รชtre รฉtendue par rapport au fichier de configuration des architectures reconfigurables. Une architecture ร  petit grain est configurรฉe normalement par un bitstream (flot de bits). De lโ€™autre cรดtรฉ, la configuration dโ€™une architecture ร  gros grain est faite ร  lโ€™aide dโ€™un fichier comprenant la programmation de toutes les unitรฉs de calcul. Une architecture reconfigurable peut รชtre reconfigurable de maniรจre statique ou dynamique, complรจte ou partielle. La reconfiguration dynamique est celle qui permet que le comportement dโ€™un circuit soit modifiรฉ sans que lโ€™application quโ€™il tourne soit complรจtement arrรชtรฉe. Au contraire, la reconfiguration statique demande que le circuit soit mis hors tension pour que la nouvelle configuration puisse รชtre chargรฉe. Une reconfiguration, quโ€™elle soit statique ou dynamique, peut รชtre totale ou partielle. Dans le premier cas, tout le fichier de configuration est tรฉlรฉchargรฉ vers le circuit. Dans le deuxiรจme, seule la partie du fichier de configuration correspondant ร  des modifications de fonctionnalitรฉ nรฉcessaires est envoyรฉe au circuit. Les systรจmes dynamiquement reconfigurables (SDR) permettent la spรฉcialisation de la logique implantรฉe et/ou du routage des ressources de calcul en cours de fonctionnement. La Figure 1.1 illustre la reconfiguration dynamique au travers dโ€™un graphique en trois axes. Les axes X et Z indiquent le plan spatial, dans lequel le routage et le placement de la logique sont rรฉalisรฉs. Les systรจmes reconfigurables de faรงon statique ne peuvent quโ€™รชtre vus dans ce plan. Pour les SDR il est nรฉcessaire dโ€™effectuer une analyse temporelle des reconfigurations, car le comportement du dispositif change dans le temps, sans lโ€™arrรชt du systรจme. Pour cela, il a รฉtรฉ introduit lโ€™axe Y, qui indique les diffรฉrentes implantations de modules fonctionnels (cล“urs) dans le dispositif, par rapport au moment dโ€™arrivรฉe

Lโ€™objectif de lโ€™architecture

ย  ย Selon [78], une architecture reconfigurable peut avoir comme objectif, lโ€™une des deux caractรฉristiques ci-dessous :
โ€ข Tolรฉrance aux fautes :Il sโ€™agit dโ€™un des premiers buts du domaine de la reconfiguration. Durant la fabrication et lโ€™utilisation dโ€™un circuit, il y a une probabilitรฉ que ce circuit devienne dรฉfectueux. A lโ€™รฉpoque de la publication de lโ€™article de Radunovic [78], dans des architectures classiques, un problรจme de ce genre implique que le systรจme entier soit inutilisable. Nรฉanmoins, dans une architecture reconfigurable la partie dรฉfectueuse du systรจme peut รชtre dรฉtectรฉe et remplacรฉe.
โ€ข Accรฉlรฉration : Lโ€™utilisation des architectures reconfigurables pour accรฉlรฉrer les performances des systรจmes a vu le jour dans les annรฉes 80, principalement due ร  sa capacitรฉ dโ€™implanter des algorithmes dโ€™une maniรจre plus performante que sur des processeurs gรฉnรฉriques, en exploitant par exemple le parallรฉlisme.

Rรฉseau dโ€™interconnexion pour les architectures reconfigurables ร  gros grain

ย  ย  En 2001 Reiner Hartenstein a rรฉalisรฉ une discussion ร  propos des architectures reconfigurables ร  gros grain. Dans [44] il parle des problรฉmatiques liรฉes ร  la faรงon de programmer (configurer) une architecture reconfigurable, mais il montre aussi diffรฉrentes maniรจres de connecter les รฉlรฉments qui la composent. Dans cette section ces caractรฉristiques sont prises comme des critรจres de classification. Architectures en maille Architectures mesh-based (en maille) organisent ses รฉlรฉments de calcul dans une matrice rectangulaire 2-D, avec des connexions horizontales et verticales, qui supportent un riche rรฉseau de communication, privilรฉgiant les รฉchanges voisin ร  voisin, de faรงon ร  privilรฉgier le parallรฉlisme. Typiquement sont ajoutรฉs des lignes longues รฉtablissant les connexions de longueur supรฉrieure ร  1.
Architectures en vecteur linรฉaire Quelques architectures reconfigurables sont basรฉes sur des vecteurs linรฉaires (linear arrays), avec une communication voisin ร  voisin, envisageant le mapping de pipelines. Si les pipelines ont des divergences, alors des ressources de routage additionnelles sont nรฉcessaires, comme des lignes plus longues, souvent nรฉcessitant une segmentation.
Architectures en croisillon La ressource de routage le plus performant est un commutateur en croix (crossbar ), car il facilite le routage parmi tous les รฉlรฉments de calcul. Aux critรจres de Hartenstein il est possible dโ€™ajouter celui du rรฉseau sur puce, moyen de communication intra circuit(NoC) qui se dรฉveloppe de maniรจre accรฉlรฉrรฉ derniรจrement. 3Network on Chip.
Architectures basรฉes sur un rรฉseau sur puce Rรฉcemment les rรฉseaux sur puce ont vu le jour comme une alternative pour connecter des cล“urs hรฉtรฉrogรจnes. Pourtant ces rรฉseaux peuvent servir de mรฉdia de communication pour une matrice homogรจne dโ€™รฉlรฉments de calcul, permettant la construction dโ€™architectures ร  gros grain trรจs flexibles.

Niveaux de reconfiguration

ย  ย Conformรฉment ร  ce qui est avancรฉ dans la Section 1.1, il existe diffรฉrents niveaux dโ€™abstraction selon lesquels il est possible de classiffier le degrรฉ de reconfiguration dโ€™une architecture. Raphaรซl David [30] propose une classification selon le potentiel de reconfiguration qui reflรจte notamment les caractรฉristiques des microprocesseurs, des FPGAs et des architectures reconfigurables ร  gros grain.
Niveau systรจme Ce niveau de reconfiguration traite le changement de fonctionnalitรฉ des processeurs via la modification de lโ€™orientation du chemin de donnรฉes. Les donnรฉes sont acheminรฉes vers des unitรฉs de calcul (ou vers les registres, ou la mรฉmoire) selon les besoins de lโ€™application, en modifiant des bits dans les commutateurs et multiplexeurs dans lโ€™architecture. Cela permet une trรจs grande flexibilitรฉ logicielle, pourtant, les unitรฉs de calcul ne se modifient pas, ce que entraรฎne une certaine rigiditรฉ matรฉrielle.
Niveau fonctionnel Pour assouplir cet effet, des nouvelles architectures orientรฉes flot de donnรฉes ont รฉtรฉ proposรฉes. Une architecture reconfigurable au niveau fonctionnel suppose une multitude dโ€™unitรฉs de calcul interconnectรฉs par un rรฉseau dโ€™interconnexion. ร‰tant donnรฉ la taille du chemin de donnรฉes de ces architectures, elles sont souvent appelรฉes architectures reconfigurables ร  gros grain. Le problรจme de cet approche est la difficultรฉ de trouver un modรจle fiable de programmation, au contraire des architectures du type processeur.
Niveau logique Une architecture est dite reconfigurable au niveau logique quand elle est composรฉe de plusieurs unitรฉs de calcul et avec un riche rรฉseau dโ€™interconnexion, avec un chemin de donnรฉes de faible largeur. Les unitรฉs de calcul opรจrent au niveau logique, implantant des fonctions boolรฉenes. Normalement, pour implanter une application, il est nรฉcessaire de disposer dโ€™une grande quantitรฉ de ressources, aussi bien que lโ€™utilisation dโ€™un complexe rรฉseau de communication. Cela induit une faible frรฉquence de reconfiguration, malgrรฉ son apport en flexibilitรฉ matรฉrielle.

Dart

ย  ย DART [28] est une architecture reconfigurable dรฉveloppรฉe dans le but dโ€™apporter ร  la fois puissance de calcul et faible consommation aux applications mobiles de troisiรจme gรฉnรฉration. Cette architecture est composรฉe par des grappes dโ€™unitรฉs de calcul, comme dรฉcrit la Figure 1.6. Ces grappes peuvent fonctionner indรฉpendamment oรน en combinaison avec les autres. Cela diminue la complexitรฉ du contrรดle de lโ€™ensemble du systรจme. Donc la prioritรฉ du contrรดleur du systรจme nโ€™est pas de gรฉrer chaque grappe, mais dโ€™agencer des tรขches qui seront exรฉcutรฉes par les grappes, selon sa prioritรฉ et la disponibilitรฉ des ressources. Ainsi le contrรดleur nโ€™a pas ร  ordonnancer les instructions de chaque tรขche, mais simplement spรฉcifier aux grappes quel tรขche elles doivent exรฉcuter. Lโ€™organisation hiรฉrarchique de DART permet, au delร  de la distribution du contrรดle, la rรฉpartition du calcul. Par consรฉquent, il est possible de joindre un grand nombre de ressources sans augmenter le coรปt dโ€™interconnexion. En effet, cela entraรฎne une amรฉlioration de la performance et de la consommation. De plus, cette organisation facilite le dรฉveloppement dโ€™outils de programmation. Pour donner plus de flexibilitรฉ, tout en restant simple ร  programmer, les grappes comprennent des unitรฉs de calcul appelรฉes DataPath Reconfigurable (DPR), et un petit cล“ur FPGA (voir Figure 1.4. 1.7). Les DPRs peuvent รชtre connectรฉs les uns avec les autres ร  travers dโ€™un rรฉseau du type maille segmentรฉ, ce qui permet un calcul massivement parallรจle ; mais ils peuvent aussi agir comme des unitรฉs indรฉpendantes, opรฉrant sans liaison les uns avec les autres, sur diffรฉrentes flots de tรขches. Toutes les primitives de calcul accรจdent ร  la mรชme mรฉmoire, et la reconfiguration est gรฉrรฉe par un contrรดleur local. La reconfiguration de la zone FPGA est faite de faรงon sรฉrie, pendant que la reconfiguration des DPR arrive de maniรจre semblable ร  celle des microprocesseurs. La diffรฉrence cโ€™est que le schรฉma de configuration du DART รฉvite des lectures excessives de la mรฉmoire dโ€™instructions, en stockant les microinstructions dans des registres dans chaque DPR. Par consรฉquent, lโ€™architecture devient efficace du point de vue consommation dโ€™รฉnergie. Les primitives de calcul arithmรฉtiques du DART sont les DPRs. Chaque DPR est organisรฉ autour de ressources fonctionnelles et de mรฉmoires, liรฉs selon un flexible rรฉseau de communication. Chaque DPR possรจde quatre unitรฉs fonctionnelles suivies dโ€™un registre et supportant des calculs SWP (Sub-Word Parallelism). Ce concept est justifiรฉ par la nรฉcessitรฉ dโ€™opรฉrer sur des diffรฉrents tailles de donnรฉes, notamment codage dโ€™audio et de video sur 8 et 16 bits. Les concepteurs de DART ont donc optรฉ pour implanter des opรฉrateurs arithmรฉtiques optimisรฉs pour les formats de donnรฉes les plus ordinaires (16 bits), mais supportant SWP pour pouvoir traiter des donnรฉes plus petits. Les rรฉsultats prรฉsentรฉs en [29] montrent que les DPRs ont รฉtรฉ synthรฉtisรฉs, atteignant une frรฉquence de 130MHz. Basรฉs sur ce rรฉsultat, les auteurs estiment que DART peut atteindre 10, 9 GOPS par grappe. Par rapport ร  la consommation, DART rรฉalise 32M0PS/mW pour des opรฉrations sur 16 bits.

Architectures ร  Petit Grain

ย  ย Les architectures reconfigurables ร  petit grain sont des dispositifs contenant des composants logiques et un rรฉseau dโ€™interconnexion programmable. Les unitรฉs logiques sont programmables afin dโ€™รฉmuler les fonctions logiques tels que AND, OR, XOR, NOT, ou mรชme des fonctions plus complexes comme des decodeurs. Dans la plupart des dispositifs ร  petit grain, notamment les FPGAs, ces รฉlรฉments programmables (blocs logiques) incluent des รฉlรฉments de mรฉmoire, qui vont des simples bascules jusquโ€™ร  des blocs complets de mรฉmoire. La hiรฉrarchie dโ€™interconnexion permet au concepteur de circuits une flexibilitรฉ trรจs importante. Dans le cas des FPGAs, cette flexibilitรฉ reste au-delร  de la manufacture du dispositif, et pour cela il est utilisรฉ le terme ยซย reconfigurableย ยป ร  ce genre de dispositifs. Les dispositifs reconfigurables ร  petit grain, comme les FPGAs sont gรฉnรฉralement plus lents que les ASICs ou que les architectures ร  gros grain, et aussi ils consomment plus dโ€™รฉnergie. Cependant, ils offrent des avantages intรฉressants. Par rapport aux ASICs, les FPGAs ont un temps plus court pour arriver sur le marchรฉ, coรปtent moins cher pour faibles quantitรฉs, et restent flexibles aprรจs la fabrication. En comparaison avec les architectures ร  gros grain, les FPGAs offrent un ensemble dโ€™outils de configuration et de programmation beaucoup plus mรปr que les premiers. Les FPGAs ont รฉtรฉ conรงus au dรฉpart pour substituer les CPLDs comme ยซย logique de colleย ยป pour les PCBs. Toutefois, due ร  lโ€™รฉvolution des technologies de synthรจse de silicium, la taille et la complexitรฉ des FPGAs ont augmentรฉ, les menant au rรดle de compรฉtiteurs sur le marchรฉ des systรจmes sur puce. Aujourdโ€™hui le domaine dโ€™applications des architectures ร  petit grain sโ€™รฉtend aux algorithmes pour lโ€™industrie spatial, imagerie mรฉdicale, vision par ordinateur, cryptographie, au delร  dโ€™une vaste รฉtendue dโ€™autres domains de recherche et de dรฉveloppement. Dans la suite deux architectures ร  petit grain reprรฉsentatives du marchรฉ industriel actuel sont prรฉsentรฉes. Les FPGAs Virtex et FPSLIC ont รฉtรฉ choisis pour ses capacitรฉs de reconfiguration dynamique, implantรฉes de maniรจre diffรฉrent en chacun.

ARDOISE

ย  Le projet ARDOISE (Architecture Reconfigurable Dynamiquement Orientรฉe Image Signal Embarquable) vise ร  dรฉmontrer lโ€™intรฉrรชt des architectures matรฉrielles ร  reconfiguration dynamique (RD) dans les systรจmes associant contraintes temps rรฉel fortes et versatilitรฉ des traitements. ร€ lโ€™heure actuelle, ARDOISE est la seule architecture dรฉveloppรฉe en France, dont un prototype a effectivement รฉtรฉ rรฉalisรฉ et testรฉ en situation rรฉelle, qui mette en oeuvre ce concept [34]. Lโ€™idรฉe de base de cette architecture est dโ€™enchaรฎner des algorithmes nรฉcessaires au traitement dโ€™images dans la mรชme structure matรฉrielle, en utilisant la reconfiguration ร  petit grain ร  quelques reprises, pendant le calcul dโ€™une seule image. Cela รฉquivaut ร  sโ€™en servir dโ€™un FPGA afin dโ€™exรฉcuter une sรฉquence dโ€™algorithmes selon un agenda pre-รฉtabli. Ce concept permet lโ€™implantation dโ€™applications sur FPGA avec une performance raisonnable, tout en gardant la flexibilitรฉ dโ€™un microprocesseur. Lโ€™architecture dโ€™ARDOISE est basรฉe sur trois modules identiques (Figure 1.18). Chacun contient un FPGA ร  45k portes connectรฉs ร  deux mรฉmoires locales qui stockent les rรฉsultats intermรฉdiaires. Ces blocs identiques sont appelรฉs MARD (Modules ARDoises) et sont contrรดlรฉs par le module GCC (Gestion des Configurations et des Communications). Le GCC permet ร  ARDOISE de fonctionner soit en stand alone, soit en liaison avec un DSP. Le FPGA, la mรฉmoire et la connexion ร  une liaison en sรฉrie autorisent la configuration du FPGA et le chargement de la mรฉmoire flash ร  partir dโ€™un PC.

La fonction de Feistel

ย  ย La fonction F observรฉe dans la Figure 2.5 opรจre dans une moitiรฉ dโ€™un bloc (donc 32-bits). Cette fonction consiste de quatre รฉtages :
1. Expansion : Le demi-bloc de 32-bits est รฉtendu ร  48 bits en faisant usage de la permutation dโ€™expansion, dรฉnotรฉ E dans le diagramme ;
2. Mixage de la clรฉ : Le rรฉsultat est combinรฉ avec une sous-clรฉ utilisant le XOR. Seize sousclรฉs de 48-bits (une pour chaque itรฉration) sont dรฉrivรฉes de la clรฉ principale ร  travers dโ€™un ordonnancement de clรฉs.
3. Substitution : Aprรจs avoir mixรฉ ร  la sous-clรฉ, le bloc est alors divisรฉ dans huit parties de six-bits ; avant de passer par les boรฎtes de substitution (S-boxes – Substitution Boxes). Chacune de ces 8 S-boxes transforment les six bits dโ€™entrรฉes vers 4 bits de sortie, avec une transformation non-linรฉaire. Les S-Boxes fournissent le cล“ur de la sรฉcuritรฉ du DES. Sans les S-box les transformations seraient linรฉaires, et par consรฉquent lโ€™algorithme serait facilement cassรฉ.
4. Permutation :Finalement, les sorties ร  32-bits ร  partir des S-boxes sont disposรฉes en accord avec un tableau fixe de permutation, appelรฉe P โˆ’ Box. Lโ€™alternance de substitutions, permutations et expansions provoquent le concept de ยซย confusion et diffusionย ยป respectivement ; concept identifiรฉ par Shannon dans les annรฉes 40 comme รฉtant des conditions nรฉcessaires pour un algorithme de cryptographie sรปr.

Le rapport de stage ou le pfe est un document dโ€™analyse, de synthรจse et dโ€™รฉvaluation de votre apprentissage, cโ€™est pour cela chatpfe.com propose le tรฉlรฉchargement des modรจles complet de projet de fin dโ€™รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties dโ€™un projet de fin dโ€™รฉtude.

Table des matiรจres

Introduction
1 Architectures reconfigurablesย 
1.1 Dรฉfinitions
1.2 Classificationย 
1.2.1 La Taxonomie de Radunovic [78]
1.2.2 Les critรจres de Page [76]
1.2.3 Statique versus Dynamique [85]
1.2.4 Rรฉseau dโ€™interconnexion pour les architectures reconfigurables ร  gros grain
1.2.5 Modรจles de reconfiguration
1.2.6 Niveaux de reconfiguration
1.3 Mรฉtriques
1.3.1 La densitรฉ fonctionnelle
1.3.2 La Rรฉmanence
1.4 ร‰tat de lโ€™artย 
1.4.1 Architectures ร  Gros Grain
1.4.2 Architectures ร  Grain Moyen
1.4.3 Architectures ร  Petit Grain
1.5 Tendancesย 
1.6 Le Reconfigurable pour la cryptographie
2 Introduction ร  la Cryptographieย 
2.1 Introduction ร  la cryptographieย 
2.2 Types dโ€™algorithmes de Cryptographie
2.2.1 Cryptographie ร  Clรฉ Symรฉtrique
2.2.2 Cryptographie Asymรฉtrique
2.3 Exemples dโ€™algorithmes de Cryptographie
2.3.1 Data Encryption Standard
2.3.2 Algorithme RSA
2.4 Nombres Premiersย 
2.5 Fonctions ร  sens uniqueย 
2.5.1 Fonctions ร  sens unique avec une trappe
2.5.2 Fonctions de hachage ร  sens unique
2.6 Arithmรฉtique Modulaire
2.6.1 Congruence
2.6.2 Lโ€™Algorithme dโ€™Euclide
2.6.3 Lโ€™inverse modulaire
2.6.4 Residue Number System
2.7 Multiplication Modulaire – Lโ€™algorithme de Montgomery
2.8 Leak Resistant Arithmeticย 
2.9 Conclusion du Chapitre
3 Attaques et contremesuresย 
3.1 Attaques Matรฉrielles
3.1.1 Considรฉrations ร  propos de sรฉcuritรฉ et types dโ€™attaques SCA
3.2 Contremesures
3.2.1 ร‰tat de lโ€™art
3.2.2 Une contremesure originale : le CMG
3.2.3 Aspects de sรฉcuritรฉ liรฉs ร  la LRA
3.3 Conclusion du Chapitre
4 Vers une Implantation Matรฉrielle du LRAย 
Vers une Architecture Reconfigurable pour la Cryptographie
4.1 Dรฉmarches architecturalesย 
4.2 Leak Resistant Reconfigurable Architecture : Vue dโ€™ensembleย 
4.3 La composition de la LR2Aย 
4.3.1 Le contrรดleur
4.3.2 Les รฉlรฉments de calcul
4.3.3 Rรฉseau dโ€™Interconnexion
4.3.4 Le modรจle de configuration
4.3.5 La gestion de la mรฉmoire
4.4 Validationsย 
4.5 Lโ€™intรฉrรชt de la reconfiguration
4.6 Conclusion du Chapitreย 
Considรฉrations Finales
Bibliographie
Table des figures
Liste des tableaux
Annexes
Abrรฉviations
RSA
B.1 La description succinte de lโ€™algorithme
B.2 Le choix des nombres
B.3 Un example avec un message textuel
DES
C.4 S boxes
C.4.1 S boxes comme matrices
C.4.2 S boxes comme tableaux
C.5 Constantes de Permutation
C.6 Conversion entre diffรฉrents types de donnรฉes
C.7 Permutation de vecteurs et XOR
C.8 S-Boxes et la Fonction de Feistell
C.9 Commandes en ligne
C.10 Sauvegarde des fonctions et des constantes
C.11 Setup Initial
C.12 Une รฉtape de cryptage
C.13 Les 15 รฉtapes suivantes de cryptage
C.14 Pour decrypter
Algorithme de Montgomery
LRA
Current Mask Generator

Rapport PFE, mรฉmoire et thรจse PDFTรฉlรฉcharger le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *