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

Post on 01-May-2015

223 views 4 download

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