Anàlisi de potència

en criptografia, un atac de canal lateral

L'anàlisi de potència és una forma d'atac de canal lateral en què l'atacant estudia el consum d'energia d'un dispositiu de maquinari criptogràfic. Aquests atacs es basen en propietats físiques bàsiques del dispositiu: els dispositius semiconductors es regeixen per les lleis de la física, que dicten que els canvis de voltatge dins del dispositiu requereixen moviments molt petits de càrregues elèctriques (corrents). Mitjançant la mesura d'aquests corrents, és possible aprendre una petita quantitat d'informació sobre les dades que s'estan manipulant.[1]

Un diagrama d'anàlisi de potència diferencial.
Observació de bits clau RSA mitjançant l'anàlisi de potència: el pic esquerre mostra el consum d'energia durant el pas de només quadrat, el pic dret (més ampli) mostra el pas de multiplicació, permetent distingir els bits exponents 0 i 1.

L'anàlisi simple de potència ( SPA ) consisteix a interpretar visualment traces de potència, o gràfics de l'activitat elèctrica al llarg del temps. L'anàlisi de potència diferencial ( DPA ) és una forma més avançada d'anàlisi de potència, que pot permetre a un atacant calcular els valors intermedis dins dels càlculs criptogràfics mitjançant l'anàlisi estadística de les dades recollides a partir de múltiples operacions criptogràfiques. SPA i DPA van ser introduïts a la comunitat de criptografia oberta l'any 1998 per Paul Kocher, Joshua Jaffe i Benjamin Jun.[2]

Rerefons

modifica

En criptografia, s'utilitza un atac de canal lateral per extreure dades secretes d'algun dispositiu segur (com una targeta intel·ligent, una "caixa negra" resistent a la manipulació o un circuit integrat). L'anàlisi de canals laterals sol intentar extreure de manera no invasiva claus criptogràfiques i altra informació secreta del dispositiu. Un exemple senzill d'això és el problema dels tancs alemanys: els números de sèrie dels tancs proporcionen detalls de les dades de producció dels tancs. En seguretat física, un atac no invasiu seria semblant a un lock-picking, on un atac reeixit no deixa rastre de la presència de l'atacant.[3]

Anàlisi de potència senzilla

modifica

L'anàlisi de potència simple ( SPA ) és un atac de canal lateral que implica l'examen visual de gràfics del corrent utilitzat per un dispositiu al llarg del temps. Les variacions en el consum d'energia es produeixen a mesura que el dispositiu realitza diferents operacions. Per exemple, diferents instruccions realitzades per un microprocessador tindran diferents perfils de consum d'energia.

Per tant, el flux de codi que depèn d'un valor secret filtrarà el flux de codi a través del control del consum d'energia (i, per tant, també filtrarà el valor secret). Com a exemple senzill, considereu una comprovació de contrasenya de la següent manera:

bool check_password(const char input[]){
 const char correct_password[] = "hunter2";

  if (strlen(input) != strlen(correct_password)) return false;

  for (int i = 0; i < strlen(correct_password); i++){
    if (input[i] != correct_password[i]) {
      return false;
    }
  }

  return true;
}

Aquesta comprovació de contrasenya conté potencialment un atac de temps, ja que el temps d'execució no és constant. Tanmateix, és possible que la funció no mostri a l'usuari un resultat explotable, ja que, per exemple, podria haver-hi un retard compensatori abans de retornar la resposta. L'observació del consum d'energia deixarà clar el nombre de bucles executats.

De la mateixa manera, sovint es poden distingir les operacions de quadrat i multiplicació a les implementacions RSA, cosa que permet a un adversari calcular la clau secreta. Fins i tot si la magnitud de les variacions en el consum d'energia és petita, els oscil·loscopis digitals estàndard poden mostrar fàcilment les variacions induïdes per les dades. Els filtres de freqüència i les funcions de mitjana (com les integrades als oscil·loscopis) s'utilitzen sovint per filtrar components d'alta freqüència.[4]

Anàlisi de potència diferencial

modifica

L'anàlisi de potència diferencial (DPA) és un atac de canal lateral que consisteix a analitzar estadísticament les mesures de consum d'energia d'un sistema criptogràfic. L'atac aprofita els biaixos que varien el consum d'energia dels microprocessadors o un altre maquinari mentre es realitza operacions amb claus secretes. Els atacs DPA tenen propietats de processament de senyal i correcció d'errors que poden extreure secrets de mesures que contenen massa soroll per analitzar-les mitjançant una anàlisi de potència senzilla. Amb DPA, un adversari pot obtenir claus secretes analitzant les mesures de consum d'energia de múltiples operacions criptogràfiques realitzades per una targeta intel·ligent vulnerable o un altre dispositiu.

Referències

modifica
  1. «An Introduction to Power Analysis Side Channel Attacks» (en anglès). [Consulta: 7 maig 2024].
  2. P. Kocher, J. Jaffe, B. Jun, Differential Power Analysis, technical report, 1998; later published in Advances in Cryptology – Crypto 99 Proceedings, Lecture Notes in Computer Science Vol. 1666, M. Wiener, ed., Springer-Verlag, 1999.
  3. «[https://vtechworks.lib.vt.edu/server/api/core/bitstreams/65a3d264-b6b6-4246-b1e6-8f91fc8262e1/content Power Side‐Channel Attack Analysis: A Review of 20 Years of Study for the Layman]» (en anglès). [Consulta: 7 maig 2024].
  4. «Side-channel attacks explained: everything you need to know» (en anglès americà). [Consulta: 7 maig 2024].