aes su cuda n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
AES SU CUDA PowerPoint Presentation
Download Presentation
AES SU CUDA

Loading in 2 Seconds...

play fullscreen
1 / 34

AES SU CUDA - PowerPoint PPT Presentation


  • 146 Views
  • Uploaded on

AES SU CUDA. Corso di Protocolli e Sistemi di Sicurezza in R ete. Studente Ledda Francesco A18/65. Docente Prof. Rak Massimiliano. Sommario. Introduzione alla crittografia L’algoritmo AES Implementazione su GPU Confronto tra CPU e GPU Conclusioni.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'AES SU CUDA' - gomer


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
aes su cuda

AES SU CUDA

Corsodi Protocollie Sistemidi Sicurezzain Rete

Studente

Ledda Francesco

A18/65

Docente

Prof. RakMassimiliano

sommario
Sommario
  • Introduzione alla crittografia
  • L’algoritmo AES
  • Implementazione su GPU
  • Confronto tra CPU e GPU
  • Conclusioni
introduzione alla crittografia 1 2
Introduzione alla Crittografia (1/2)

La crittografia tratta i metodi che proteggono un messaggio trasformandolo in un formato non leggibile in modo tale da permettere la riconversione soltanto a chi è autorizzato a leggerlo

L’idea è quella di applicare una serie di operazioni sul testo in chiaro sulla base di una chiave

In generale, in una comunicazione crittografata si può garantire:

  • Confidenzialità
  • Integrità
  • Identità
introduzione alla crittografia 2 2
Introduzione alla Crittografia (2/2)

Gli algoritmi di crittografia si classificano in base a:

  • Tipo di operazioni fatte sul plaintext: sostituzioni, trasposizioni, prodotti …
  • Numero di chiavi usate: a chiave privata, c’è una sola chiave segreta conosciuta solo dai comunicanti; a chiave pubblica, ogni comunicante possiede una chiave privata conosciuta solo da lui ed una pubblica nota a tutti
  • Il modo in cui il plaintext è processato: a blocchi di n bit o a flusso di bit
slide5
AES
  • È un algoritmo di crittografia a blocchi a chiaveprivata
  • Si basasulcifrario di Rijndael
  • Adottato come Standard crittografico dal governo USA nel 26 maggio 2002
  • Lavorasublocchi di 128 bit
  • Prevedel’utilizzo di chiavi a 128, 192 e 256 bit
  • Il blocco è visto come 4 colonne di 4 byte (stato)
  • Lo stato passa attraverso 10 iterazioni (128 bit), 12 iterazioni (192 bit) o 14 iterazioni (256 bit)
cifrario aes rijndael
Cifrario AES – Rijndael
  • In generale il cifrario Rijndael
  • Divide il blocco di b bit in ingresso in Nb blocchi da 32 bit (word)
  • Divide la chiave di k bit in Nk blocchi da 32 bit
  • Applica Nr round allo stato a seconda di Nk
  • In AES si ha:
  • Nb = 4
  • Nk = 4, 6 o 8
  • Nr = 10, 12 o 14 rispettivamente
crittazione in aes
Crittazione in AES

Le fasi della crittazione sono:

  • Key Expansion
  • Round preliminare
  • Nr-1 Round
  • 1 Round finale
key expansion
Key Expansion
  • Espande una chiave di Nk word in una da Nb*(Nr+1) word
  • 128 bit  1408 bit
  • 192 bit  1664 bit
  • 256 bit  1920 bit
  • 1 primi Nk*32 bit sono identici alla chiave, i restanti bit sono ottenuti applicando combinazioni di operazioni di Shift, XOR ed S-box sulla chiave a seconda della sua dimensione
round preliminare
Round preliminare

Consiste semplicemente nella XOR logica tra i 128 bit del blocco in ingresso e i primi 128 bit della chiave estesa (Operazione AddRoundKey)

Blocco da crittare[0:127]

Stato [0:127]

Chiave Estesa[0:127]

round
Round

Ogni round applica allo stato 4 operazioni

  • SubBytes
  • ShiftRows
  • MixColumns
  • AddRoundKey
subbytes
SubBytes

- Sostituisce ogni byte a seconda del suo valore tramite una S-box.

shiftrows
ShiftRows

- Shifta ciclicamente la i-esima riga dello stato di i-1 posti verso sinistra

mixcolumns
MixColumns

- Applica una trasformazione lineare invertibile a ciascuna colonna dello stato

addroundkey
AddRoundKey

- Al round i applica la XOR logica tra i 128 bit dello stato e gli i-esimi 128 bit della chiave estesa

round finale
Round finale

Non applica l’operazione MixColumns:

  • SubBytes
  • ShiftRows
  • AddRoundKey
decrittazione aes 1 2
Decrittazione AES (1/2)

La decrittazione applica le operazioni inverse a quelle viste finora, partendo però dagli ultimi 128 bit della chiave estesa fino ad arrivare ai primi

Le fasi della decrittazione sono:

  • Key Expansion
  • Round preliminare
  • Nr-1 Round inversi
  • 1 Round inverso finale
