Post on 01-May-2015
Politecnico di MilanoPolitecnico di Milano
Realizzazione di un componente Realizzazione di un componente per un sistema dedicato: per un sistema dedicato: sviluppo dell’algoritmo sviluppo dell’algoritmo
di crittografia RC6 a 128 bitdi crittografia RC6 a 128 bit
Relatore: Prof. Fabrizio Ferrandi
Correlatore: Ing. Marco Domenico Santambrogio
Diego Nichetti Matr. #651159
Stefano Orlandi Matr. #651709
Diego Nichetti – Stefano Orlandi 2
SommarioSommario
• Introduzione• FPGA e componenti delle Architetture
• Metodologia di progetto
• Presentazione dell’algoritmo: RC6
• Implementazione dell’IP Core
• Test Effettuati
• Conclusioni e lavori futuri
Diego Nichetti – Stefano Orlandi 3
Introduzione - FPGAIntroduzione - FPGA
• FPGA (Field Programmable Gate Array)• Miglior compromesso per quanto riguarda flessibilità,
costo ed efficienza.
• Impiegati per la prototipazione (rapida verifica funzionalità dispositivi HW)
• Composti da CLB
Blocchi logiciconfigurabili
Reti configurabili
Diego Nichetti – Stefano Orlandi 4
Introduzione – Componenti Introduzione – Componenti delle Architetturedelle Architetture
• Architetture
• Componenti delle Architetture
• Processori
• Periferiche e IP Core
• Bus
• Core Connect (IBM)
• PLB (Processor Local Bus)
• OPB (On-Chip Peripheral Bus)
• DCR (Device Control Register)
Diego Nichetti – Stefano Orlandi 5
• Passaggio dal Codice C alla descrizione VHDL
• Ottimizzazione dello spazio:
• Componenti per iterazioni: evitare il seguente problema
• Ottimizzazione della frequenza:
• Utilizzo di macchine a stati finiti: diminuzione del percorso critico
Metodologia di progettoMetodologia di progetto
Diego Nichetti – Stefano Orlandi 6
Metodologia di progettoMetodologia di progetto
• Fasi di progettazioneVerifica del design
Sorgenti VHDL
Sintesi
Implementazionedel progetto VHDL
SimulazioneComportamentale
File NGC
File NGD
File NCD
File NCD
Traduzione(NGD build)
PAR
MAP
Verifica del progetto
Simulazione Funzionale
Analisi Statica delle
Temporizzazioni
SimulazioneTiming
Diego Nichetti – Stefano Orlandi 7
Presentazione Presentazione dell’algoritmodell’algoritmo
• Caratteristiche dell’RC6 (Rivest Cipher 6)
• Algoritmo di crittografia simmetrica successore dell’RC5
• Parametrico rispetto a w, r, b
• Introduce:
• Utilizza la rotazione fissa (indipendenza dall’RC5)
• Impiega la moltiplicazione intera come operazione primaria
• Composto da due sottoalgoritmi
• Algoritmo Key Schedule
• Algoritmo Crypt
Diego Nichetti – Stefano Orlandi 8
Presentazione Presentazione dell’algoritmodell’algoritmo
• Algoritmo Key schedule
Rotazione fissa
Diego Nichetti – Stefano Orlandi 9
Presentazione Presentazione dell’algoritmodell’algoritmo
• Algortimo Crypt
Moltiplicazioneintera
Diego Nichetti – Stefano Orlandi 10
Implementazione dell’IP Implementazione dell’IP CoreCore
• Struttura dell’IP Core
interfaccia di collegamento
con il bus
Interconnessioni tra PSelect e
rc6_encoder_core
Operazioni dell’algoritmo
RC6
Diego Nichetti – Stefano Orlandi 11
Implementazione dell’IP Implementazione dell’IP CoreCore
• Memoria dell’IP Core
Chiave Utente
Parola da crittare
Registri-comando
Diego Nichetti – Stefano Orlandi 12
Implementazione dell’IP Implementazione dell’IP CoreCore
• Algoritmo key schedule
Contatore iterazioni
Diego Nichetti – Stefano Orlandi 13
Implementazione dell’IP Implementazione dell’IP CoreCore
• Struttura della descrizione VHDL dell’algoritmo key schedule
Macchina a stati finiti
Inizializzazione
Avvio crypt
Diego Nichetti – Stefano Orlandi 14
Implementazione dell’IP Implementazione dell’IP CoreCore
• Macchina a stati finiti per l’algoritmo Key Schedule Indicatore di stato
Stati
Necessario per case-when
Diego Nichetti – Stefano Orlandi 15
Implementazione dell’IP Implementazione dell’IP CoreCore
• Algoritmo Crypt
Diego Nichetti – Stefano Orlandi 16
Implementazione dell’IP Implementazione dell’IP CoreCore
• Risultati ed analisi della sintesi
• Temporizzazioni
• Occupazione FPGA
Diego Nichetti – Stefano Orlandi 17
Implementazione dell’IP Implementazione dell’IP CoreCore
• Risultati ed analisi della sintesi
• Riconoscimento macchina a stati finiti per crypt
Diego Nichetti – Stefano Orlandi 18
Implementazione dell’IP Implementazione dell’IP CoreCore
• Funzioni del driver
• Scrittura sui registri
• Avvio dell’algoritmo
• Lettura dei risultati
Diego Nichetti – Stefano Orlandi 19
Test effettuatiTest effettuati
• Test della specifica RC6
rA8fc3a536
Diego Nichetti – Stefano Orlandi 20
Conclusioni e lavori futuriConclusioni e lavori futuri
• La moltiplicazione intera costituisce il collo di bottiglia dell’implementazione
• Lavoro futuro: crittazioni di grandi moli di dati in sequenza con l’impiego di DMA (Direct Memory Access).