Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi...
-
Upload
pietrina-pucci -
Category
Documents
-
view
223 -
download
4
Transcript of Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi...
Politecnico di MilanoPolitecnico di Milano
Implementazione hardware dell’algoritmo Implementazione hardware dell’algoritmo MD5, tramite EDK, per sistemi MD5, tramite EDK, per sistemi
riconfigurabiliriconfigurabili
Relatore: Prof. Fabrizio Ferrandi
Correlatore: Ing. Marco Domenico Santambrogio
Antonio Canclini Matr. #657338
Maurizio Sala Matr. #659392
Antonio Canclini – Maurizio Sala 2
SommarioSommario
• Introduzione:
• FPGA e introduzione all’hashing
• Descrizione algoritmo MD5
• Realizzazione VHDL
• Importazione in una architettura in EDK – Device driver
• Prestazioni, test e simulazioni
• Conclusioni e lavori futuri
Antonio Canclini – Maurizio Sala 3
FPGAFPGA
• FPGA Field Programmable Gate Array
• Utilizzo per test e prototipi
• Miglior compromesso tra costi e prestazioni, garantendo buona flessibilità
Blocco logico configurabile
Blocco di input/output
Interconnessione
Antonio Canclini – Maurizio Sala 4
Crittografia e HashingCrittografia e Hashing
• L’Hashing è una particolare tecnica di crittografia:
• Permette di garantire l’integrità dei dati
• Utilizzata nella firma digitale
• L’algoritmo MD5 è un esempio di funzione di hashingMessaggio
di lunghezza arbitraria
Message digest di n bit
ALGORITMO
Antonio Canclini – Maurizio Sala 5
Descrizione algoritmo MD5Descrizione algoritmo MD5
• Riceve in ingresso una stringa di lunghezza arbitraria e calcola un digest di 128 bit
• Strutturato in 5 passi, descritti nella specifica RFC 1321
Antonio Canclini – Maurizio Sala 6
Realizzazione in VHDLRealizzazione in VHDL
• Ottimizzazione della frequenza di lavoro di un’implementazione esistente dell’algoritmo MD5
Ricerca del percorso critico
OPERAZIONE CRITICA IN TERMINI
DI FREQUENZA
Antonio Canclini – Maurizio Sala 7
Realizzazione in VHDLRealizzazione in VHDL
• La somma può essere eseguita in modo parallelo:
• Mediante l’utilizzo di più processi VHDL,
• e sincronizzando in modo opportuno le operazioni svolte dai processi
add1 <= a + temp;
add2 <= k + t(i);
add3 <= add1 + add2;
Antonio Canclini – Maurizio Sala 8
Realizzazione in VHDLRealizzazione in VHDL
• Implementazione dei 4 round dell’algoritmo MD5:
• I processi per il calcolo delle somme vengono replicati 4 volte
SEGNALE nsw : CONTATORE CHE
REGOLA L’ESECUZIONE DI UN
ROUND
SEGNALE round : MANTIENE
L’INFORMAZIONE SUL ROUND IN ESECUZIONE
Antonio Canclini – Maurizio Sala 9
Realizzazione in VHDLRealizzazione in VHDLAGGIORNAMENTO
DEI SEGNALI PER IL CONTROLLO DEL
FLUSSO DI ESECUZIONE
PASSAGGIO DEI VALORI DEI REGISTRI
DAL ROUND 3 AL ROUND 4
Antonio Canclini – Maurizio Sala 10
Importazione in una Importazione in una architettura EDKarchitettura EDK
PROCESSORE POWER-PC
BUS OPB
COMPONENTE REALIZZATO
Antonio Canclini – Maurizio Sala 11
Importazione in una Importazione in una architettura EDKarchitettura EDK
• Interfacciamento del componente sul bus OPB:
• In modalità slave
• Mediante il modulo PSelect COMPONENTE REALIZZATO
PERIPHERAL SELECT: SI OCCUPA DELLA DECODIFICA DEGLI INDIRIZZI PRESENTI
SUL BUS OPB
Antonio Canclini – Maurizio Sala 12
Importazione in una Importazione in una architettura EDKarchitettura EDK
• Gestione della memoria mediante il meccanismo di memory mapping
64 BYTE DI MEMORIA DEDICATI ALLA PARTE DI MESSAGGIO DA
ELABORARE
INDIRIZZO DI START, INDICA IL COMPLETAMENTO DELLA FASE DI
INIZIALIZZAZIONE E L’INIZIO DELL’ALGORITMO
INDIRIZZI DEDICATI AGLI MD BUFFER
Antonio Canclini – Maurizio Sala 13
Device driverDevice driver
• Funzioni del driver:
• Accesso alla memoria (lettura/scrittura registri)
• Gestione interrupt
Antonio Canclini – Maurizio Sala 14
PrestazioniPrestazioni
• Confronto di prestazioni tra il componente esistente e la nuova implementazione (rispetto al round 1)
• Prestazioni del componente realizzato:
Antonio Canclini – Maurizio Sala 15
Test e simulazioniTest e simulazioni
• Simulazione con Modelsim
• Utilizzo di un testbench
• Casi di test ufficiali forniti nella specifica RFC 1321
FINE ELABORAZIONE COMUNICATA DAL
SEGNALE DI INTERRUPTMESSAGEDIGEST
Antonio Canclini – Maurizio Sala 16
Conclusioni e lavori futuriConclusioni e lavori futuri
• L’implementazione preesistente è stata migliorata sia in termini di frequenza che dal punto di vista dell’occupazione su scheda
• Lavori futuri: impiego del DMA (Direct Memory Access) per aumentare la velocità di esecuzione delle operazioni di accesso alla memoria