69
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

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

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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…

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

5

Daniele Fronte ®

DES, AES

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

Alice Bob

DES DES-1

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

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

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

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

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

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

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

9

Daniele Fronte ®

Détails de AES

Transformations :

1. Sbox

2. ShiftRows

3. MixColumns

4. AddRoundKeys

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

10

Daniele Fronte ®

Détails de AES

Transformations :

1. Sbox

2. ShiftRows

3. MixColumns

4. AddRoundKeys

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

11

Daniele Fronte ®

Détails de AES

Transformations :

1. Sbox

2. ShiftRows

3. MixColumns

4. AddRoundKeys

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

12

Daniele Fronte ®

Détails de AES

Transformations :

1. Sbox

2. ShiftRows

3. MixColumns

4. AddRoundKeys

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

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

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

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é

=?

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

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

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

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

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

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

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

18

Daniele Fronte ®

Architecture de Celator

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

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

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

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

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

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

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

22

Daniele Fronte ®

PE Array, Controller, CRAM

PE

ArrayCRAM

Controller Reconfigurabilité donnée par :

Réseau systolique de Processing Elements

CRAM

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

23

Daniele Fronte ®

IF

MainMemory

ARM 7TDMI

PEArray

Controller

Celator

CRAM

Programs

and

Data

Vue générale du système

Other

Peripherals

AHB

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

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

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

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

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

26

Daniele Fronte ®

Exemple d’exécution

• Remplissage de la CRAM

• Lecture des micro-instructions

• AES Shift Rows

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

40

AES Shift Rows

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

54

Daniele Fronte ®

FPGA Validation

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

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

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

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

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

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

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

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

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

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

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

60

Daniele Fronte ®

Résultats ASIC

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

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

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

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

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

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)

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

64

Daniele Fronte ®

SHA

1

10

100

1000

10000

Rchaves Iahmad Cadence Celator

Cycles Bit-Rate

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

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

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)

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

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%

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

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

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

68

Daniele Fronte ®

Celator Team

Eric PAYRATAtmel

Annie PEREZIM2NP

Daniele FRONTEAtmel & IM2NP

Vincent MOLLETPolytech’Marseille

Celine HUYNH VAN THIENGPolytech’Marseille

®

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

69

Daniele Fronte ®

Merci pour votre attention