¿Cuál es la diferencia entre el análisis de potencia simple y el análisis de potencia diferencial?

8

¿Cuál es la diferencia entre el análisis de potencia simple (SPA) y el análisis de potencia diferencial (DPA) y por qué no es posible realizar un ataque de SPA en FPGA?

Mi comprensión básica es que son ataques de canal lateral que analizan el consumo de energía del dispositivo de destino, revelando así claves criptográficas. Pero todavía no tengo claro cuál es la diferencia entre los dos y por qué un ataque funciona con FPGA pero no el otro.

Apreciaría si alguien pudiera aclarar qué son el SPA y el DPA o me indicara un tutorial / guía que explique estos ataques.

    
pregunta user1068636 13.12.2012 - 05:47
fuente

1 respuesta

10

El análisis simple de energía (SPA) implica la medición de las variaciones en el consumo de energía de un dispositivo mientras realiza una operación, a fin de descubrir información sobre material o datos de claves secretas. Esto se logra mediante la asignación de ciertos tipos de operación a los patrones de consumo. Por ejemplo, una serie de operaciones OR exclusivas muestra una traza diferente en un osciloscopio a una serie de operaciones de multiplicación.

Un buen ejemplo de esto es RSA, que tiene que realizar grandes multiplicaciones y, por lo tanto, filtra información sobre el estado interno de una gran multiplicación de enteros a través del patrón de operaciones que realiza.

Otro truco involucrado en SPA aprovecha el hecho de que las señales digitales están representadas físicamente por voltajes altos y bajos, y por lo tanto un 1 que está siendo señalado usa más potencia que un 0, durante el período de tiempo en que ese bit se está transmitiendo. Si se puede realizar un análisis lo suficientemente preciso, podemos calcular modelos estadísticos que predicen el contenido de un flujo de bits dentro de un margen de error razonable.

Si bien los sistemas de un solo propósito relativamente simples (por ejemplo, las tarjetas inteligentes) generalmente solo realizan una única operación, los sistemas más complejos generalmente realizan varias operaciones a la vez. Una computadora de escritorio moderna utiliza tecnologías como DMA, que permiten que el hardware acceda directamente a la memoria del sistema, sin interrumpir el procesador. Todas estas señales se ejecutan en paralelo, generando una gran cantidad de ruido. Además de eso, los discos duros mecánicos contienen componentes que generan varios picos de corriente, lo que aumenta el ruido. ¡Tratar de identificar los patrones estadísticos de una sola señal de datos de 133MHz + en tal sistema es extremadamente difícil!

Aquí es donde entra en juego el Análisis de potencia diferencial (DPA). Para mejorar las posibilidades de éxito, el DPA implica el análisis del consumo de energía cuando se realizan operaciones no criptográficas normales, y luego un análisis adicional durante las operaciones criptográficas. Los dos modelos estadísticos se comparan para "restar" el ruido de la señal. Esta técnica es realmente común entre los ingenieros de audio, que realizan una muestra de ruido de fondo (por ejemplo, silbido) por sí mismos, hacen un análisis de FFT de Luego, produce un modelo de filtro similar al EQ que reduce los niveles para esas frecuencias. Es más complejo en DPA (a menudo FFT solo es demasiado primitivo) pero el principio sigue siendo verdadero.

Por supuesto, este sigue siendo un modelo muy difícil de calcular, pero incluso una tasa de predicción exitosa del 51% es útil cuando se trata de claves criptográficas; forzar una clave de 128 bits es más fácil cuando se pueden priorizar los bits predichos de mayor confianza: una tasa de éxito del 51% nos da un espacio de clave efectivo esperado de 125.5 bits en lugar de 128 bits.

Los FPGA realmente no pueden ser atacados con SPA porque son de naturaleza "paralela". Realmente no funcionan como un microprocesador normal, en lugar de eso, son una serie de compuertas lógicas paralelas que funcionan al unísono en una sola señal de reloj común. Como tal, el SPA no puede identificar "señales" separadas porque cada componente interno hace lo mismo en cada ciclo de reloj. Los microprocesadores, por otro lado, a menudo tienen secciones de troquel internas separadas que pueden ser cronometradas independientemente, y que enrutan y multiplexan señales en tiempo real. Todo esto es una especie de generalización, ya que algunos FPGA complejos más modernos tienen elementos internos similares a microprocesadores junto con la lógica estática, que pueden ser vulnerables a SPA.

    
respondido por el Polynomial 13.12.2012 - 10:29
fuente

Lea otras preguntas en las etiquetas