Articulo de referencia

Análisis de potencia

Diagrama de análisis de potencia diferencial. Observación de los bits de la clave RSA mediante análisis de potencia: El pico de la izquierda muestra el consumo de energía durant...

Diagrama de análisis de potencia diferencial.
Observación de los bits de la clave RSA mediante análisis de potencia: El pico de la izquierda muestra el consumo de energía durante el paso de elevación al cuadrado únicamente , mientras que el pico de la derecha (más ancho) muestra el paso de multiplicación, lo que permite distinguir los bits exponenciales 0 y 1.

El análisis de potencia es una forma de ataque de canal lateral en la que el atacante estudia el consumo de energía de un dispositivo de hardware criptográfico. Estos ataques se basan en 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 obtener información limitada sobre los datos que se están manipulando.

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 a un atacante calcular los valores intermedios dentro de los cálculos criptográficos mediante el análisis estadístico de los datos recopilados de múltiples operaciones criptográficas. El SPA y el DPA fueron introducidos a la comunidad de criptografía abierta en 1998 por Paul Kocher , Joshua Jaffe y Benjamin Jun . [ 1 ]

Fondo

En criptografía , un ataque de canal lateral se utiliza 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 busca extraer de forma no invasiva claves criptográficas y otra información secreta del dispositivo. Un ejemplo sencillo es el problema de los tanques alemanes : los números de serie de los tanques proporcionan detalles sobre su producción. En seguridad física, un ataque no invasivo sería similar a forzar una cerradura , donde un ataque exitoso no deja rastro de la presencia del atacante.

Análisis de potencia simple

El análisis de potencia simple ( SPA , por sus siglas en inglés) es un ataque de canal lateral que consiste en el examen visual de gráficos del consumo de corriente de un dispositivo a lo largo del tiempo. Las variaciones en el consumo de energía se producen a medida que el dispositivo realiza diferentes operaciones. Por ejemplo, las distintas instrucciones ejecutadas por un microprocesador tendrán perfiles de consumo de energía diferentes.

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

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 ; } }devolver verdadero ; }

Esta comprobación de contraseña podría contener un ataque de temporización , ya que el tiempo de ejecución no es constante. Observar el consumo de energía permitirá determinar el número de bucles ejecutados. Sin embargo, es posible mitigar esta vulnerabilidad. La función podría no mostrar al usuario un resultado explotable si, por ejemplo, se introduce un retardo compensatorio antes de devolver la respuesta. O bien, el código podría estar estructurado para completar todos los bucles independientemente de la discrepancia en la posición de los caracteres entre la entrada y la contraseña secreta. Podemos ver un ejemplo de este tipo de código en la sección de algoritmos del ataque de temporización .

De forma similar, en las implementaciones de RSA, las operaciones de elevación al cuadrado y multiplicación suelen distinguirse, lo que permite a un adversario calcular la clave secreta. Incluso si la magnitud de las variaciones en el consumo de energía es pequeña, los osciloscopios digitales estándar pueden mostrar fácilmente las variaciones inducidas por los datos. Los filtros de frecuencia y las funciones de promediado (como las integradas en los osciloscopios) se utilizan a menudo para filtrar los componentes de alta frecuencia.

Análisis de potencia diferencial

El análisis diferencial de potencia ( DPA ) es un ataque de canal lateral que consiste en analizar estadísticamente las mediciones de consumo de energía de un criptosistema . El ataque explota las variaciones en el consumo de energía de los microprocesadores u otro hardware al realizar operaciones con claves secretas. Los ataques DPA poseen propiedades de procesamiento de señales y corrección de errores que permiten extraer información secreta de mediciones con demasiado ruido para ser analizadas mediante un simple análisis de potencia. Mediante DPA, un atacante puede obtener claves secretas analizando las mediciones de consumo de energía de múltiples operaciones criptográficas realizadas por una tarjeta inteligente u otro dispositivo vulnerable.

Análisis de potencia diferencial de alto orden

El análisis de potencia diferencial de alto orden ( HO-DPA ) es una forma avanzada de ataque DPA. HO-DPA permite incorporar múltiples fuentes de datos y diferentes desfases temporales en el análisis. HO-DPA se practica con menos frecuencia que SPA y DPA, ya que el análisis es complejo y los dispositivos más vulnerables pueden ser vulnerados más fácilmente con SPA o DPA. [ 2 ]

Análisis de potencia y seguridad algorítmica

