Analisi di potenza

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Diagramma di un setup per analisi di potenza
Diagramma di un setup per analisi di potenza

L'analisi di potenza è una tipologia di attacco a canale laterale nell'ambito della crittografia applicata nel quale l'attaccante analizza il consumo in potenza di un dispositivo con l'obiettivo di ottenere informazioni criptate. I dati ottenuti attraverso l'utilizzo di specifici strumenti riflettono l'utilizzo del circuito combinatorio del dispositivo in analisi. Questo tipo di attacco può essere categorizzato in diverse tipologie come l'analisi di potenza semplice[1], l'analisi di potenza differenziale[1], l'analisi di potenza correlata[2] o l'analisi di informazione mutua[3].

Contesto[modifica | modifica wikitesto]

Introdotto per la prima volta da Kocher nel 1996, un attacco a canale laterale è una tecnica di attacco che mira a un dispositivo estraendo informazioni segrete attraverso la misurazione di parametri fisici[4]. Un canale laterale è un canale di comunicazione che trasferisce informazioni significative mentre è subordinato al canale principale di trasmissione. Questi canali secondari non nascono per trasportare informazioni, ma sono una conseguenza involontaria del normale funzionamento operativo del sistema, da cui il nome canale laterale[5].

Questo tipo di attacchi viene realizzato mediante l'utilizzo di attrezzature specializzate per raccogliere le informazioni dai canali laterali. Tipicamente è necessaria una prossimità fisica al dispositivo per ottenere le misurazioni richieste[4]. Gli attacchi a canale laterale possono richiedere l'uso di metodi statistici per analizzare i dati recuperati affetti da rumore ed estrarre informazioni segrete.[5]

Consumo di potenza[modifica | modifica wikitesto]

Lo stile logico più comune utilizzato per implementare circuiti di calcolo digitale è attualmente la logica CMOS (Complementary Metal-Oxide Semiconductor), che opera rappresentando le informazioni come livelli di tensione. Questa famiglia logica occupa oggi la parte principale del mercato dei semiconduttori, poiché presenta un notevole vantaggio di un consumo di potenza dinamico molto basso[6]. Questa tecnologia è composta da numerosi transistor MOSFET (Metal-Oxide-Semiconductor Field Effect Transistor) disposti in una struttura di una rete di pull-up composta da transistor PMOS e una parte di pull-down composta da transistor NMOS. L'implementazione di questa struttura è un CMOS, che consente la commutazione a tensioni alte o basse in determinate celle del design implementato.[7]

La potenza consumata da un inverter CMOS, la cella logica più semplice, è divisa in due parti: una è la potenza dissipata quando il componente è acceso e l'altra è quella consumata durante un'attività di commutazione, indicate rispettivamente come e . Solo quando si verifica un'attività di commutazione, la cella assorbirà sia che ; altrimenti, verrà consumata solo . Considerando che le capacità delle celle di un circuito sono uguali, è possibile calcolare la variazione di potenza tra due istanti di tempo come la distanza di Hamming (HD) tra l'uscita al primo istante di tempo e l'uscita al secondo istante . Questo modello cattura le variazioni nel consumo di potenza del dispositivo dovute alle transizioni necessarie per fornire il valore di output corretto.[6]

Nel caso in cui siano disponibili informazioni più precise sul consumo di potenza e sia esplicitamente noto che alcune linee di transmissione richiedono più energia per essere commutate rispetto ad altre, è possibile utilizzare la distanza di Hamming pesata come modello. Il modello della distanza di Hamming pesata consiste nel calcolare la somma dei pesi assegnati ai bit che stanno commutando durante l'operazione. Nel caso in cui vengano utilizzati stili logici pre-caricati o pre-scaricati, può essere utile modellare il consumo di potenza considerando il fatto che le celle stanno commutando da uno stato pre-caricato con tutti zeri o tutti uni. In questo caso, un modello più adatto per il consumo di potenza è il peso di Hamming (HW) del valore in fase di esecuzione[5].

