université de provence design and development of a reconfigurable cryptographic co-processor...
Post on 04-Apr-2015
111 Views
Preview:
TRANSCRIPT
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
top related