La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Université de Provence Design and development of a reconfigurable cryptographic co-processor Daniele Fronte Soutenance de thèse Marseille, 8 Juillet 2008.

Présentations similaires


Présentation au sujet: "Université de Provence Design and development of a reconfigurable cryptographic co-processor Daniele Fronte Soutenance de thèse Marseille, 8 Juillet 2008."— Transcription de la présentation:

1 Université de Provence Design and development of a reconfigurable cryptographic co-processor Daniele Fronte Soutenance de thèse Marseille, 8 Juillet 2008 Superviseur industriel : Eric Payrat Directeur de thèse : Annie Pérez

2 Daniele Fronte 2 Sommaire 1)Introduction Cahier des charges et objectifs Cahier des charges et objectifs Choix des algorithmes Choix des algorithmes 2)Coprocesseur Architecture Architecture Exécution de micro-instructions Exécution de micro-instructions 3)Résultats Validation FPGA Validation FPGA Synthèse ASIC Synthèse ASIC 4)Conclusions

3 Daniele Fronte 3 Cahier des charges du Coprocesseur 1)Cryptographie 2)Multi-algorithmes 3)Systèmes embarqués 4)Sécurité 5)Cellules standards dAtmel 6)Puces - Lecteurs de cartes à puce

4 Daniele Fronte 4 Choix 1)Cryptographie Clé secrète? Clé secrète? Clé publique? Clé publique? 2)Multi-algorithmes Algorithmes standards/propriétaires Algorithmes standards/propriétaires Multi-algorithmes Multi-algorithmes Quel degré de reconfigurabilité? Quel degré de reconfigurabilité? FPGA ou pas de FPGA? FPGA ou pas de FPGA? 3)Systèmes embarqués Taille Taille Performances Performances 4)Sécurité Attaques latérales de canal: SPA, DPA… Attaques latérales de canal: SPA, DPA…

5 Daniele Fronte 5 DES, AES Cryptographie à clé secrète Cryptographie à clé secrète Alice Bob DES DES -1

6 Daniele Fronte 6 DES Taille du bloc données : 64 bits Taille initiale de la clé : 56 bits 1.Permutation Initiale 2.16 boucles : Fonction F Ou exclusif 3.Permutation finale Message en clair L Message encrypté R L0L0 R0R0 L 16 R boucles IP FP F F F F 32

7 Daniele Fronte 7 Détails de DES Fonction F : 1.Expansion E 2.Ou exclusif 3.Sbox 4.Permutation P E S1S2S3S4S5S6S7S8 P RClé

8 Daniele Fronte 8 AES Taille du blocs données : 128 bits Taille initiale de la clé : 128, 192, 256 bits 10 boucles, dont 8 avec : 1.Sbox 2.ShiftRows 3.MixColumns 4.AddRoundKeys

9 Daniele Fronte 9 Détails de AES Transformations : 1.Sbox 2.ShiftRows 3.MixColumns 4.AddRoundKeys

10 Daniele Fronte 10 Détails de AES Transformations : 1.Sbox 2.ShiftRows 3.MixColumns 4.AddRoundKeys

11 Daniele Fronte 11 Détails de AES Transformations : 1.Sbox 2.ShiftRows 3.MixColumns 4.AddRoundKeys

12 Daniele Fronte 12 Détails de AES Transformations : 1.Sbox 2.ShiftRows 3.MixColumns 4.AddRoundKeys

13 Daniele Fronte 13 SHA Fonction de Hachage Fonction de Hachage SHA 000 8AEFB06C 426E07A0 A671A1E2 588B4858 D694A730 input Hash sum SHA 001 E193A01E CF8D30AD 0AFFEFD3 32CE934E 32FFCE72 SHA AB FB7ED 1C193D BA F

14 Daniele Fronte 14 Utilisation de SHA MessageSHA 517F3AB6 Condensé Alice Bob Si oui, le message est authentique et intègre Message, condensé MessageSHA 517F3AB6 Condensé =?

15 Daniele Fronte 15 Détails de SHA-256 Taille du blocs données : (multiple de) 512 bits Taille du condensé : 256 bits 64 boucles : 8 variables: A, B, …, H 4 Fonctions: Ch, Maj, Σ 0, Σ 1 64 valeurs temporaires W t Ou exclusif Ch Σ1Σ1 Σ0Σ0 Maj WtWt KtKt

16 Daniele Fronte 16 Opérations requises SboxLook up table8 bits Shift RowsRotation à droite8 bits Mix Columnsxtime, Ou exclusif8 bits Add Round KeyOu exclusif8 bits Ou exclusif 32 bits Rotation 1 bit IP, IP -1, PC 1, PC 2, EPermutationsBit à bit SBoxLook up tableBit à bit Ou exclusif 32 bits Addition 32 bits Décalage 32 bits Rotation 32 bits AES DES SHA

17 Daniele Fronte 17 Coprocesseur Cryptographique Reconfigurable krypton, encrypt, crypto etc. déjà utilisés ! Cryptographie en grecque : Kriptós = cacher Gràfo = écrire Cryptographie en latin Celare = cacher = Celator

18 Daniele Fronte 18 Architecture de Celator

19 Daniele Fronte 19 Réseaux systoliques de processeurs PE Input data streams Processing Elements : Grain fin Grain gros 1D, 2D, 3D

20 Daniele Fronte 20 Construisons un Processing Element array Systolic Processor NetworkData matrix

21 Daniele Fronte 21 PE Array, Controller PE Controller Data Bus Processing Element Control Bus

22 Daniele Fronte 22 PE Array, Controller, CRAM PE Array CRAM Controller Reconfigurabilité donnée par : Réseau systolique de Processing Elements CRAM

23 Daniele Fronte 23 IF Main Memory ARM 7 TDMI PE Array Controller Celator CRAM Programs and Data Vue générale du système Other Peripherals AHB

24 Daniele Fronte 24 Interface Advanced High-performance Bus (AHB) HSEL_RAM HWRITE HWDATA [31:0] HRDATA [31:0] HSEL_REG HADDR [ 11: 0] interrupt Status reg Control reg Split Address reg Data/controls From/to CRAM Data/controls From/to Controller CPU_clock Celator_clock

25 Daniele Fronte 25 PE array PE 00 PE 01 PE 02 PE 03 PE 10 PE 11 PE 12 PE 13 PE 20 PE 21 PE 22 PE 23 PE 30 PE 31 PE 32 PE 33 PE array northern data I/O PE array southern data I/O 32-bits PE array eastern data I/O PE array western data I/O MUX_N MUX_E MUX_W MUX_S

26 Daniele Fronte 26 Exemple dexécution Remplissage de la CRAM Lecture des micro-instructions AES Shift Rows

27 27 Système CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller PE in32 Reg XReg Y

28 28 Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller PE in32 Reg XReg Y

29 29 Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller PE in32 Reg XReg Y AES-1

30 30 Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller PE in32 Reg XReg Y AES-1 AES-2

31 31 Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller PE in32 Reg XReg Y AES-2 AES-3 AES-1

32 32 Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller PE in32 Reg XReg Y AES-3 AES-4 AES-1 AES-2

33 33 CRAM AES-6 Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller PE in32 Reg XReg Y AES-3 AES-4 AES-1 AES-2 AES-7 AES-5 DATA-3 DATA-1 DATA-2 CRAM

34 34 Démarrage de Celator CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller PE in32 Reg XReg Y

35 35 Lecture des micro-instructions CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller PE in32 Reg XReg Y AES-1

36 36 Chargement des données dans le PE array CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller 32PE in Reg XReg Y Data 1

37 37 Chargement des données dans le PE array CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller 32PE in Reg XReg Y Data 2

38 38 Chargement des données dans le PE array CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller 32PE in Reg XReg Y Data 3

39 39 Chargement des données dans le PE array CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller 32PE in Reg XReg Y Data 4

40 40 AES Shift Rows

41 41 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller CRAM PE in32 Reg XReg Y

42 42 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller 32PE in Reg XReg Y

43 43 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller CRAM 32PE in Reg XReg Y

44 44 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller CRAM 32PE in Reg XReg Y

45 45 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller CRAM PE in32 Reg XReg Y

46 46 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller 32PE in Reg XReg Y

47 47 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller CRAM 32PE in Reg XReg Y

48 48 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller CRAM 32PE in Reg XReg Y

49 49 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller CRAM PE in32 Reg XReg Y

50 50 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 PE Array Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU CRAM 32 Do Controller 32PE in Reg XReg Y

51 51 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller CRAM 32PE in Reg XReg Y

52 52 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller CRAM 32PE in Reg XReg Y

53 53 AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU12 Control inControl out 66 Status instatus out HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 PE out 32Do CPU 32 Do Controller CRAM PE in32 Reg XReg Y

54 Daniele Fronte 54 FPGA Validation

55 Daniele Fronte 55 FPGA Validation Celator a été : Ecrit en RTL Verilog HDL Simulé par Mentor Modelsim Synthétisé (FPGA) par Mentor Precision RTL Placé et routé par Xilinx ISE Téléchargé dans une carte FPGA Xilinx Virtex II Les tests sur FPGA ont été faits à laide de la suite ARM developper

56 Daniele Fronte 56 FPGA Validation AES DES SHA ppm filejpg file DCD 0x0123 DCD 0x4567 DCD 0x8901 dcd file 0x9267 0x2301 0x ppm file Celator (FPGA) jpg file AES -1 DES ppm filejpg file DCD 0x0123 DCD 0x4567 DCD 0x8901 dcd fileCelator (FPGA) 0x45D5BA3

57 Daniele Fronte 57 AES (ECB et CBC modes) : Lena AES -1 CBC mode AES 128 AES 128 AES ECB mode

58 Daniele Fronte 58 DES (ECB et CBC modes) : Lena DES -1 CBC mode DES 64 DES 64 DES ECB mode

59 Daniele Fronte 59 SHA Condensé : D0E309A7 88BE2E1B 255BEE42 B18B E1E F30 D748EEF4 F236D21D Lena originale Lena: un pixel a été modifié Condensé : 38F26C9A B2DC15A3 845E6AAD 6B94495C 9747FE14 86E513D1 D2FD2CE7 BDA331C3

60 Daniele Fronte 60 Résultats ASIC

61 Daniele Fronte 61 Résultats de synthèse ASIC Celator a été : Ecrit en RTL Verilog HDL Simulé par Mentor Modelsim Synthétisé (ASIC) par Synopsys Design Compiler Placé et routé par Cadence Encounter

62 Daniele Fronte 62 Algorithmes exécutés par Celator

63 Daniele Fronte 63 DES 0% reconf.FPGA100% reconfigurable (HW sbox)x% reconf.

64 Daniele Fronte 64 SHA 0% reconf.x% reconf.0% reconf.

65 Daniele Fronte 65 Tailles et performances (pour AES) 0% reconf.100% reconf.x% reconf.100% reconf. Technologie 130nm (*) Les mémoires ne sont pas comptées

66 Daniele Fronte 66 Conclusions sur Celator 1)Coprocesseur multi-algorithmes 2)Algorithmes Standards exécutés : AES, DES, SHA 3)Possibilité dimplémenter des algorithmes propriétaires 4)Performances : AES 47 Mbps AES 47 Mbps DES 24 Mbps DES 24 Mbps SHA 5 Mbps SHA 5 Mbps Améliorations récentes : AES + 20% DES + 20% SHA + 40% Taille totale estimée : + 5%

67 Daniele Fronte 67 Prévision à court terme 1)Intégration dans la nouvelle génération de lecteurs de cartes à puces 2)Marché cible : télé à la demande 3)Certification de sécurité (EAL5+) 4)Exécution dautres algorithmes

68 Daniele Fronte 68 Celator Team Eric PAYRAT Atmel Annie PEREZ IM2NP Daniele FRONTE Atmel & IM2NP Vincent MOLLET PolytechMarseille Celine HUYNH VAN THIENG PolytechMarseille

69 Daniele Fronte 69 Merci pour votre attention


Télécharger ppt "Université de Provence Design and development of a reconfigurable cryptographic co-processor Daniele Fronte Soutenance de thèse Marseille, 8 Juillet 2008."

Présentations similaires


Annonces Google