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

Post on 01-May-2015

213 views 1 download

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

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