decrittazione aes 2 2
Decrittazione AES (2/2)

La sequenza di operazioni dei round inversi è:

  • InvShiftRows
  • InvSubBytes
  • AddRoundKey
  • InvMixColums

Per il round finale si elimina InvMixColums

  • InvShiftRows
  • InvSubBytes
  • AddRoundKey
modalit di cifratura 1 2
Modalità di cifratura (1/2)

Per i cifrari a blocchi esistono varie modalità di cifratura:

  • EBC: codifica ogni blocco in ingresso in maniera indipendente dagli altri
  • CBC: L’ingresso del blocco i è messo in XOR con l’uscita del blocco i-1
  • CFB: il byte da inviare è messo in XOR con il byte più significativo di un blocco ottenuto applicando l’AES sugli ultimi 128 bit inviati
  • CTR: il blocco i è messo in XOR con un blocco ottenuto applicando l’AES su un vettore nonce di 128 bit a cui è stato aggiunto i
modalit di cifratura 2 2
Modalità di cifratura (2/2)

Ogni modalità garantisce requisiti differenti

  • L’EBC è il più semplice, data una chiave equivale ad un cifrario a sostituzione a 128 bit
  • CBC e CFB tengono conto della storia passata per cifrare ciascun blocco. Questo però impedisce la lettura random
  • CTR migliora l’EBC ma hanno il problema dei nonce da generare in maniera casuale
  • EBC e CTR permettono una implementazione parallela spinta
implementazione su gpu
Implementazione su GPU
  • Bisogna considerare una modalità di cifratura che permetta di cifrare i blocchi in maniera indipendente, ad esempio EBC
  • Per ogni blocco di 128 bit da crittare si può lanciare un thread su GPU.
  • L’espansione della chiave non presenta codice parallelizzabile, ed il tempo di esecuzione di questa fase è trascurabile rispetto alle altre
implementazione su gpu crittazione
Implementazione su GPU - Crittazione
  • Creazione casuale di plaintext e chiave
  • Avvia timer crittazione
  • Calcolo chiave estesa
  • Copia di plaintext e chiave estesa su GPU
  • Ogni thread su GPU cripta un blocco di 128 bit
  • Copia di ciphertext su CPU
  • Ferma timer crittazione
implementazione su gpu decrittazione
Implementazione su GPU- Decrittazione
  • Avvio timer Decrittazione
  • Calcolo chiave estesa
  • Copia di ciphertext e chiave estesa su GPU
  • Ogni thread decritta un blocco di 128 bit
  • Copia del testo decrittato su CPU
  • Ferma timer decrittazione
  • Controllo di coerenza tra testo decrittato e plaintext
implementazione su gpu memorie
Implementazione su GPU - Memorie

Host

S-Boxes

Constant Memory

Plaintext & Key

Global Memory

Ciphertext

128bits

128bits

128bits

128bits

128bits

128bits

Local

Local

Local

Thread 1

Thread 2

Thread N

Access to the S-Boxes

metodologia di benchmark
Metodologia di Benchmark
  • Si parte con un plaintext di 16 byte e si raddoppia di volta in volta la dimensione fino ad arrivare a 32 MB
  • Per ciascuna dimensione del plaintext i tempi sono valutati come media su 100 esecuzioni con plaintext e chiavi casuali
  • I tempi misurati comprendono anche i tempi di trasferimento dei dati GPU ad host
  • I tempi di creazione di plaintext e chiave ed i tempi di controllo di coerenza tra plaintext e testo decrittati sono esclusi dal conteggio
macchine del benchmark
Macchine del Benchmark
  • Intel Q8200, @2.4 GHz
  • Intel i5-2410M, @2.3 GHz
  • Nvidia GeForce GTX 460, 336 Cuda Core, CC 2.1
  • Nvidia GeForce GT 520 MX, 48 Cuda Core, CC 2.1
tempi di esecuzione gtx460 vs i51
Tempi di Esecuzione GTX460 vs i5

Inizialmente l’overhead dovuto al trasferimento dei dati non rende vantaggioso l’utilizzo della GPU

speed up gtx460 vs i5
Speed-UP GTX460 vs i5

Lo speed-UP aumenta esponenzialmente fino ad una certa dimensione del plaintext, dopo aumenta lentamente

gtx460 vs gt520mx
GTX460 vs GT520MX

Le 2 GPU viaggiano sugli stessi tempi fin quando quella con meno core non satura

speed up crittazione
Speed-UP Crittazione

Le crittazioni a 128 e 192 bit fanno dei round in meno per cui c’è uno speed-Up minore

speed up decrittazione
Speed-UP decrittazione

In generale la decrittazione è più lenta il che porta ad uno speed-up maggiore

conclusioni
Conclusioni
  • La GPU si mostra un’ottima alternativa alla CPU per l’algoritmo AES
  • Il tempo di esecuzione su CPU aumenta linearmente con la dimensione del plaintext, per la GPU aumenta lentamente all’inizio e linearmente una volta saturato l’hardware
  • Aumentare il numero di core della GPU, permette un aumento significativo dello speed-up per plaintext di grandi dimensioni