Variazioni di potenza osservate durante il funzionamento di un processore embedded, che calcola firme RSA. Il picco sinistro (breve) rappresenta l'iterazione senza moltiplicazione (il bit della chiave viene azzerato), mentre quello destro rappresenta l'iterazione con moltiplicazione (il bit della chiave viene settato). La pausa a bassa potenza tra le iterazioni è stata implementata artificialmente per rendere la decodifica della chiave banale. Questo risulta più complesso sui dispositivi del mondo reale che invece cercano di oscurarla.
Variazioni di potenza osservate durante il funzionamento di un processore embedded, che calcola firme RSA. Il picco sinistro (breve) rappresenta l'iterazione senza moltiplicazione (il bit della chiave viene azzerato), mentre quello destro rappresenta l'iterazione con moltiplicazione (il bit della chiave viene settato). La pausa a bassa potenza tra le iterazioni è stata implementata artificialmente per rendere la decodifica della chiave banale. Questo risulta più complesso sui dispositivi del mondo reale che invece cercano di oscurarla.

Le informazioni sul consumo di potenza sono misurate tramite un oscilloscopio di campionamento digitale e successivamente discretizzate e quantizzate, ottenendo sequenze finite di campioni chiamate tracce. Ogni traccia è composta da diversi tipi di consumo di potenza: uno dato dalle operazioni in esecuzione, uno dall'elaborazione dei dati, uno dal rumore del sistema e uno dal consumo statico del dispositivo, che può essere ignorato nei calcoli. Le differenze nella quantità di corrente assorbita dal dispositivo che viene misurata sono tipicamente molto piccole, nell'ordine di . Il dispositivo può introdurre un considerevole rumore nelle misurazioni, ma poiché presenta distribuzione normale a media zero o, almeno, invariata nel tempo, è possibile calcolare la media di più tracce e ridurre l'effetto del rumore nei dati.[8]

Analisi di potenza semplice[modifica | modifica wikitesto]

L'analisi di potenza semplice (Simple Power Analysis, SPA) indica il processo di interpretazione diretta del consumo di potenza osservato durante le operazioni crittografiche[1]. Un attacco ad analisi di potenza semplice funziona analizzando i dati e cercando di individuare modelli visivi che riflettano l'esecuzione delle operazioni eseguite. Gli attacchi ad analisi di potenza semplice richiedono una conoscenza dettagliata del dispositivo che viene analizzato e dell'implementazione delle operazioni crittografiche eseguite su di esso. L'obiettivo è quello di estrarre l'informazione criptata utilizzando solo una piccola quantità di tracce o, in alcuni casi, anche solo una. Gli attacchi ad analisi di potenza semplice coinvolgono una significativa analisi diretta e uno sforzo manuale e sono essere relativamente facili da proteggere[1]. Infatti, affinché questo attacco sia realizzabile, la chiave dovrebbe avere, direttamente o indirettamente, un effetto significativo sul consumo di potenza. Un semplice processo di filtraggio o randomizzazione all'interno dell'implementazione di un dispositivo può alterare i dati del consumo di potenza a sufficienza da rendere questi attacchi non fattibili.[9]

Analisi di potenza differenziale[modifica | modifica wikitesto]

L'analisi di potenza differenziale (Differential Power Analysis, DPA) consiste nell'effettuare un'analisi statistica su diverse tracce di consumo di potenza ottenute allo scopo di sfruttare le informazioni provenienti dalle variazioni dei segnali del canale laterale causate dall'elaborazione dei dati. Viene utilizzato un elevato numero di tracce per l'analisi in quanto è necessario far fronte alla presenza di un rumore statistico non trascurabile e osservare le differenze dipendenti dai dati nel comportamento del dispositivo[1].

Un attacco ad analisi di potenza differenziale inizia con l'esecuzione dell'algoritmo sul dispositivo volte per catturare tracce. indica Oltre alla raccolta delle tracce, vengono raccolti anche gli output cifrati dell'algoritmo eseguito e catalogati come per ogni -esima traccia. La funzione di selezione è definita come , dove Kn è l'ipotesi di chiave. Essendo una funzione di selezione binaria, il numero totale di volte in cui la funzione di selezione ritorna è definito secondo la seguente formula:

La traccia media di consumo di potenza osservata per la suddetta funzione di selezione è la seguente:

Rispettivamente il numero di volte in cui la funzione di selezione ritorna 0 è pari a:

e la traccia media di consumo di potenza osserva per questa funzione di selezione è:

Ogni j-esimo punto della traccia differenziale per l'ipotesi di chiave è determinato dalla seguente equazione:

