The target of this thesis is to design and implement an automated and optimized protection of block cipher implementations against side-channel attacks led on embedded devices. Side channel attacks try to obtain information about the encryption key through collecting power consumption (or EM emissions) data of the computing device. This target is reached through detecting when the executed instructions employ secret key material. In particular, the proposed methodology analyzes the Data Flow Graph (DFG) of the target algorithm with the aim to identify the dependencies of every instruction from the secret key material. The implemented toolchain added into the LLVM compiler a specialized pass that works at the intermediate representation level, enabling the analysis to be architecture agnostic. The experimental validation shows how to successfully apply a fine-grained protection to common block-cipher suites and validated an effective advancement of the state-of-the-art with respect to current solutions adopted to secure the software implementations of cryptographic primitives on embedded systems.

L’obiettivo di questa tesi è di progettare e implementare una protezione automatizzata e ottimizzata dei cifrari a blocchi contro gli attacchi side- channel, eseguiti su sistemi embedded. Gli attacchi side-channel mirano a ottenere informazioni sul valore della chiave segreta raccogliendo dati sul consumo di potenza dei dispositivi di elaborazione, riconsocendo gli istanti in cui le istruzioni eseguite utilizzano valori della chiave crittografica. In particolare, la metodologia proposta analizza il Data Flow Graph (DFG) dell’algoritmo in esame con lo scopo di identificare come i valori intermedi calcolati dalle istruzioni dipendono da quelli della chiave segreta. L’implementazione ha aggiunto nel compilatore LLVM un passo specializzato che lavora a livello di rappresentazione intermedia, permettendo l’analisi a prescindere dall’architettura su cui dovrà essere eseguito il codice. La validazione sperimentale ha consentito di applicare con successo una protezione selettiva ai cifrari a blocchi più comuni, e ha dimostrato un effettivo avanzamento dello stato dell’arte rispetto alle soluzioni correntemente adottate per rendere sicure le implementazioni software delle primitive crittografiche sui sistemi embedded.

Automated side channel vulnerability detection and countermeasure application via compiler based techniques

MAGGI, MASSIMO
2012/2013

Abstract

The target of this thesis is to design and implement an automated and optimized protection of block cipher implementations against side-channel attacks led on embedded devices. Side channel attacks try to obtain information about the encryption key through collecting power consumption (or EM emissions) data of the computing device. This target is reached through detecting when the executed instructions employ secret key material. In particular, the proposed methodology analyzes the Data Flow Graph (DFG) of the target algorithm with the aim to identify the dependencies of every instruction from the secret key material. The implemented toolchain added into the LLVM compiler a specialized pass that works at the intermediate representation level, enabling the analysis to be architecture agnostic. The experimental validation shows how to successfully apply a fine-grained protection to common block-cipher suites and validated an effective advancement of the state-of-the-art with respect to current solutions adopted to secure the software implementations of cryptographic primitives on embedded systems.
BARENGHI, ALESSANDRO
ING - Scuola di Ingegneria Industriale e dell'Informazione
3-ott-2013
2012/2013
L’obiettivo di questa tesi è di progettare e implementare una protezione automatizzata e ottimizzata dei cifrari a blocchi contro gli attacchi side- channel, eseguiti su sistemi embedded. Gli attacchi side-channel mirano a ottenere informazioni sul valore della chiave segreta raccogliendo dati sul consumo di potenza dei dispositivi di elaborazione, riconsocendo gli istanti in cui le istruzioni eseguite utilizzano valori della chiave crittografica. In particolare, la metodologia proposta analizza il Data Flow Graph (DFG) dell’algoritmo in esame con lo scopo di identificare come i valori intermedi calcolati dalle istruzioni dipendono da quelli della chiave segreta. L’implementazione ha aggiunto nel compilatore LLVM un passo specializzato che lavora a livello di rappresentazione intermedia, permettendo l’analisi a prescindere dall’architettura su cui dovrà essere eseguito il codice. La validazione sperimentale ha consentito di applicare con successo una protezione selettiva ai cifrari a blocchi più comuni, e ha dimostrato un effettivo avanzamento dello stato dell’arte rispetto alle soluzioni correntemente adottate per rendere sicure le implementazioni software delle primitive crittografiche sui sistemi embedded.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2013_10_Maggi.PDF

accessibile in internet per tutti

Descrizione: Thesis PDF
Dimensione 2.35 MB
Formato Adobe PDF
2.35 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/85045