Realizzazione di un componente per un sistema dedicato: codifica AES a 512 bit - PowerPoint PPT Presentation

About This Presentation
Title:

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

Description:

... Potenziali vantaggi utilizzo FPGA: Cambiare il tipo di algoritmo durante il funzionamento (es. negoziazione SSL) Upgrade degli algoritmi (es. 802.11i) ... – PowerPoint PPT presentation

Number of Views:85
Avg rating:3.0/5.0
Slides: 28
Provided by: Davi1813
Learn more at: http://www.dresd.org
Category:

less

Transcript and Presenter's Notes

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


1
Realizzazione di un componente per un sistema
dedicatocodifica AES a 512 bit
  • Relatore Prof. Fabrizio Ferrandi
  • Correlatore Ing. Marco Domenico Santambrogio

Davide Pavoni mat. 654619 Roberto Palazzo mat.
653365
2
Sommario
  • Cenni alla crittografia
  • AES e applicazioni
  • FPGA e sistemi dedicati
  • Implementazione dellIP Core
  • Risultati Sperimentali
  • Conclusioni e sviluppi futuri

3
Crittografia
  • Algoritmi 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 (K1K2)
  • Asimmetrici due chiavi correlate, una pubblica e
    una privata (K1?K2)

Mittente
Destinatario
Testo in chiaro
Cifratura
Decifratura
Testo in chiaro
Testo cifrato
Chiave K1
Chiave K2
4
Advanced Encryption Standard
  • 1997 - 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.

5
Perché usare le FPGA
  • Laspetto negativo delle implementazioni hardware
    tradizionali (ASIC) è la mancanza di flessibilità
  • I 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 software
  • Efficienza di costo

6
FPGA
Linee connessione orizzontali
CLB
  • Le FPGA sono dispositivi hardware le cui funzioni
    non sono fissate e possono essere programmate
    dallutente
  • Architettura ad array simmetrici - Xilinx
  • CLB elementi funzionali per costruire la logica
  • IOB interfacce tra i pin esterni e logica
    interna
  • Interconnessioni

Matrice interruttori
Linee connessione verticali
Linee connessione
7
AES
  • Caratteristiche
  • Cifrario a blocchi a chiave simmetrica
  • Blocchi da 128 bit
  • Chiave da 128, 196, 256 bit
  • le operazioni internamente sono eseguite su una
    matrice di 4x4 byte detta Stato
  • Lavora iterando gli stessi passi (round)
  • Ogni round (tranne lultimo) è la composizione di
    passi elementari
  • SubBytes ( sostituzione mediante S-box )
  • ShiftRows ( permutazione )
  • MixColumns ( sostituzione che usa aritmetica su
    GF(28) )
  • AddRound key ( XOR con chiave espansa )

8
AES Espansione della chiave
  • KeyExpansion ( byte key16, word w44 )
  • begin
  • word temp
  • i0
  • while (ilt4)
  • wiword ( key4i, key4i1, key4i2,
    key4i3 )
  • ii1
  • end while
  • while (ilt44)
  • tempwi-1
  • if (i mod 40)
  • tempSubWord ( RotWord (temp) ) xor Rcon i/4
  • wiwi-4 xor temp
  • ii1
  • end while
  • end

9
AES Algoritmo
10
AES SubBytes()
  • SubBytes()

11
AES ShiftRows()
  • ShiftRows()

12
AES MixColumns()
  • MixColumns()

13
AES AddRoundKey()
  • AddRoundKey()

14
Macchina a stati AES 512
15
Architettura hardware
Bus PLB (Core Connect)
PowerPC
AES512
Interrupt Controller
16
Scelte Implementative
  • La 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.

17
Struttura IP Core
18
Memory Map
  • Registri
  • user logic
  • Registri IPIF

19
Driver
  • Per 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).

20
Risultati Sperimentali
  • Verifica del funzionamento in laboratorio di
    Micro Architetture
  • Il 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 MHz
  • Velocità misurata AES512 14.6 Megabit/s
  • NOTA comprende overhead dovuti a lettura /
    scrittura dei registri.
  • Dalle simulazioni si è verificato che
    lAes Core lavora a
  • 67 Megabit/s

21
Risultati Sperimentali (2)
  • Confronto con un implementazione software
  • Realizzato 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

22
Conclusioni e Sviluppi futuri
  • Disponendo 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. Software
  • Utilizzo 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.

23
  • FINE PRESENTAZIONE

24
AES Cifratura
Blocco in ingresso
  • Cipher ( byte in16, byte out16, word w44 )
  • begin
  • byte state4, 4
  • statein
  • AddRoundKey ( state, w0, 3 )
  • for round1 step 1 to 9
  • SubBytes ( state )
  • ShiftRows ( state )
  • MixColumns ( state )
  • AddRoundKey ( state, w4round, 4(round1)-1
    )
  • end for
  • SubBytes ( state )
  • ShiftRows ( state )
  • AddRoundKey ( state, w4round, 4(round1)-1 )
  • outstate
  • end

Blocco in uscita
Chiave espansa
25
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
26
AES512_userlogic
  • Realizza le funzioni vere e proprie dellIP Core.
  • Comunicazione con lIPIF attraverso i segnali
    dellinterfaccia IPIC.
  • Registri
  • 16 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.

27
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)
Write a Comment
User Comments (0)
About PowerShow.com