16
Politecnico di Milano Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 27 Luglio 2006 Milano Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca Breveglieri

Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

Embed Size (px)

Citation preview

Page 1: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

Politecnico di MilanoPolitecnico di Milano

Implementazione di un Architettura Sicura per l’AES

27 Luglio 200627 Luglio 2006MilanoMilano

Motta Francesco 653571Nazzari Davide 652171

Relatore: Luca Breveglieri

Page 2: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 22 - -

SommarioSommario

ObiettiviAESArchitetturaRilevazione D’AttaccoOccupazione FPGARisultatiConclusioni e Sviluppi Futuri

Page 3: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 33 - -

ObiettiviObiettivi

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.

Page 4: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 44 - -

Cos’è l’AESCos’è l’AES

L’AES:Algortimo di crittografia a chiave simmetrica Algoritmo a blocchiChiavi da 128, 192 e 256 bitDal 2001 nuovo standard per la crittografia

Operazioni:SubByteShiftRow MixColumnAddRoundKey

s00 s01 s02 s03

s10 s11 s12 s13

s20 s21 s22 s23

s30 s31 s32 s33

Matrice STATE

Algoritmo di Codifica

Page 5: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 55 - -

AES: Le operazioniAES: Le operazioni

SubByteSubByte MixColumnMixColumn

ShiftRowShiftRow AddRoundKeyAddRoundKey

Matrice Substitution Box

ac(x) = (ac,r) · x3 + (ac,r) · x2 + (ac,r) · x + (ac,r)

c(x) = {03}h · x3 + {01}h · x2 + {01}h · x + {02}h

b(x) = [ac(x) · c(x)] mod (x4-1)

a2,2 = {68}h

b2,2 = {45}h

Page 6: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 66 - -

ControlUnit

DataUnit

KeyUnit

ArchitetturaArchitettura

Page 7: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 77 - -

Architettura DataUnit: due possibili Architettura DataUnit: due possibili implementazioniimplementazioni

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.

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.

DataUnit ad Alte Prestazioni DataUnit Standard

Page 8: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 88 - -

AttacchiAttacchi

Ad oggi non è stato ancora violato Esistono nuovi tipi di attacco potenzialmente pericolosiESISTONO NUOVI TIPI DI ATTACCHI POTENZIALMENTE PERICOLOSI

Optical Attack

Page 9: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 99 - -

Rilevazione d’attacchiRilevazione d’attacchi

Gli attacchi si traducono in errori in (de)codificaCome rilevarli:

Metodi EDC (Error Detecting Code)

p00 p01 p02 p03

p10 p11 p12 p13

p20 p21 p22 p23

p30 p31 p32 p33

s00 s01 s02 s03

s10 s11 s12 s13

s20 s21 s22 s23

s30 s31 s32 s33

Matrice STATE

Per alcune operazioni è molto facileAddRoundKeyShiftRow

Altre invece richiedono funzioni appositamente studiatePer la SubByte si crea una nuova unità la Parity_SBoxIn uscita dalla MixColumn la parità dipende dai byte della stessa colonna e dal bit di parità:

Matrice Delle Parità

Parità Predetta

Operazione AESPredittore

Comparatore

Input

Calcolo Parità

Parità

Page 10: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 1010 - -

Parità come UsarlaParità 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

Page 11: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 1111 - -

RiconfigurazioneRiconfigurazione

Riconfigurazione TotaleEquivale a “resettare” il dispositivo e riprogrammarlo

Riconfigurazione ParzialeRiconfiguro il solo componente soggetto all’attacco (la Dataunit)

Page 12: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 1212 - -

Riconfigurazione ParzialeRiconfigurazione Parziale

Page 13: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 1313 - -

Occupazione su FPGA xc3s200: le Occupazione su FPGA xc3s200: le DataUnit a confrontoDataUnit a confronto

Alte Prestazioni

Architettura Standard

Total # Slice Registers(384

0)855(22%) 696(18%)

# of 4 input LUTs(3,840)

4627(120%) 2953(76%)

# of occupied Slices(1920)

2319(120%) 1699(88%)

Total # of 4 input

LUTs(3,840)4627(120%) 2957(77%)

# of bonded IOBs(141)

233(165%) 202(143%)

Architettura Standard

Total # Slice Registers(3840)

827(21%)

# of 4 input LUTs(3,840)

3254(84%)

# of occupied Slices(1920)

1893(98%)

Total # of 4 input LUTs(3,840)

3254(84%)

# of bonded IOBs(141)

106(75%)

Page 14: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 1414 - -

Riconfigurazione Parziale Riconfigurazione Parziale Occupazione sulla xcv1000Occupazione 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)

836(3%)3.944(16%)

# of bonded IOBs(404) 361(89%) 223(55%)

Page 15: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 1515 - -

Risultati ottenutiRisultati 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

Page 16: Politecnico di Milano Implementazione di un Architettura Sicura per lAES 27 Luglio 2006 Milano Motta Francesco 653571 Nazzari Davide 652171 Relatore: Luca

- - 1616 - -

Futuri sviluppiFuturi 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 bitStudiare una nuova Architettura che permetta di ridurre il numero di segnali