La Simple Power Analysis (SPA) consiste nel misurare le variazioni del consumo energetico di un dispositivo mentre esegue un'operazione, al fine di scoprire informazioni su materiale o dati chiave segreti. Questo risultato è ottenuto associando determinati tipi di operazione a modelli di consumo. Ad esempio, una serie di operazioni OR esclusive mostra una traccia diversa su un oscilloscopio per una serie di operazioni di moltiplicazione.
Un buon esempio di questo è RSA, che deve eseguire grandi moltiplicazioni e quindi trapelare informazioni sullo stato interno di una grande moltiplicazione di interi attraverso il modello di operazioni che esegue.
Un altro trucco implicato in SPA si basa sul fatto che i segnali digitali sono rappresentati fisicamente da tensioni alte e basse, e quindi un 1 che viene segnalato consuma più energia di uno 0, per il periodo di tempo in cui quel bit viene trasmesso. Se è possibile eseguire un'analisi sufficientemente accurata, possiamo calcolare modelli statistici che prevedono il contenuto di un flusso di bit entro un ragionevole margine di errore.
Mentre i sistemi monouso relativamente semplici (ad esempio le smart card) di solito eseguono solo una singola operazione, i sistemi più complessi solitamente eseguono più operazioni contemporaneamente. Un moderno computer desktop utilizza tecnologie come DMA, che consentono all'hardware di accedere direttamente alla memoria di sistema, senza interrompere il processore. Tutti questi segnali corrono in parallelo, generando un'enorme quantità di rumore. Inoltre, i dischi rigidi meccanici contengono componenti che generano vari picchi di corrente, aggiungendo rumore. Cercare di identificare i modelli statistici di un singolo segnale di dati di 133 MHz + in un sistema di questo tipo è estremamente difficile!
È qui che entra in gioco DAL (Differential Power Analysis). Per migliorare le probabilità di successo, DPA prevede l'analisi del consumo energetico quando vengono eseguite normali operazioni non crittografiche, quindi ulteriori analisi durante le operazioni di crittografia. I due modelli statistici vengono confrontati, al fine di "sottrarre" il rumore dal segnale. Questa tecnica è in realtà comune tra gli ingegneri dell'audio, che campionano il rumore di fondo (ad es. Hiss) da solo, eseguono un'analisi FFT di esso, quindi produce un modello di filtro simile ad un EQ che riduce i livelli per quelle frequenze. È più complesso in DPA (spesso la sola FFT è troppo primitiva), ma il principio rimane vero.
Ovviamente, questo è ancora un modello molto difficile da calcolare, ma anche un tasso di previsione del 51% è utile quando si ha a che fare con chiavi crittografiche; bruteforcing di una chiave a 128 bit è più semplice quando si può dare la priorità ai bit predeterminati con maggiore affidabilità: un tasso di successo del 51% ci dà uno spazio chiave previsto di 125,5 bit anziché di 128 bit.
Gli FPGA non possono essere realmente attaccati con SPA perché sono di natura "parallela". Non funzionano come un normale microprocessore, ma sono una serie di porte logiche parallele che operano tutte all'unisono su un singolo segnale di clock comune. In quanto tale, la SPA non può identificare "segnali" separati perché ogni componente interno fa la stessa cosa su ogni ciclo di clock. I microprocessori, d'altra parte, hanno spesso sezioni di die interne separate che possono essere indipendentemente sincronizzate e quali segnali di multiplex e di rotta in tempo reale. Questo è tutto un po 'di generalizzazione, dal momento che alcuni FPGA complessi più moderni hanno interni simili a microprocessori accanto alla logica statica, che potrebbe essere vulnerabili a SPA.