Le ipotesi di chiave per che produce il picco più elevato nella traccia differenziale è da considerare essere la candidata più probabile per la chiave corretta.[5]

Analisi di potenza correlata[modifica | modifica wikitesto]

L'analisi di potenza correlata (Correlation Power Analysis, CPA) utilizza il coefficiente di correlazione di Pearson per identificare l'ipotesi corretta della chiave crittografica, utilizzando un'analisi statistica più efficace rispetto alla differenza delle medie utilizzata nell'analisi di potenza differenziale[2].

Il coefficiente di correlazione di Pearson è una misura della correlazione lineare tra i dati, che varia nell'intervallo , dove implica assenza di correlazione e indica una correlazione perfetta. Per calcolare tra due variabili e , vengono utilizzate le loro varianze , e la loro covarianza , secondo la seguente formula:

dove , sono le rispettive medie e è il valore atteso. Utilizzando questa formula è possibile rilevare se due fenomeni aleatori sono correlati, nonostante la presenza di rumore. Utilizzando la correlazione di Pearson è possibile valutare il grado di associazione lineare tra le variabili, anche in presenza di rumore o interferenze. Le tracce misurate e l'ipotesi di chiave predittiva vengono considerate entrambe in precisi istanti di tempo e . I campioni e vengono analizzati osservando il coefficiente di correlazione di Pearson campionato :

Questo processo viene ripetuto per ogni istante di tempo con ogni ipotesi di chiave, e il valore massimo ottenuto del coefficiente di correlazione indica qual è l'ipotesi di chiave corretta.[2]

Analisi di informazione mutua[modifica | modifica wikitesto]

Sviluppata nel 2008 da Benedikt Gierlichs, Lejla Batina, Pim Tuyls e Bart Preneel[3], l'analisi di informazione mutua (Mutual Information Analysis) ha come idea principale quella di identificare se esiste una dipendenza tra due variabili casuali misurando la loro informazione mutua[10]. La statistica che viene usata per confrontare le misurazioni a canale laterale con le predizioni elaborate nell'analisi dell'informazione mutua è la seguente:

dove è la misura di entropia differenziale, il valore osservato e il modello per ipotesi di chiave .[10]

Attacchi a template[modifica | modifica wikitesto]

Gli attacchi di tipo template, come suggerisce il nome, rappresentano un modo di confrontare campioni raccolti da un dispositivo target con un template di come lo stesso dispositivo elabora i dati per ottenere la chiave segreta. Per effettuare un attacco di tipo template, l'attaccante deve prima avere accesso a una replica completa del dispositivo vittima che può controllare completamente. Prima dell'attacco, viene eseguito una notevole lavoro di pre-elaborazione per creare il template.[11] Nel 2002, Suresh Chari, Josyula R. Rao, and Pankaj Rohatgi[12] hanno affermato che gli attacchi di tipo template sono la forma di attacco a canale laterale più potente possibile dal punto di vista teorico dell'informazione, dal momento che l'attaccante è in grado di estrarre informazioni a partire da un'unica o solamente poche tracce.[12]

Il concetto fondamentale di questo attacco è l'analisi dell'insieme di dati, in cui ogni traccia può essere considerata come un campione da una distribuzione gaussiana multivariata. Questo tipo di distribuzione rappresenta la generalizzazione della distribuzione normale univariata a più dimensioni. Un singolo campione di una traccia seguirà una distribuzione gaussiana con una funzione di densità di probabilità:

con media e deviazione standard . Un gruppo di tracce di misurazioni effettuate con una chiave fissata e ognuna composta da campioni, viene modellato come una distribuzione gaussiana multivariata con un vettore di medie e una matrice di covarianze. La funzione di densità di probabilità di è espressa come

Il processo di misurazione viene ripetuto per tutte le chiavi , con numero di bit, nel sottoinsieme dello spazio delle chiavi che l'attaccante ha considerato. La probabilità di utilizzo di una particolare chiave è sempre la stessa , dove np è il numero di possibili valori della chiave. Viene utilizzata la formula di Bayes per calcolare la probabilità di osservare una determinata traccia durante le misurazioni dato un valore di chiave

Per eseguire l'attacco, viene raccolto un numero inferiore di tracce dal dispositivo target e, per ogni traccia, viene utilizzata la formula di Bayes, risolvendo per la probabilità del valore di chiave , nel seguente modo

per valutare la probabilità che la traccia appartenga a un template con precedentemente costruito.[12]

Note[modifica | modifica wikitesto]

  1. ^ a b c d e (EN) Paul Kocher, Joshua Jaffe e Benjamin Jun, Differential Power Analysis, in Michael Wiener (a cura di), Advances in Cryptology — CRYPTO’ 99, Springer, 1999, pp. 388–397, DOI:10.1007/3-540-48405-1_25. URL consultato il 5 luglio 2023.
  2. ^ a b c (EN) Eric Brier, Christophe Clavier e Francis Olivier, Correlation Power Analysis with a Leakage Model, in Marc Joye, Jean-Jacques Quisquater (a cura di), Cryptographic Hardware and Embedded Systems - CHES 2004, Springer, 2004, pp. 16–29, DOI:10.1007/978-3-540-28632-5_2. URL consultato il 5 luglio 2023.
  3. ^ a b (EN) Benedikt Gierlichs, Lejla Batina e Pim Tuyls, Mutual Information Analysis, in Elisabeth Oswald, Pankaj Rohatgi (a cura di), Cryptographic Hardware and Embedded Systems – CHES 2008, Springer, 2008, pp. 426–442, DOI:10.1007/978-3-540-85053-3_27. URL consultato il 5 luglio 2023.
  4. ^ a b Paul C. Kocher, Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems, vol. 1109, Springer Berlin Heidelberg, 1996, pp. 104–113, DOI:10.1007/3-540-68697-5_9, ISBN 978-3-540-61512-5. URL consultato il 5 luglio 2023.
  5. ^ a b c d (EN) Mark Randolph e William Diehl, Power Side-Channel Attack Analysis: A Review of 20 Years of Study for the Layman, in Cryptography, vol. 4, n. 2, 2020-06, pp. 15, DOI:10.3390/cryptography4020015. URL consultato il 6 luglio 2023.
  6. ^ a b Franco Zappa, Elettronica per la progettazione di circuiti con diodi, transistori MOSFET, amplificatori operazionali, campionatori S&H, convertitori DAC e ADC, integrati digitali CMOS, reti combinatorie e sequenziali., 2016.
  7. ^ Thorben Moos, Amir Moradi e Bastian Richter, Static Power Side-Channel Analysis—An Investigation of Measurement Factors, in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 28, n. 2, 2020-02, pp. 376–389, DOI:10.1109/TVLSI.2019.2948141. URL consultato il 7 luglio 2023.
  8. ^ Stefan Mangard, Elisabeth Oswald e Thomas Popp, Power analysis attacks: revealing the secrets of smart cards, collana Advances in information security, Springer, 2007, ISBN 978-0-387-30857-9.
  9. ^ (EN) Stefan Mangard, A Simple Power-Analysis (SPA) Attack on Implementations of the AES Key Expansion, in Pil Joong Lee, Chae Hoon Lim (a cura di), Information Security and Cryptology — ICISC 2002, Springer, 2003, pp. 343–358, DOI:10.1007/3-540-36552-4_24. URL consultato il 6 luglio 2023.
  10. ^ a b (EN) Lejla Batina, Benedikt Gierlichs e Emmanuel Prouff, Mutual Information Analysis: a Comprehensive Study, in Journal of Cryptology, vol. 24, n. 2, 1º aprile 2011, pp. 269–291, DOI:10.1007/s00145-010-9084-8. URL consultato il 6 luglio 2023.
  11. ^ (EN) Liran Lerman, Gianluca Bontempi e Olivier Markowitch, Power analysis attack: an approach based on machine learning, in International Journal of Applied Cryptography, vol. 3, n. 2, 2014, pp. 97, DOI:10.1504/IJACT.2014.062722. URL consultato il 6 luglio 2023.
  12. ^ a b c (EN) Suresh Chari, Josyula R. Rao e Pankaj Rohatgi, Template Attacks, vol. 2523, Springer Berlin Heidelberg, 2003, pp. 13–28, DOI:10.1007/3-540-36400-5_3, ISBN 978-3-540-00409-7. URL consultato il 6 luglio 2023.

Bibliografia[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  Portale Crittografia: accedi alle voci di Wikipedia che trattano di crittografia