Análisis de potencia


En criptografía , se utiliza un ataque de canal lateral para extraer datos secretos de algún dispositivo seguro (como una tarjeta inteligente , una "caja negra" a prueba de manipulaciones o un circuito integrado ). El análisis de canal lateral generalmente intenta extraer de forma no invasiva claves criptográficas y otra información secreta del dispositivo. Un ejemplo simple de esto es el problema de los tanques alemanes : los números de serie de los tanques brindan detalles de los datos de producción de los tanques. En seguridad física, un ataque no invasivo sería similar a abrir cerraduras , donde un ataque exitoso no deja rastro de la presencia del atacante.

El análisis de energía es una forma de ataque de canal lateral en el que el atacante estudia el consumo de energía de un dispositivo de hardware criptográfico. Estos ataques se basan en las propiedades físicas básicas del dispositivo: los dispositivos semiconductores se rigen por las leyes de la física, que dictan que los cambios de voltaje dentro del dispositivo requieren movimientos muy pequeños de cargas eléctricas (corrientes). Al medir esas corrientes, es posible aprender una pequeña cantidad de información sobre los datos que se manipulan.

El análisis de potencia simple ( SPA ) implica la interpretación visual de trazas de potencia o gráficos de actividad eléctrica a lo largo del tiempo. El análisis de potencia diferencial ( DPA ) es una forma más avanzada de análisis de potencia, que puede permitir que un atacante calcule los valores intermedios dentro de los cálculos criptográficos a través del análisis estadístico de los datos recopilados de múltiples operaciones criptográficas. SPA y DPA fueron introducidos a la comunidad criptográfica abierta en 1998 por Paul Kocher , Joshua Jaffe y Benjamin Jun . [1]

El análisis de potencia simple ( SPA ) es un ataque de canal lateral que implica el examen visual de los gráficos de la corriente utilizada por un dispositivo a lo largo del tiempo. Las variaciones en el consumo de energía ocurren cuando el dispositivo realiza diferentes operaciones. Por ejemplo, diferentes instrucciones realizadas por un microprocesador tendrán diferentes perfiles de consumo de energía.

El flujo de código que depende de un valor secreto filtrará el flujo de código a través de la supervisión del consumo de energía (y, por lo tanto, también filtrará el valor secreto). Como un ejemplo simple, considere una verificación de contraseña de la siguiente manera:

Esta verificación de contraseña contiene potencialmente un ataque de sincronización , ya que el tiempo de ejecución no es constante. Sin embargo, es posible que la función no envíe al usuario un resultado explotable, ya que, por ejemplo, podría haber un retraso compensatorio antes de que se devuelva la respuesta. Al observar el consumo de energía, quedará claro el número de bucles ejecutados.


Un diagrama de análisis de potencia diferencial.
Observación de bits clave RSA mediante análisis de potencia: el pico izquierdo muestra el consumo de energía durante el paso de solo elevar al cuadrado , el pico derecho (más ancho) muestra el paso de multiplicación, lo que permite distinguir los bits de exponente 0 y 1.