Université de Provence Design and development of a reconfigurable cryptographic co-processor...

Preview:

Citation preview

Université de Provence

Design and development of areconfigurable cryptographic

co-processor

Daniele Fronte

Soutenance de thèse Marseille, 8 Juillet 2008

Superviseur industriel : Eric PayratDirecteur de thèse : Annie Pérez

2

Daniele Fronte ®

Sommaire

1)1) IntroductionIntroduction Cahier des charges et objectifsCahier des charges et objectifs

Choix des algorithmesChoix des algorithmes

2)2) CoprocesseurCoprocesseur ArchitectureArchitecture

Exécution de micro-instructionsExécution de micro-instructions

3)3) Résultats Résultats Validation FPGAValidation FPGA

Synthèse ASICSynthèse ASIC

4)4) ConclusionsConclusions

3

Daniele Fronte ®

Cahier des charges du Coprocesseur

1)1) Cryptographie Cryptographie

2)2) Multi-algorithmesMulti-algorithmes

3)3) Systèmes embarquésSystèmes embarqués

4)4) Sécurité Sécurité

5)5) Cellules standards d’AtmelCellules standards d’Atmel

6)6) Puces - Lecteurs de cartes à pucePuces - Lecteurs de cartes à puce

4

Daniele Fronte ®

Choix

1)1) CryptographieCryptographie

Clé secrète?Clé secrète?

Clé publique?Clé publique?

2)2) Multi-algorithmesMulti-algorithmes

Algorithmes standards/propriétairesAlgorithmes standards/propriétaires

Multi-algorithmesMulti-algorithmes

Quel degré de reconfigurabilité? Quel degré de reconfigurabilité?

FPGA ou pas de FPGA? FPGA ou pas de FPGA?

3)3) Systèmes embarquésSystèmes embarqués

TailleTaille

PerformancesPerformances

4)4) Sécurité Sécurité

Attaques latérales de canal: SPA, DPA…Attaques latérales de canal: SPA, DPA…

5

Daniele Fronte ®

DES, AES

Cryptographie à clé secrèteCryptographie à clé secrète

Alice Bob

DES DES-1

6

Daniele Fronte ®

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

L0 R0

L16 R16

16 boucles

IP

FP

F

F

F

F

32 32

32 32

7

Daniele Fronte ®

Détails de DES

Fonction F :

1. Expansion E

2. Ou exclusif

3. Sbox

4. Permutation P

E

S1 S2 S3 S4 S5 S6 S7 S8

P

R Clé

4832

48

32

32

8

Daniele Fronte ®

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 ®

Détails de AES

Transformations :

1. Sbox

2. ShiftRows

3. MixColumns

4. AddRoundKeys

10

Daniele Fronte ®

Détails de AES

Transformations :

1. Sbox

2. ShiftRows

3. MixColumns

4. AddRoundKeys

11

Daniele Fronte ®

Détails de AES

Transformations :

1. Sbox

2. ShiftRows

3. MixColumns

4. AddRoundKeys

12

Daniele Fronte ®

Détails de AES

Transformations :

1. Sbox

2. ShiftRows

3. MixColumns

4. AddRoundKeys

13

Daniele Fronte ®

SHA

Fonction de HachageFonction 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

14

Daniele Fronte ®

Utilisation de SHA

Message SHA

517F3AB6

Condensé

Alice

Bob

Si oui, le message est authentique et intègre

Message, condensé

Message SHA

517F3AB6

Condensé

=?

15

Daniele Fronte ®

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 Wt

Ou exclusif

Ch

Σ1

Σ0

Maj

Wt

Kt

16

Daniele Fronte ®

Opérations requises

Sbox Look up table 8 bits

Shift Rows Rotation à droite 8 bits

Mix Columns xtime, Ou exclusif 8 bits

Add Round Key Ou exclusif 8 bits

Ou exclusif Ou exclusif 32 bits

Rotation Rotation 1 bit

IP, IP-1, PC1, PC2, E Permutations Bit à bit

SBox Look up table Bit à bit

