Politecnico di Milano
Implementazione di un Architettura
Sicura per l’AES
Relatore: Luca Breveglieri
27 Luglio 2006
Milano
Motta Francesco 653571
Nazzari Davide 652171
Sommario
Obiettivi
AES
Architettura
Rilevazione D’Attacco
Occupazione FPGA
Risultati
Conclusioni e Sviluppi Futuri
-2-
Obiettivi
Proporre l’implementazione di un’architettura per l’AES
capace di riconfigurasi in caso di attacco esterno,
riscontrato tramite l’utilizzo della rilevazione d’errore.
-3-
Cos’è l’AES
Algoritmo di Codifica
L’AES:
Algortimo di crittografia a chiave
simmetrica
Algoritmo a blocchi
Chiavi da 128, 192 e 256 bit
Dal 2001 nuovo standard per la
crittografia
Matrice STATE
Operazioni:
SubByte
ShiftRow
MixColumn
AddRoundKey
s00
s01
s02
s03
s10
s11
s12
s13
s20
s21
s22
s23
s30
s31
s32
s33
-4-
AES: Le operazioni
SubByte
MixColumn
Matrice Substitution Box
ShiftRow
a2,2
= {68}h
AddRoundKey
ac(x) = (ac,r) · x3 + (ac,r) · x2 + (ac,r) · x + (ac,r)
b2,2 = {45}h
c(x) = {03}h · x3 + {01}h · x2 + {01}h · x + {02}h
b(x) = [ac(x) · c(x)] mod (x4-1)
-5-
Architettura
ControlUnit
DataUnit
KeyUnit
-6-
Architettura DataUnit: due possibili
implementazioni
DataUnit ad Alte Prestazioni
DataUnit Standard
Per eseguire i 10 round sono necessari 34 cicli
di clock. 3 cicli per ogni round: uno per la
SubByte, uno per la ShiftRow e uno per
MixColumn e AddRoundKey.
-7-
Sono necessari 64 cicli per i 10 round. In ogni
round 5 cicli servono per eseguire SubByte e
ShiftRow. Utilizza il 43% in meno di spazio.
Attacchi
Ad oggi non è stato ancora violato
Esistono nuovi tipi di attacco potenzialmente pericolosi
ESISTONO NUOVI TIPI DI ATTACCHI POTENZIALMENTE PERICOLOSI
Optical Attack
-8-
Rilevazione d’attacchi
Gli attacchi si traducono in
errori in (de)codifica
Come rilevarli:

Metodi EDC (Error
Detecting Code)
Matrice STATE
Matrice Delle Parità
s00
s01
s02
s03
p00
p01
p02
p03
s10
s11
s12
s13
p10
p11
p12
p13
s20
s21
s22
s23
p20
p21
p22
p23
s30
s31
s32
s33
p30
p31
p32
p33
Input
Per alcune operazioni è molto facile
AddRoundKey
Predittore
Operazione AES
ShiftRow
Parità Predetta
Altre invece richiedono funzioni
appositamente studiate
Parità
Per la SubByte
si crea una nuova unità la Parity_SBox
Calcolo Parità
Comparatore
In uscita dalla MixColumn la parità dipende dai byte della
stessa colonna e dal bit di parità:
-9-
Parità come Usarla
Il metodo è molto efficace ed efficiente


Poco spazio occupato
Copertura totale (100% nel caso di un solo bit errato o un
numero dispari di bit, 99.9% nel caso di errore multiplo
pari)
Uno volta rilevato l’attacco si possono utilizzare
stratagemmi per proseguire in modo corretto la
crittografia

Nel caso di ASIC si possono usare DataCell di Backup
 Costose in termini di spazio

Con le FPGA è possibile sfruttare la riconfigurazione
- 10 -
Riconfigurazione
Riconfigurazione Totale
Equivale a “resettare” il dispositivo e riprogrammarlo
Riconfigurazione Parziale
Riconfiguro il solo componente soggetto all’attacco (la
Dataunit)
- 11 -
Riconfigurazione Parziale
- 12 -
Occupazione su FPGA xc3s200: le
DataUnit a confronto
Architettura Standard
Alte Prestazioni
Architettura
Standard
Total # Slice
Registers(3840)
855(22%)
696(18%)
Total # Slice
Registers(3840)
827(21%)
# of 4 input
LUTs(3,840)
4627(120%)
2953(76%)
# of 4 input
LUTs(3,840)
3254(84%)
# of occupied
Slices(1920)
2319(120%)
1699(88%)
# of occupied
Slices(1920)
1893(98%)
Total # of 4
input
LUTs(3,840)
4627(120%)
2957(77%)
Total # of 4 input
LUTs(3,840)
3254(84%)
# of bonded
IOBs(141)
233(165%)
202(143%)
# of bonded IOBs(141)
106(75%)
- 13 -
Riconfigurazione Parziale Occupazione
sulla xcv1000
Parte fissa
Parte riconfigurabile
Total # Slice Registers(24.576)
447(1%)
564(1%)
# of 4 input LUTs(24.576)
827(3%)
3.944(16%)
# of occupied Slices(12.288)
574(4%)
2.054(16%)
Total # of 4 input LUTs(3,840)
# of bonded IOBs(404)
836(3%)
361(89%)
- 14 -
3.944(16%)
223(55%)
Risultati ottenuti
La riconfigurazione parziale implica un ulteriore
modifica della struttura
attualmente tra parte fissa e parte riconfigurabile sono
necessari ben 227 bit di comunicazione, spezzarli in
blocchi e inviarli uno alla volta porterebbe a diminuire le
prestazioni
E’ necessario quindi utilizzare la riconfigurazione
totale
- 15 -
Futuri sviluppi
L’utilizzo delle FPGA per la realizzazione di
architetture sicure è comunque conveniente perché
farlo su ASIC o circuiti dedicati comporta un notevole
costo in termini di spazio occupato
Implementare una nuova DataUnit da 192 e 256 bit
Studiare una nuova Architettura che permetta di
ridurre il numero di segnali
- 16 -
Scarica

Introduction of Real-Time Embedded System Design