polito.it
Politecnico di Torino (logo)

Implementazione hardware di NTRU su FPGA = Hardware implementation of NTRU on FPGA

Danilo Pesaresi

Implementazione hardware di NTRU su FPGA = Hardware implementation of NTRU on FPGA.

Rel. Guido Masera, Andrea Molino, Gabriele Coppolino. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Elettronica (Electronic Engineering), 2021

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (2MB) | Preview
Abstract:

Negli ultimi anni, la necessità di avere delle comunicazioni sicure fra dispositivi è aumentata enormemente. Questi ultimi infatti inviano informazioni che devono essere crittografate in modo che solo le persone autorizzate possano leggerle. Attualmente, per garantire la sicurezza delle telecomunicazioni, vengono usati per lo più i classici algoritmi di crittografia asimmetrica, in quanto essi non richiedono complicati schemi di distribuzione chiavi come nella crittografia simmetrica; tuttavia con l'avvenire dei computer quantistici il suo impiego potrebbe diventare ben presto un punto debole. L’algoritmo NTRU nasce quindi dall’esigenza di sviluppare algoritmi post quantum. Questi algoritmi devono essere in grado di resistere ad attacchi da parte di computer quantistici ed essere implementabili su computer tradizionali. L’obiettivo di questa tesi è quindi quello di realizzare un’implementazione su FPGA dell’algoritmo NTRU, analizzare le sue criticità e andare a migliorare le sue prestazioni con un opportuno codesign HW/SW. L’algoritmo in questione può essere distinto in 3 fasi principali ben distinte: la generazione delle chiavi, la codifica e la decodifica dei dati. Questo algoritmo, dopo un’attenta analisi e relativo studio, è implementato su scheda grazie all’utilizzo del soft processor dell'FPGA. Sintetizzando l’algoritmo si possono analizzare le sue criticità in termini di tempi di esecuzione. Si nota infatti come le funzioni critiche da questo punto di vista siano principalmente due: la funzione di moltiplicazione fra due polinomi (per tutte e tre le fasi) e l’inversione di polinomi (per la fase di generazione delle chiavi). Per rendere l’algoritmo più veloce si progettano dei blocchi hardware in modo da poter sostituire le funzioni predette con blocchi hardware dedicati. Queste implementazioni sono indirizzate verso un’esplorazione delle soluzioni possibili focalizzando le attenzioni sulle prestazioni. Infatti, fra le varie soluzioni proposte, si decide di prediligere il tempo di esecuzione rispetto all’area occupata. Questa soluzione permette un aumento significativo delle prestazioni dell’algoritmo permettendo quindi il suo utilizzo in applicazioni in cui il tempo di esecuzione è una criticità. Infine, all'interno dell'elaborato, è presente un’attenta analisi delle implementazioni utilizzate.

Relatori: Guido Masera, Andrea Molino, Gabriele Coppolino
Anno accademico: 2020/21
Tipo di pubblicazione: Elettronica
Numero di pagine: 65
Soggetti:
Corso di laurea: Corso di laurea magistrale in Ingegneria Elettronica (Electronic Engineering)
Classe di laurea: Nuovo ordinamento > Laurea magistrale > LM-29 - INGEGNERIA ELETTRONICA
Aziende collaboratrici: Telsy SPA
URI: http://webthesis.biblio.polito.it/id/eprint/17818
Modifica (riservato agli operatori) Modifica (riservato agli operatori)