politecnico di milano realizzazione di un componente per un sistema dedicato: sviluppo dell...
TRANSCRIPT
![Page 1: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/1.jpg)
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
![Page 2: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/2.jpg)
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
![Page 3: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/3.jpg)
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
![Page 4: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/4.jpg)
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)
![Page 5: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/5.jpg)
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
![Page 6: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/6.jpg)
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
![Page 7: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/7.jpg)
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
![Page 8: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/8.jpg)
Diego Nichetti – Stefano Orlandi 8
Presentazione Presentazione dell’algoritmodell’algoritmo
• Algoritmo Key schedule
Rotazione fissa
![Page 9: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/9.jpg)
Diego Nichetti – Stefano Orlandi 9
Presentazione Presentazione dell’algoritmodell’algoritmo
• Algortimo Crypt
Moltiplicazioneintera
![Page 10: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/10.jpg)
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
![Page 11: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/11.jpg)
Diego Nichetti – Stefano Orlandi 11
Implementazione dell’IP Implementazione dell’IP CoreCore
• Memoria dell’IP Core
Chiave Utente
Parola da crittare
Registri-comando
![Page 12: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/12.jpg)
Diego Nichetti – Stefano Orlandi 12
Implementazione dell’IP Implementazione dell’IP CoreCore
• Algoritmo key schedule
Contatore iterazioni
![Page 13: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/13.jpg)
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
![Page 14: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/14.jpg)
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
![Page 15: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/15.jpg)
Diego Nichetti – Stefano Orlandi 15
Implementazione dell’IP Implementazione dell’IP CoreCore
• Algoritmo Crypt
![Page 16: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/16.jpg)
Diego Nichetti – Stefano Orlandi 16
Implementazione dell’IP Implementazione dell’IP CoreCore
• Risultati ed analisi della sintesi
• Temporizzazioni
• Occupazione FPGA
![Page 17: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/17.jpg)
Diego Nichetti – Stefano Orlandi 17
Implementazione dell’IP Implementazione dell’IP CoreCore
• Risultati ed analisi della sintesi
• Riconoscimento macchina a stati finiti per crypt
![Page 18: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/18.jpg)
Diego Nichetti – Stefano Orlandi 18
Implementazione dell’IP Implementazione dell’IP CoreCore
• Funzioni del driver
• Scrittura sui registri
• Avvio dell’algoritmo
• Lettura dei risultati
![Page 19: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/19.jpg)
Diego Nichetti – Stefano Orlandi 19
Test effettuatiTest effettuati
• Test della specifica RC6
rA8fc3a536
![Page 20: Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio](https://reader035.vdocuments.pub/reader035/viewer/2022070312/5542eb4b497959361e8b891e/html5/thumbnails/20.jpg)
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).