Ou exclusif Ou exclusif 32 bits

Addition Addition 32 bits

Décalage Décalage 32 bits

Rotation Rotation 32 bits

AES

DES

SHA

17

Daniele Fronte ®

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 ®

Architecture de Celator

19

Daniele Fronte ®

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

Inp

ut

dat

a st

ream

s

Inp

ut

dat

a st

ream

s

Processing Elements : Grain fin Grain gros 1D, 2D, 3D

20

Daniele Fronte ®

Construisons un Processing Element array

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

Systolic Processor Network Data matrix

21

Daniele Fronte ®

PE Array, Controller

PE PE PEPE

PE PE PEPE

PE PE PEPE

PE PE PEPE

Controller

Data Bus

Processing Element

Control Bus

22

Daniele Fronte ®

PE Array, Controller, CRAM

PE

ArrayCRAM

Controller Reconfigurabilité donnée par :

Réseau systolique de Processing Elements

CRAM

23

Daniele Fronte ®

IF

MainMemory

ARM 7TDMI

PEArray

Controller

Celator

CRAM

Programs

and

Data

Vue générale du système

Other

Peripherals

AHB

24

Daniele Fronte ®

Interface Advanced High-performance Bus (AHB)

HSEL_RAM

HWRITE

HWDATA [31:0]

HRDATA [31:0]

HSEL_REG

HADDR [ 11: 0]

interruptStatus reg

Control reg

Split Address regData/controls

From/to CRAM

Data/controls

From/to Controller

CPU_clock Celator_clock

25

Daniele Fronte ®

PE array

PE00 PE01 PE02 PE03

PE10 PE11 PE12 PE13

PE20 PE21 PE22 PE23

PE30 PE31 PE32 PE33

PE array northern data I/O

PE array southern data I/O

32-bits

32-bits

32-bits32-bits

PE

array eastern d

ata I/OPE

arr

ay w

este

rn d

ata

I/O

MUX_N

MUX_EMUX_W

MUX_S

26

Daniele Fronte ®

Exemple d’exécution

• Remplissage de la CRAM

• Lecture des micro-instructions

• AES Shift Rows

27

Système

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

ControllerPE in 32

Reg XReg Y

28

Remplissage de la CRAM

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

ControllerPE in 32

Reg XReg Y

29

Remplissage de la CRAM

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

ControllerPE in 32

Reg XReg Y

AES-1

30

Remplissage de la CRAM

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

ControllerPE in 32

Reg XReg Y

AES-1AES-2

31

Remplissage de la CRAM

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

ControllerPE in 32

Reg XReg Y

AES-2AES-3

AES-1

32

Remplissage de la CRAM

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

ControllerPE in 32

Reg XReg Y

AES-3AES-4

AES-1AES-2

33

CRAMAES-6

Remplissage de la CRAM

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

PE in 32

Reg XReg Y

AES-3AES-4

AES-1AES-2

AES-7

AES-5

DATA-3

DATA-1DATA-2

CRAM

34

Démarrage de Celator

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

ControllerPE in 32

Reg XReg Y

35

Lecture des micro-instructions

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

ControllerPE in 32

Reg XReg Y

AES-1

36

Chargement des données dans le PE array

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

Controller32PE in

Reg XReg Y

Data 1

37

Chargement des données dans le PE array

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

Controller32PE in

Reg XReg Y

Data 2

38

Chargement des données dans le PE array

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

Controller32PE in

Reg XReg Y

Data 3

39

Chargement des données dans le PE array

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

Controller32PE in

Reg XReg Y

Data 4

40

AES Shift Rows

41

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

CRAM

PE in 32

Reg XReg Y

42

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

Controller32PE in

Reg XReg Y

43

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

CRAM

32PE in

Reg XReg Y

44

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

CRAM

32PE in

Reg XReg Y

45

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

CRAM

PE in 32

Reg XReg Y

46

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

Controller32PE in

Reg XReg Y

47

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

CRAM

32PE in

Reg XReg Y

48

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

CRAM

32PE in

Reg XReg Y

49

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

