Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

17
Politecnico di Milano Politecnico di Milano Realizzazione di un Realizzazione di un componente componente per un sistema dedicato: per un sistema dedicato: integrazione del componente integrazione del componente RC6 a 128 bit in EDK RC6 a 128 bit in EDK Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai Matricola n. 654356 A.A. 2003/2004

description

Realizzazione di un componente per un sistema dedicato: integrazione del componente RC6 a 128 bit in EDK. Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai Matricola n. 654356. A.A. 2003/2004. Sommario. Obiettivi; - PowerPoint PPT Presentation

Transcript of Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Page 1: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Politecnico di MilanoPolitecnico di Milano

Realizzazione di un componente Realizzazione di un componente per un sistema dedicato: per un sistema dedicato:

integrazione del componente integrazione del componente RC6 a 128 bit in EDKRC6 a 128 bit in EDK

Relatore: Prof. Fabrizio FerrandiCorrelatore: Ing. Marco Domenico Santambrogio

Davide Murrai Matricola n. 654356

A.A. 2003/2004

Page 2: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 2

SommarioSommario• Obiettivi;• Introduzione: strumenti, dispositivi, algoritmo;• Architettura:

• Struttura del sistema;• Estensione al DMA.

• Integrazione del componente rc6_encoder:• Piattaforma hardware: implementazione del

componente;• Piattaforma software: l’uso del driver.

• Test Effettuati;• Conclusioni.

Page 3: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 3

ObiettiviObiettivi

• Creazione di un IP Core che implementi l’algoritmo di crittazione RC6;• Partizionamento della specifica iniziale in HW e SW;• Interfacciamento tra HW e SW all’interno dell’IP Core;• Integrazione del componente in un sistema dedicato;• Test HW e SW.

Page 4: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 4

Introduzione – Introduzione – strumenti e dispositivistrumenti e dispositivi

• EDK (Embedded Development Kit) permette la realizzazione di architetture per sistemi dedicati a partire da una descrizione HW dei vari componenti.

• Utilizza XPS (Xilinx Platform Studio).

• Dispositivo riprogrammabile FPGA (Field Programmable Gate Array).

Architettura

Componenti Xilinx Componenti creati dall’utente

Page 5: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 5

Introduzione – algoritmo RC6Introduzione – algoritmo RC6

• Blocchi da 128 bit, suddivisi in 4 registri da 32 bit;• Chiave di crittazione variabile (in genere 128 bit);• Composto da due sottoalgoritmi: • Key Schedule;• Crypt.

• Parametrico rispetto a:• w • r• b Dimensione chiave di crittazione.

Numero cicli di crittazione da eseguire;

Dimensione registri della parola da crittare (fissata a 32 bit);

Page 6: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 6

ArchitetturaArchitettura

MB

OP

B

DLM

BIL

MB

BRAM Controller

BRAM Controller

uartlite

rc6_encoder

mdm

gpioBRAM

Page 7: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 7

Estensione al DMA Estensione al DMA (Direct Memory Access)(Direct Memory Access)

• Scopo: crittazione di grandi moli di dati in sequenza senza coinvolgere il processore.• Attuazione: utilizzo del componente opb_central_dma.

• Problemi riscontrati:• mancato trasferimento dei dati tra la memoria e

l’rc6_encoder;• anche in caso di corretto funzionamento

dell’opb_centarl_dma non si otterrebbe comunque un incremento delle prestazioni;

• possibile miglioramento delle prestazioni tramite l’uso delle net di interrupt dell’opb_central_dma, che però sono ancora completamente in fase di sviluppo.

Page 8: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 8

rc6_encoder_core

PSelect

rc6_encoder

BUS OPB

Operazioni algoritmo RC6

Interfaccia con il BUS

Piattaforma HW: Piattaforma HW: struttura del componentestruttura del componente

Page 9: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 9

Piattaforma HW: Piattaforma HW: utilizzo dei registriutilizzo dei registri

Key Schedule

Crypt

Chiave di crittazione (dimensione variabile)

Parola da crittare (in 4 registri da 32 bit)

Registri di comando del componente

Page 10: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 10

Piattaforma SW: Piattaforma SW: definizione del driverdefinizione del driver

DRIVER

Hardware

SoftwareApplicazione utente: system.c

Componente: rc6_encoder

Makefile

rc6_encoder.h

rc6_encoder.c

Page 11: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 11

Piattaforma SW: Piattaforma SW: funzioni del driverfunzioni del driver

• write_regs

• userkey

• risultati

• start

• fine Riporta basso il segnale di interrupt per una nuova crittazione

Ottiene i valori finali della crittazione dal componente

Scrive la parola da crittare all’interno del componente

Scrive la chiave di crittazione all’interno del componente

Invia il comando di avvio crittazione al componente

(al termine della quale è sollevato un interrupt)

Invio valori al componente

Prelievo valori dal componente

Controllo

Page 12: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 12

Implementazione IP CoreImplementazione IP Core

Key Schedule

CryptRisultati

Avvio algoritmo

Interrupt

Invio parola e chiave

Avvio crittazione

Piattaforma SW

1

2

3

4

Piattaforma HW

Page 13: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 13

Test effettuatiTest effettuati

•Test sul componente: • controllo funzionamento dell’rc6_encoder;• controllo funzioni del driver.

• Impiego della console di debug:• particolare caso di test;• visualizzazione degli effetti dopo l’esecuzione di

ogni singola istruzione.

Page 14: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 14

Test sul componenteTest sul componente

Test all’interno del codice C

Utilizzo funzioni del driver

uartlite

2F 19 4E 52

52 4E 19 2F

Page 15: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 15

Impiego della Impiego della console di console di debugdebug

Run XMD Run Debugger

Comando: mbconnect mdm

1

Modulo di debug HW

2

GDB

3

Target Selection

45

6

7. Avvio software

Strumenti di XPS

Page 16: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 16

Conclusioni e sviluppi futuriConclusioni e sviluppi futuri

•Conclusioni:• corretto funzionamento del componente;• corretta integrazione all’interno dell’architettura;• temporizzazioni:

• minimo periodo: 20.7 ns (massima frequenza: 48 MHz);• tempo impiegato per una crittazione con chiave da 128 bit

circa 23 microsecondi.• Occupazione del componente: 58% della FPGA.

• Sviluppo futuro:• miglioramento delle prestazioni tramite l’uso del

DMA.

Page 17: Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

Davide Murrai 17

Fine presentazioneFine presentazione