Date post: | 01-May-2015 |
Category: |
Documents |
Upload: | pietrina-pucci |
View: | 223 times |
Download: | 4 times |
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