Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi...

16
Politecnico di Milano Politecnico di Milano Implementazione hardware Implementazione hardware dell’algoritmo MD5, tramite dell’algoritmo MD5, tramite EDK, per sistemi EDK, per sistemi riconfigurabili riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Antonio Canclini Matr. #657338 Maurizio Sala Matr. #659392

Transcript of Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi...

Page 1: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 2: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 3: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 4: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 5: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 6: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 7: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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;

Page 8: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 9: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 10: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

Antonio Canclini – Maurizio Sala 10

Importazione in una Importazione in una architettura EDKarchitettura EDK

PROCESSORE POWER-PC

BUS OPB

COMPONENTE REALIZZATO

Page 11: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 12: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 13: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

Antonio Canclini – Maurizio Sala 13

Device driverDevice driver

• Funzioni del driver:

• Accesso alla memoria (lettura/scrittura registri)

• Gestione interrupt

Page 14: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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:

Page 15: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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

Page 16: Politecnico di Milano Implementazione hardware dell algoritmo MD5, tramite EDK, per sistemi riconfigurabili Relatore: Prof. Fabrizio Ferrandi Correlatore:

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