Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell...

20
Politecnico di Milano Politecnico di Milano Realizzazione di un Realizzazione di un componente componente per un sistema dedicato: per un sistema dedicato: sviluppo dell’algoritmo sviluppo dell’algoritmo di crittografia RC6 a 128 di crittografia RC6 a 128 bit bit Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Diego Nichetti Matr. #651159 Stefano Orlandi Matr. #651709

Transcript of Politecnico di Milano Realizzazione di un componente per un sistema dedicato: sviluppo dell...

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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).