CRAM

PE in 32

Reg XReg Y

50

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

PE Array

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU

CRAM

32Do

Controller32PE in

Reg XReg Y

51

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

CRAM

32PE in

Reg XReg Y

52

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

CRAM

32PE in

Reg XReg Y

53

AES Shift Rows

CPU

32

interface

32

Di CPUDi Controller

Address Controller

12Address CPU 12

Co

ntr

ol i

n

Co

ntr

ol o

ut

6 6

Sta

tus

in

stat

us

ou

t

6 6

32

32

32 HRDATA

HWDATA

HADDR

Status reg

Control reg

Split Address reg

Controller

32

32

PE out

32Do CPU32

Do Controller

CRAM

PE in 32

Reg XReg Y

54

Daniele Fronte ®

FPGA Validation

55

Daniele Fronte ®

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

56

Daniele Fronte ®

FPGA Validation

AESDESSHA

012345678901

ppm filejpg file

DCD 0x0123DCD 0x4567DCD 0x8901

dcd file

0x92670x23010x4805

926723014805

ppm file

Celator (FPGA)

jpg file

AES-1

DES-1

012345678901

ppm filejpg file

DCD 0x0123DCD 0x4567DCD 0x8901

dcd file Celator (FPGA)

0x45D5BA3

57

Daniele Fronte ®

AES (ECB et CBC modes) : Lena

AES-1

CBC mode

AES128 128

128 128

AES128 128

AES-1

128 128

ECB mode

58

Daniele Fronte ®

DES (ECB et CBC modes) : Lena

DES-1

CBC mode

DES64 64

64 64

DES64 64

DES-1

64 64

ECB mode

59

Daniele Fronte ®

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

60

Daniele Fronte ®

Résultats ASIC

61

Daniele Fronte ®

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 ®

Algorithmes exécutés par Celator

0

1000

2000

3000

4000

5000

6000

Cycles

DES AES SHA

Keys scheduling

Encryption

Decryption

Hashing

63

Daniele Fronte ®

DES

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

0

100

200

300

400

500

600

700

Atmel Celator Saquib Ebiham 1 Ebiham 2

Cycles Bitrate (Mbps)

64

Daniele Fronte ®

SHA

1

10

100

1000

10000

Rchaves Iahmad Cadence Celator

Cycles Bit-Rate

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

65

Daniele Fronte ®

Tailles et performances (pour AES)

0% reconf. 100% reconf.x% reconf. 100% reconf.Technologie 130nm

(*) Les mémoires ne sont pas comptées

1

10

100

1000

10000

Atmel HW Macro Celator µ ARM 7 TDMI µ AVR

Cycles Bit-rate (Mbps)

66

Daniele Fronte ®

Conclusions sur Celator

1)1) Coprocesseur multi-algorithmesCoprocesseur multi-algorithmes

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

3)3) Possibilité d’implémenter des algorithmes propriétairesPossibilité d’implémenter des algorithmes propriétaires

4)4) Performances : Performances :

AES 47 MbpsAES 47 Mbps

DES 24 MbpsDES 24 Mbps

SHA 5 MbpsSHA 5 Mbps

Améliorations récentes :

• AES + 20%

• DES + 20%

• SHA + 40%

Taille totale estimée : + 5%

67

Daniele Fronte ®

Prévision à court terme

1)1) Intégration dans la nouvelle génération de Intégration dans la nouvelle génération de

lecteurs de cartes à puces lecteurs de cartes à puces

2)2) Marché cible : télé à la demandeMarché cible : télé à la demande

3)3) Certification de sécurité (EAL5+)Certification de sécurité (EAL5+)

4)4) Exécution d’autres algorithmesExécution d’autres algorithmes

68

Daniele Fronte ®

Celator Team

Eric PAYRATAtmel

Annie PEREZIM2NP

Daniele FRONTEAtmel & IM2NP

Vincent MOLLETPolytech’Marseille

Celine HUYNH VAN THIENGPolytech’Marseille

®

69

Daniele Fronte ®

Merci pour votre attention

Recommended