Realizzazione di un componente per un sistema dedicato: codifica AES a 512 bit

Click here to load reader

download Realizzazione di un componente per un sistema dedicato: codifica AES a 512 bit

of 27

  • date post

    21-Mar-2016
  • Category

    Documents

  • view

    39
  • download

    1

Embed Size (px)

description

Realizzazione di un componente per un sistema dedicato: codifica AES a 512 bit. Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio. Davide Pavoni mat. 654619 Roberto Palazzomat. 653365. Sommario. Cenni alla crittografia AES e applicazioni - PowerPoint PPT Presentation

Transcript of Realizzazione di un componente per un sistema dedicato: codifica AES a 512 bit

  • SommarioCenni alla crittografiaAES e applicazioniFPGA e sistemi dedicatiImplementazione dellIP CoreRisultati SperimentaliConclusioni e sviluppi futuri

  • CrittografiaAlgoritmi di Crittografia: tecniche di codifica delle informazioni che permettono di renderle comprensibili solamente a chi conosce la chiave.

    Simmetrici: stessa chiave segreta per cifrare e decifrare (K1=K2)Asimmetrici: due chiavi correlate, una pubblica e una privata (K1K2)

    CifraturaDecifraturaMittenteDestinatarioTesto in chiaroTesto cifratoTesto in chiaroChiave [K1]Chiave [K2]

  • Advanced Encryption Standard1997 - National Institute of Standards and Technology (NIST) indice una gara pubblica per sostituire il Data Encryption Standard (DES).Requisiti:Cifrario a blocchi.Lunghezza della chiave tra 128 e 256 bit.Efficienza dellimplementazione hardware e software.Libero da brevetti.2001 NIST pubblica la specifica dellalgoritmo di Advanced Encryption Standard (AES). Diventer probabilmente lo standard de-facto mondiale per proteggere le comunicazioni nei prossimi decenni.

  • Perch usare le FPGALaspetto negativo delle implementazioni hardware tradizionali (ASIC) la mancanza di flessibilitI dispositivi hardware programmabili come le Field Programmable Gate Arrays (FPGA) sono una alternativa interessante per limplementazione di algoritmi crittografici Potenziali vantaggi utilizzo FPGA:Cambiare il tipo di algoritmo durante il funzionamento (es. negoziazione SSL)Upgrade degli algoritmi (es. 802.11i)Compromesso tra velocit delle ASIC e implementazioni softwareEfficienza di costo

  • FPGALe FPGA sono dispositivi hardware le cui funzioni non sono fissate e possono essere programmate dallutenteArchitettura ad array simmetrici - XilinxCLB elementi funzionali per costruire la logicaIOB interfacce tra i pin esterni e logica internaInterconnessioni

    CLBLinee connessione verticaliLinee connessioneLinee connessione orizzontaliMatrice interruttori

  • AESCaratteristicheCifrario a blocchi a chiave simmetricaBlocchi da 128 bit Chiave da 128, 196, 256 bitle operazioni internamente sono eseguite su una matrice di 4x4 byte detta StatoLavora iterando gli stessi passi (round)Ogni round (tranne lultimo) la composizione di passi elementariSubBytes ( sostituzione mediante S-box )ShiftRows ( permutazione )MixColumns ( sostituzione che usa aritmetica su GF(28) )AddRound key ( XOR con chiave espansa )

  • AES: Espansione della chiaveKeyExpansion ( byte key[16], word w[44] )beginword tempi=0while (i
  • AES: Algoritmo

  • AES: SubBytes()

    SubBytes()

  • AES: ShiftRows()

    ShiftRows()

  • AES: MixColumns()

    MixColumns()

  • AES: AddRoundKey()

    AddRoundKey()

  • Macchina a stati AES 512

  • Architettura hardware

    PowerPCAES512Interrupt ControllerBus PLB(Core Connect)

  • Scelte ImplementativeLa FPGA a disposizione non in grado di contenere completamente il componente che effettua la cifratura AES a 128 bit. Soluzione mista hardware / software. Suddivisione dellalgoritmo AES in 2 parti: Espansione della chiave eseguita dal PowerPC. Operazione pi lenta, ma una tantum. Cifratura effettuata in hardware in ingresso di blocchi di 128 bit di dati e chiave espansa.

  • Struttura IP Core

  • Memory Map

    Registri user logic

    Registri IPIF

  • DriverPer utilizzare lIP Core allinterno dellarchitettura hardware necessario scrivere del software che lo gestisce.LIP Core di tipo slave-only quindi il PowerPc che effettua operazioni di I/O puntando agli indirizzi di memoria che corrispondono ai registri dellIP Core secondo la memory map.E stato creato un driver di basso livello in linguaggio C:Scrittura dei dati in ingresso e chiave espansa.Lettura dei dati in uscita. Abilitare / disabilitare sollevazione interrupt.Routine gestione interrupt (con contatore numero chiamate).

  • Risultati SperimentaliVerifica del funzionamento in laboratorio di Micro ArchitettureIl PowerPC esegue un software di test, appositamente scritto per testare lIP Core, articolato in 2 fasi:Interrupt disabilitati per valutare correttezza risultati.Interrupt abilitati per cifrare uno stream di dati e valutazione prestazioni.Risultati sperimentali:Frequenza di clock del sistema = 100 MHzVelocit misurata AES512: 14.6 Megabit/sNOTA: comprende overhead dovuti a lettura / scrittura dei registri. Dalle simulazioni si verificato che lAes Core lavora a 67 Megabit/s

  • Risultati Sperimentali (2)Confronto con un implementazione softwareRealizzato un software in C tale da implementare esattamente lo stesso algoritmo implementato in hardware dallIP Core.

    Piattaforma di Test: Pentium4 - 2.6Ghz - 512 Mb Ram - Win XP

    Velocit Misurata: 878 Kilobit/s

  • Conclusioni e Sviluppi futuriDisponendo di una FPGA pi capiente possibile incrementare le prestazioni inserendo nellAES Core 16 ROM contenenti le S-Box. SubBytes() eseguita in 1 ciclo di clock contro i 16 attuali. La velocit dellAES Core incrementa di circa 5 volte.Prestazione realizzazione Hardware vs. SoftwareUtilizzo dellIP Core come coprocessore crittografico.FPGA rappresentano un buon compromesso in termini di costi/prestazioni. La riconfigurabilit delle FPGA favorisce la transizione verso il nuovo standard AES.

  • FINE PRESENTAZIONE

  • AES: CifraturaCipher ( byte in[16], byte out[16], word w[44] )beginbyte state[4, 4]state=inAddRoundKey ( state, w[0, 3] )for round=1 step 1 to 9SubBytes ( state )ShiftRows ( state )MixColumns ( state )AddRoundKey ( state, w[4*round, 4*(round+1)-1] )end forSubBytes ( state )ShiftRows ( state )AddRoundKey ( state, w[4*round, 4*(round+1)-1] )out=stateend

    Chiave espansaBlocco in uscitaBlocco in ingresso

  • IPIF

    IPIF (IP Interface): interfaccia con il bus PLB che si occupa della gestione di tutti i vari segnali e protocolli necessari per la comunicazione. LIPIF ha uninterfaccia con la AES512_userlogic detta IPIC (IP InterConnect).Registri MIR (Module Identification Register)SW RST (Software Reset Register)GIE (Global Interrupt Enable Register)IER (IP Interrupt Enable Register)ISR (IP Interrupt Status Register)

    Gestione Interrupt

  • AES512_userlogicRealizza le funzioni vere e proprie dellIP Core.Comunicazione con lIPIF attraverso i segnali dellinterfaccia IPIC.Registri16 da 32 bit che contengono i 512 bit in ingresso.16 da 32 bit che contengono i 512 bit in uscita.44 da 32 bit che contengono la chiave espansa.Macchina a stati che comanda lAES Core per cifrare i 512 bit di dati.

  • AES Core

    Unit funzionale di base che effettua la cifratura di blocchi di 128 bit di dati fornendo in ingresso direttamente la chiave espansa.La chiave espansa w_in di 1408 bit (44 x 32 bit)