El análisis de potencia permite "ver dentro" de hardware que, de otro modo, sería "a prueba de manipulaciones". Por ejemplo, el esquema de claves de DES implica la rotación de registros de clave de 28 bits. Muchas implementaciones comprueban el bit menos significativo para ver si es un 1. Si lo es, el dispositivo desplaza el registro a la derecha y antepone un 1 al extremo izquierdo. Si el bit es un cero, el registro se desplaza a la derecha sin anteponer un 1. El análisis de potencia puede distinguir entre estos procesos, lo que permite a un atacante determinar los bits de la clave secreta.

Las implementaciones de algoritmos como AES y Triple DES , que se consideran matemáticamente robustas, pueden ser fácilmente vulnerables mediante ataques de análisis de potencia. Por consiguiente, estos ataques combinan elementos de criptoanálisis algorítmico y seguridad de la implementación.

Normas y preocupaciones prácticas de seguridad

Para aplicaciones donde los dispositivos pueden caer en posesión física de un adversario, la protección contra el análisis de potencia suele ser un requisito de diseño fundamental. Según se informa, también se han utilizado análisis de potencia contra módulos de acceso condicional empleados en sistemas de televisión de pago. [ 3 ]

El equipo necesario para realizar ataques de análisis de potencia está ampliamente disponible. Por ejemplo, la mayoría de los osciloscopios de almacenamiento digital ofrecen la funcionalidad de recopilación de datos necesaria, y el análisis de datos se realiza normalmente utilizando ordenadores personales convencionales.

Prevención de ataques de análisis de potencia simple y diferencial

Los ataques de análisis de potencia generalmente no pueden ser detectados por un dispositivo, ya que la monitorización del adversario suele ser pasiva. Además, el ataque no es invasivo. Por consiguiente, las carcasas físicas, las capacidades de auditoría y los detectores de ataques resultan ineficaces. En su lugar, los ingenieros de criptosistemas deben asegurarse de que las variaciones de potencia de los dispositivos no revelen información que pueda ser utilizada por los adversarios.

Un análisis de consumo energético sencillo permite distinguir fácilmente el resultado de las bifurcaciones condicionales en la ejecución de software criptográfico, ya que un dispositivo realiza distintas acciones (consumiendo distinta energía) según se ejecute o no la bifurcación condicional. Por este motivo, es fundamental asegurarse de que no existan valores secretos que afecten a las bifurcaciones condicionales en las implementaciones de software criptográfico. Otras fuentes de variación, como las diferencias en el microcódigo, las bifurcaciones introducidas por los compiladores y las variaciones en el consumo energético de los multiplicadores, también suelen provocar vulnerabilidades en las aplicaciones de una sola página (SPA).

El análisis diferencial de potencia es más difícil de prevenir, ya que incluso pequeños sesgos en el consumo de energía pueden generar vulnerabilidades explotables. Algunas estrategias de contramedida implican modificaciones algorítmicas de modo que las operaciones criptográficas se realicen sobre datos relacionados con el valor real mediante alguna relación matemática que sobreviva a la operación criptográfica. Un enfoque consiste en ocultar parámetros para aleatorizar su valor. Otras estrategias de contramedida para reducir la efectividad de los ataques DPA implican modificaciones de hardware: se ha considerado variar la frecuencia del reloj interno del chip para desincronizar las señales eléctricas, lo que conlleva mejoras algorítmicas al DPA tradicional. [ 4 ] [ 5 ]

Referencias

  1. ^ P. Kocher, J. Jaffe, B. Jun, Análisis de potencia diferencial , informe técnico, 1998; publicado posteriormente en Advances in Cryptology – Crypto 99 Proceedings, Lecture Notes in Computer Science Vol. 1666, M. Wiener, ed., Springer-Verlag, 1999.
  2. ^ Paul Kocher, Joshua Jaffe, Benjamin Jun, " Introducción al análisis de potencia diferencial y ataques relacionados (1998) "
  3. ^ "Página principal - Ciberpiratería: La verdad" . Archivado del original el 13 de noviembre de 2002.
  4. ^ Xavier Charvet, Herve Pelletier, " Mejora del ataque DPA mediante la transformada wavelet (2005) Archivado el 4 de marzo de 2016 en Wayback Machine "
  5. ^ Jasper van Woudenberg, Marc Witteman, Bram Bakker " Mejora del análisis de potencia diferencial mediante alineación elástica (2011) "
Obtenido de " https://en.wikipedia.org/w/index.php?title=Power_analysis&oldid=1318548037#Differential_power_analysis "