MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSIT

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE MOULOUD MAMMERI DE TIZI-OUZOU FACULTE DE GENIE ELECTRIQUE ET D’INFORMATIQUE DEPARTEMENT AUTOMATIQUE Mémoire De fin d’étude en vue de l’obtention du diplôme de Master Académique En Génie Micro-Electronique Thème Synthèse d’un module de cryptage RSA sur un circuit de type FPGA Présenté par : Proposé et dirigé par : Mr. HOUADJ Mohamed Nazim Mr. DAOUI Mehammed Remerciements Je remercie vivement mon encadreur Monsieur Mehammed DAOUI, d’avoir proposé et dirigé ce travail de ci-près, avec une qualité remarquable, j’ai grandement apprécié ses compétences, sa disponibilité et le suivi régulier a l’avancement de mon travail. Mes sincères remerciements à tous mes enseignants qui m’ont transmit les bases de la Micro-électronique tout au long de ces deux années de master. Un merci particulier à ma famille pour leurs encouragements et leur soutien tout au long de ce travail. Un grand merci à mes collègues et mes amis avec qui j’ai passé de très bons moments au sein de l’université Mouloud Mammeri. Que ceux qui se sentent oubliés trouvent ici ma profonde gratitude et mes chaleureux remerciements pour leur concours dans l’accomplissement de ce travail. Mr HOUADJ Mohamed Nazim A mes parents Sommaire Sommaire Introduction générale ____________________________________________ 4 Chapitre 1 : cryptographie et étude algorithmique ___________ 5 I. Introduction ___________________________________________________ 6 II. La cryptographie ______________________________________________ 6 II.1 Cryptographie symétrique ________________________________ 6 II.2 Cryptographie asymétrique _______________________________ 7 III. Le cryptage asymétrique ‘RSA’ __________________________________ 8 III.1 Création des clés RSA ___________________________________ 9 III.2 Protocole RSA ________________________________________ 10 III.2.1 Le chiffrement avec le RSA ____________________________ 10 III.2.2 Le déchiffrement avec le RSA __________________________ 10 IV Algorithme de Montgomery pour la multiplication modulaire ________ 10 IV.2 Présentation du problème ______________________________ 11 IV.3 Transformation de Montgomery ________________________ 11 V. Algorithme Square and Multiply _________________________ 12 V.1 Description de l’algorithme _____________________________ 12 VI. Conclusion ___________________________________________ 13 Chapitre 2 : circuits logiques programmables ________________ 14 I. Introduction __________________________________________________ 15 II. Les ASIC (Application Specific Integrated Circuit) _________________ 16 Sommaire II.1 Les circuits semi-personnalisés __________________________ 17 II.1.1 Les réseaux logiques programmables _______________ 17 II.1.2 Circuits prés diffusés ____________________________ 18 II.2 Circuits personnalisés __________________________________ 18 II.2.1 Circuits à la demande ____________________________ 18 II.2.2 Les circuits pré-caractérisés ______________________ 19 II.3 Les avantages de l’utilisation des ASIC _______________ 19 III. FPGA (Fiel Programmable Gate Arrays) _________________________ 20 III.1 Principaux fondeurs des FPGA _________________________ 20 III.2 Architecture des FPGA ________________________________ 20 III.3 Les différents types d’FPGA ____________________________ 22 III.3.1 Les FPGA de type anti fusible ____________________ 22 III.3.2 Les FPGA de type SRAM ________________________ 22 III.4 Domaine d’application des FPGA _______________________ 24 III.5 Critères de choix des FPGA ____________________________ 24 III.6 Avantages et inconvénients des FPGA ____________________ 24 IV. Configuration des FPGA par outils CAO _________________________ 25 IV.1 Méthode de conception par CAO ________________________ 25 IV.1.1 Spécification du design ______________________________ 26 IV.1.2 Développement du design ____________________________ 26 IV.1.3 La synthèse ________________________________________ 27 Sommaire IV.1.4 Placement et routage ________________________________ 27 IV.1.5 Intégration et implémentation ________________________ 27 IV.2 Technique de programmation des FPGA _________________________ 27 V. Conclusion ___________________________________________________ 29 Chapitre III : présentation de la carte de développement Virtex-II _________________________________________________________ 30 I. Introduction __________________________________________________ 31 II. La carte de développement Virtex-II _____________________________ 31 II.1 Description de la carte système Virtex-II __________________ 32 II.2 Virtex-II Dispositif ____________________________________ 32 II.3 Mémoire DDR ________________________________________ 33 II.4 Génération d’horloge __________________________________ 33 II.5 Circuit de reset _______________________________________ 34 II.6 Utilisation des afficheurs 7 segments ______________________ 34 II.7 Utilisation de la LED ___________________________________ 35 II.8 Utilisation des interrupteurs à bouton poussoir (SW5 et SW6)__35 II.9 User Switch DIP (SW2) _________________________________ 36 II.10 Port RS232 __________________________________________ 37 II.10.1 Interface RS232 _______________________________ 37 II.10.2 Description du Signal RS232 _____________________ 37 II.11 Port JTAG __________________________________________ 37 II.11.1 Connecteur standard JTAG _____________________ 37 II.11.2 Câble parallèle IV Port __________________________ 38 II.11.3 Chaîne JTAG _________________________________ 38 Sommaire II.11.4 Réglages des cavaliers dans la chaîne JTAG ________ 39 III. Utilisation de la carte _________________________________________ 39 III.1 Interface JTAG ______________________________________ 40 III.1.1 Configuration du FPGA Virtex-II _________________ 40 III.1.2 Programmation de la XC18V04 FAI PROM ________ 40 IV. Conclusion _________________________________________________ 41 Chapitre 4 : solution et contribution __________________________ 42 II. Présentation de notre protocole RSA ______________________________ 43 II.1 Description de notre protocole RSA ______________________ 43 II.2 Algorithme de notre protocole RSA _______________________ 44 III. Implémentation ______________________________________________ 44 III.1. Langage de description VHDL _________________________ 45 III.2. Environnement de développement ISE ___________________ 45 III.3. simulation de notre protocole __________________________ 46 III.3.1. chiffrement avec notre protocole _________________ 46 III.3.2 déchiffrement avec notre protocole ________________ 47 IV. Implémentation de notre protocole sur la carte Virtex-II ____________ 47 V. Conclusion ___________________________________________________ 52 Conclusion et perspectives ____________________________ 53 Annexes ____________________________________________________________ 54 Table des figures Figure (I.1) principe de la cryptographie symétrique _______________________ p7 Figure (I.2) principe de la cryptographie asymétrique ______________________ p8 Figure (1) les différents circuits ASIC ___________________________________ p17 Figure (II.2) : Architecture interne d’un FPGA ___________________________ p21 Figure (II.3) : architecture 6T-SRAM ___________________________________ p23 Figure (II.4) : architecture 5T-SRAM ___________________________________ p23 Figure (II.5) : étapes de développement par outils CAO ____________________ p26 Figure (III.1) : carte de développement Virtex-II. _________________________ p31 Figure (III.2) : schéma bloc de la carte de développement Virtex-II ___________ p32 Figure (III.3) : Diagramme de haut niveau de l'interface DDR_______________ p33 Figure (III.4) : circuit reset ____________________________________________ p34 Figure (III.5) : afficheur 7 segments _____________________________________ p35 Figure (III.6) : interface commutateur DIP à l’FPGA ______________________ p36 Figure (III.7) : interface RS232. ________________________________________ p37 Figure (III.8) : Connexion J2 JTAG _____________________________________ p38 Figure (III.9) : Port parallèle IV JP29 ___________________________________ p38 Figure (III.10) : chaîne JTAG de la carte de développement Virtex-II _________ p39 Figure (III.6) : configuration de la chaîne JTAG __________________________ p39 Figure (III.11) : branchement des modes de configuration __________________ p40 Figure (VI.1) : simulation du chiffrement avec notre protocole RSA __________ p46 Table des figures Figure (VI.2) : simulation du déchiffrement avec notre protocole RSA. ________ p47 Figure (VI.3): notre protocole sous ISE __________________________________ p48 Figure (VI.4) : vérification de la syntaxe du protocole ______________________ p48 Figure (VI.5) : créer une source .ucf _____________________________________ p49 Figure (VI.6) : affectation des pins au FPGA _____________________________ p49 Figure (VI.7) : lancement d’IMPACT. __________________________________ p50 Figure (VI.8) : chargement du programme _______________________________ p51 Figure (VI.9) : affichage du résultat sur la carte Virtex-II ___________________ p51 Table des tableaux Tableau (III.1) : description des signaux d’horloge _______________________ p34 Tableau (III.2) : affectation des broches de l’afficheur 7 segments. __________ p35 Tableau (III.3) : affectation des broches des boutons poussoirs _____________ p36 Tableau (III.4) : affectation des broches du commutateur DIP ______________ p36 Tableau (III.5) : affectation des broches du RS232 ________________________ p37 Tableau (III.7) : configuration du mode de sélectionné_____________________ p41 Introduction générale Introduction générale 4 Le RSA est un algorithme de cryptage asymétrique, considéré actuellement comme l’un des moyens les plus sûrs pour sécuriser les transferts de données. Le RSA est un protocole garantissant une sureté proportionnelle à la taille des clés utilisées. D’un point de vue technique ceci pose problème lorsqu’on veut implémenter ce protocole sur les systèmes embarqués actuels, dont la taille mémoire et la puissance de calcul restent insuffisantes vu les exigences sécuritaires de cet algorithme. Pour dépasser ces limites, notre travail a consisté à trouver une solution en apportant des modifications à l’algorithme RSA en se basant sur la multiplication modulaire de Montgomery qui permet la multiplication modulaire efficace en réduisant la taille du résultat produit de deux grand nombres, par conséquent elle peut nous permettre de réduire la taille du résultat d’une puissance. Dans la perspective d’aboutir à un protocole RSA réduit par la multiplication de Montgomery, on doit se baser sur l’algorithme Squart and Multiply. Ce dernier nous permet la réduction de la taille d’une puissance par la multiplication modulaire de Montgomery. Le but de la réduction de la taille du RSA est d’avoir un protocole qui pourra s’implémenter sur des circuits FPGA et de les utiliser dans des systèmes embarqués afin de décharger le processeur de cette tâche qui nécessite une grande puissance de calcul. Notre travail sera implémenté sur une carte de développement FPGA, Virtex-II (V2MB1000), de la firme Xilinx. Organisation du mémoire : Le travail réalisé est décomposé en 4 chapitres : le premier est dédié à la Cryptographie, dans le deuxième chapitre on s’est intéressé aux circuits logiques programmables, le troisième chapitre est consacré à la carte de développement Virtex-II et dans le dernier on a présenté notre contribution. Chapitre 1 : Cryptographie et étude algorithmique Cryptographie et étude algorithmique 6 Introduction De nos jours la cryptographie est un outil très utilisé dans les domaines des télécommunications et des systèmes embarqués pour crypter des données ou des informations. Pour cela, plusieurs méthodes de cryptage existent et sont réalisées, le plus souvent, par des ordinateurs. Mais le plus grand défi de nos jours est de réduire la taille de ces méthodes en les combinant avec d’autres méthodes mathématiques afin de pouvoir les adapter aux systèmes embarqués à ressources limitées. Dans ce chapitre, nous allons nous intéresser à la cryptographie en général, au cryptage asymétrique RSA, à l’algorithme de Montgomery pour la réduction uploads/Geographie/ synthese-d-x27-un-module-de-cryptage-rsa-sur-un-circuit-de-type-fpga.pdf

  • 37
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager