PhD Defence

50 %
50 %
Information about PhD Defence
Technology

Published on February 27, 2009

Author: daniele.fronte

Source: slideshare.net

Description

Design and development of a recon gurable cryptographic co-processor

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

Sommaire Introduction Cahier des charges et objectifs Choix des algorithmes Coprocesseur Architecture Exécution de micro-instructions Résultats Validation FPGA Synthèse ASIC Conclusions

Introduction

Cahier des charges et objectifs

Choix des algorithmes

Coprocesseur

Architecture

Exécution de micro-instructions

Résultats

Validation FPGA

Synthèse ASIC

Conclusions

Cahier des charges du Coprocesseur Cryptographie Multi-algorithmes Systèmes embarqués Sécurité Cellules standards d’Atmel Puces - Lecteurs de cartes à puce

Cryptographie

Multi-algorithmes

Systèmes embarqués

Sécurité

Cellules standards d’Atmel

Puces - Lecteurs de cartes à puce

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

Cryptographie

Clé secrète?

Clé publique?

Multi-algorithmes

Algorithmes standards/propriétaires

Multi-algorithmes

Quel degré de reconfigurabilité?

FPGA ou pas de FPGA?

Systèmes embarqués

Taille

Performances

Sécurité

Attaques latérales de canal: SPA, DPA…

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

Cryptographie à clé secrète

DES Taille du bloc données : 64 bits Taille initiale de la clé : 56 bits Permutation Initiale 16 boucles : Fonction F Ou exclusif Permutation finale Message en clair L Message encrypté R L 0 R 0 L 16 R 16 16 boucles IP FP F F F F 32 32 32 32

Taille du bloc données : 64 bits

Taille initiale de la clé : 56 bits

Permutation Initiale

16 boucles :

Fonction F

Ou exclusif

Permutation finale

Détails de DES Fonction F : Expansion E Ou exclusif Sbox Permutation P E S1 S2 S3 S4 S5 S6 S7 S8 P R Clé 48 32 48 32 32

Fonction F :

Expansion E

Ou exclusif

Sbox

Permutation P

AES Taille du blocs données : 128 bits Taille initiale de la clé : 128, 192, 256 bits 10 boucles, dont 8 avec : Sbox ShiftRows MixColumns AddRoundKeys

Taille du blocs données : 128 bits

Taille initiale de la clé : 128, 192, 256 bits

10 boucles, dont 8 avec :

Sbox

ShiftRows

MixColumns

AddRoundKeys

Détails de AES Transformations : Sbox ShiftRows MixColumns AddRoundKeys

Transformations :

Sbox

ShiftRows

MixColumns

AddRoundKeys

Détails de AES Transformations : Sbox ShiftRows MixColumns AddRoundKeys

Transformations :

Sbox

ShiftRows

MixColumns

AddRoundKeys

Détails de AES Transformations : Sbox ShiftRows MixColumns AddRoundKeys

Transformations :

Sbox

ShiftRows

MixColumns

AddRoundKeys

Détails de AES Transformations : Sbox ShiftRows MixColumns AddRoundKeys

Transformations :

Sbox

ShiftRows

MixColumns

AddRoundKeys

SHA Fonction de Hachage SHA 000 8AEFB06C 426E07A0 A671A1E2 588B4858 D694A730 input Hash sum SHA 001 E193A01E CF8D30AD 0AFFEFD3 32CE934E 32FFCE72 SHA 010 47AB9979 443FB7ED 1C193D06 773333BA 7876094F

Fonction de Hachage

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

Message

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 Σ 0 Maj W t K t

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

Opérations requises AES DES SHA 8 bits xtime, Ou exclusif Mix Columns 8 bits Ou exclusif Add Round Key Rotation à droite Look up table 8 bits Shift Rows 8 bits Sbox Bit à bit Permutations IP, IP -1 , PC 1 , PC 2 , E Bit à bit Look up table SBox Rotation Ou exclusif 1 bit Rotation 32 bits Ou exclusif 32 bits Décalage Décalage 32 bits Rotation Rotation Addition Ou exclusif 32 bits Addition 32 bits Ou exclusif

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

krypton, encrypt, crypto etc.  déjà utilisés !

Cryptographie en grecque :

Kript ó s = cacher

Gràfo = écrire

Cryptographie en latin

Celare = cacher

Architecture de Celator

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

Processing Elements :

Grain fin

Grain gros

1D, 2D, 3D

Construisons un Processing Element array Systolic Processor Network Data matrix

PE Array, Controller PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE PE Controller Data Bus Processing Element Control Bus

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

Reconfigurabilité donnée par :

Réseau systolique de Processing Elements

CRAM

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

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

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 32-bits 32-bits 32-bits PE array eastern data I/O PE array western data I/O MUX_N MUX_E MUX_W MUX_S

Exemple d’exécution Remplissage de la CRAM Lecture des micro-instructions AES Shift Rows

Remplissage de la CRAM

Lecture des micro-instructions

AES Shift Rows

Système CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller PE in 32 Reg X Reg Y

Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller PE in 32 Reg X Reg Y

Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller PE in 32 Reg X Reg Y AES-1

Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller PE in 32 Reg X Reg Y AES-1 AES-2

Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller PE in 32 Reg X Reg Y AES-2 AES-3 AES-1

Remplissage de la CRAM CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller PE in 32 Reg X Reg Y AES-3 AES-4 AES-1 AES-2

Remplissage de la CRAM CRAM AES-6 CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller PE in 32 Reg X Reg Y AES-3 AES-4 AES-1 AES-2 AES-7 AES-5 DATA-3 DATA-1 DATA-2 CRAM

Démarrage de Celator CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller PE in 32 Reg X Reg Y

Lecture des micro-instructions CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller PE in 32 Reg X Reg Y AES-1

Chargement des données dans le PE array CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller 32 PE in Reg X Reg Y Data 1

Chargement des données dans le PE array CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller 32 PE in Reg X Reg Y Data 2

Chargement des données dans le PE array CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller 32 PE in Reg X Reg Y Data 3

Chargement des données dans le PE array CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller 32 PE in Reg X Reg Y Data 4

AES Shift Rows

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller CRAM PE in 32 Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller 32 PE in Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller CRAM 32 PE in Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller CRAM 32 PE in Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller CRAM PE in 32 Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller 32 PE in Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller CRAM 32 PE in Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller CRAM 32 PE in Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller CRAM PE in 32 Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 PE Array Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU CRAM 32 Do Controller 32 PE in Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller CRAM 32 PE in Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller CRAM 32 PE in Reg X Reg Y

AES Shift Rows CPU 32 interface 32 Di CPU Di Controller Address Controller 12 Address CPU 12 Control in Control out 6 6 Status in status out 6 6 32 32 32 HRDATA HWDATA HADDR Status reg Control reg Split Address reg Controller 32 32 PE out 32 Do CPU 32 Do Controller CRAM PE in 32 Reg X Reg Y

FPGA Validation

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 à l’aide de la suite ARM developper

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 à l’aide de la suite ARM developper

FPGA Validation AES DES SHA 0123 4567 8901 ppm file jpg file DCD 0x0123 DCD 0x4567 DCD 0x8901 dcd file 0x9267 0x2301 0x4805 9267 2301 4805 ppm file Celator (FPGA) jpg file AES -1 DES -1 0123 4567 8901 ppm file jpg file DCD 0x0123 DCD 0x4567 DCD 0x8901 dcd file Celator (FPGA) 0x45D5BA3

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

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

SHA Condensé : D0E309A7 88BE2E1B 255BEE42 B18B0675 174E1E05 69063F30 D748EEF4 F236D21D Lena originale Lena: un pixel a été modifié Condensé : 38F26C9A B2DC15A3 845E6AAD 6B94495C 9747FE14 86E513D1 D2FD2CE7 BDA331C3

Condensé :

D0E309A7 88BE2E1B 255BEE42 B18B0675

174E1E05 69063F30 D748EEF4 F236D21D

Résultats ASIC

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

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

Algorithmes exécutés par Celator

DES 0% reconf. FPGA 100% reconfigurable (HW sbox) x% reconf.

SHA 0% reconf. x% reconf. 0% reconf. 0% reconf.

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

Conclusions sur Celator Coprocesseur multi-algorithmes Algorithmes Standards exécutés : AES, DES, SHA Possibilité d’implémenter des algorithmes propriétaires Performances : AES 47 Mbps DES 24 Mbps SHA 5 Mbps Améliorations récentes : AES + 20% DES + 20% SHA + 40% Taille totale estimée : + 5%

Coprocesseur multi-algorithmes

Algorithmes Standards exécutés : AES, DES, SHA

Possibilité d’implémenter des algorithmes propriétaires

Performances :

AES 47 Mbps

DES 24 Mbps

SHA 5 Mbps

Améliorations récentes :

AES + 20%

DES + 20%

SHA + 40%

Taille totale estimée : + 5%

Prévision à court terme Intégration dans la nouvelle génération de lecteurs de cartes à puces Marché cible : télé à la demande Certification de sécurité (EAL5+) Exécution d’autres algorithmes

Intégration dans la nouvelle génération de lecteurs de cartes à puces

Marché cible : télé à la demande

Certification de sécurité (EAL5+)

Exécution d’autres algorithmes

Celator Team Eric PAYRAT Atmel Annie PEREZ IM2NP Daniele FRONTE Atmel & IM2NP Vincent MOLLET Polytech’Marseille Celine HUYNH VAN THIENG Polytech’Marseille

Eric PAYRAT

Atmel

Annie PEREZ

IM2NP

Daniele FRONTE

Atmel & IM2NP

Vincent MOLLET

Polytech’Marseille

Celine HUYNH VAN THIENG

Polytech’Marseille

Merci pour votre attention

Add a comment

Related presentations

Related pages

Hints for PhD defenses - Columbia University

Hints for PhD Defenses. At Columbia, PhD defenses are generally not public, although CS usually allows a student audience. Defenses consist of four parts ...
Read more

Phd Defense

Others are back in course swamped with standardized testing, although some children are on Spring Break at this time. There exists a disagreement in ...
Read more

dict.cc | PhD thesis defense | Wörterbuch Englisch-Deutsch

Übersetzung für PhD thesis defense im Englisch-Deutsch-Wörterbuch dict.cc.
Read more

Stanford PhD Defense - Chen Peng - YouTube

Stanford, PhD Defense, MS&E ... James Hayton: How to get through your PhD without going insane (complete lecture), Edinburgh 2013 - Duration: 1 ...
Read more

PhD defence - AU

If the committee’s assessment of your PhD dissertation is positive, the dissertation is accepted for public defence. The public defence consists of a ...
Read more

phd thesis defense - Englisch ⇔ Deutsch Wörterbuch ...

Das Sprachangebot für Englisch-Deutsch: Wörterbuch mit Übersetzungen, Flexionstabellen und Audio, interaktivem Forum und Trainer für flexibles Lernen.
Read more

Top 10 Ways To Successfully Defend Your PhD | The Grad ...

Here are top 10 ways in which you can give an awesome PhD Defense and ensure your chances of success.
Read more

PhD Defence

10.05.2016 - 10.05.2016 | Translational Control by Upstream Open Reading Frames (uORFs): Prevalence, Function and Cancer-associated Genetic Alterations in ...
Read more

PhD defence

A STRONG COMMITMENT TO EXCELLENCE. Aarhus University generates and shares knowledge that contributes to solving complex social and global challenges.
Read more

Thesis - Wikipedia, the free encyclopedia

In India the thesis defence is called a viva voce (Latin for "by live voice") ... For the PhD a thesis (tese) is presented for defense in a public exam.
Read more