³n de la seguridad... · muchos han sido los que a lo largo de estos 7 años han colaborado de...
TRANSCRIPT
TESIS DOCTORAL
Evaluación de la Seguridad de Sistemas Embebidos ante Ataques EMA
Autor:
Roberto Martínez Bejarano
Director:
Juan Vázquez Martínez
DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA
Leganés, Noviembre 2013
TESIS DOCTORAL
Evaluación de la Seguridad de Sistemas Embebidos ante Ataques EMA
Autor: Roberto Martínez Bejarano
Director: Juan Vázquez Martínez
Firma del Tribunal Calificador:
Firma
Presidente: (Nombre y apellidos)
Vocal: (Nombre y apellidos)
Secretario: (Nombre y apellidos)
Calificación:
Leganés, de de
i
Agradecimientos
En primer lugar debo agradecer a mi tutor, Juan Vázquez Martínez, su apoyo a la hora
de desarrollar este proyecto que ve su fin ahora.
Muchos han sido los que a lo largo de estos 7 años han colaborado de manera directa
o indirecta poniendo su granito de arena en este proyecto: Jose Manuel Algaba Alonso,
Michael García Lorentz, Luis Mengibar Pozo, Raúl Sánchez Reíllo, Belén Fernández Saavedra,
Raúl Alonso Moreno, Andrés Barrado Bautista, Jesús Rubio Serrano, Ángel Villanueva de la
Hermosa, Celia López Ongil, Jesús Peña Rodríguez, Agustín Pulido Domínguez… A todos
ellos gracias.
No puedo olvidar a todos mis compañeros del departamento de Tecnología
Electrónica; Me han ayudado, me han aconsejado y han hecho más agradable esta etapa de mi
vida.
También debo agradecer la ayuda al grupo de Sistemas Electrónicos de Potencia de la
Universidad Carlos III de Madrid, por el soporte y material proporcionado así como a sus
secretarios, ya que realizan una labor notable en la sombra, muchas veces sin reconocimiento.
Y por último, gracias a toda mi familia. A Bego y Ana por su paciencia, a mi hermana
por sus imprescindibles correcciones, a mis padres por su apoyo… Todos han estado siempre
ahí en los buenos y malos momentos, con su apoyo incondicional y su ánimo a seguir siempre
adelante.
iii
“Si planificas por un año, siembra trigo;
si planificas por una década, planta árboles;
si planificas por una vida, educa personas”
(Kwan - Tzu 300 a.C.)
v
Índice general
Agradecimientos __________________________________________________________ i
Índice general ___________________________________________________________ v
Resumen _______________________________________________________________ ix
Abstract ________________________________________________________________ xi
Lista de Acrónimos _____________________________________________________ xiii
Índice de figuras ________________________________________________________ xv
1 Introducción ___________________________________________________________ 1
1.1 Motivación .............................................................................................................................................. 3
1.2 Objetivos ................................................................................................................................................. 4
1.3 Estructura de la Tesis............................................................................................................................ 4
2 Información Preliminar y Estudios Previos _________________________________ 7
2.1 El Criptoanálisis y los Ataques por Canal Lateral .......................................................................... 7
2.2 Ataques por Análisis de Consumo y Electromagnético ............................................................ 10
2.2.1 Consumo de Potencia en dispositivos CMOS .............................................................. 12
2.2.1.1 Modelo Consumo Distancia de Hamming (HD) .............................................. 14
2.2.1.2 Modelo Consumo Peso de Hamming (HW) ...................................................... 15
2.2.2 Radiación EM en dispositivos CMOS ............................................................................ 15
2.2.3 Técnicas de Análisis de datos ........................................................................................... 16
2.3 Estudios Previos ................................................................................................................................. 18
2.3.1 Ataques por Análisis de Consumo (PA) ......................................................................... 18
2.3.2 Ataques por Análisis Electromagnético (EMA) ............................................................ 26
3 Evaluación de la Seguridad _____________________________________________ 29
3.1 Algoritmo de Encriptación .............................................................................................................. 31
3.2 Ataque por Canal Lateral: Análisis Electromagnético vs. Consumo vs. Tiempo ............... 31
vi
3.3 Ataque por Canal Lateral Electromagnético ................................................................................. 33
3.4 Ataque por Correlación Electromagnética: CEMA .................................................................... 34
3.5 Dispositivos Criptográficos Bajo Test ........................................................................................... 39
3.5.1 Microcontrolador Silicon Labs C8051F303 8 bits ........................................................ 39
3.5.2 Microcontrolador ARM7TDMI-S NXP LPC2124FBD64 32 bits ............................. 41
3.5.3 Microcontrolador ARMCORTEXM3 NXP LPC1769FBD100 32 bits ........................ 42
3.5.4 Microcontrolador ARMCORTEXM3 STM32L152RBT6 32 bits .................................. 44
4 Setup Experimental de Medida __________________________________________ 47
4.1 Setup de Medida Típico de un ataque EMA ................................................................................ 48
4.1.1 Procedimiento de Medida ................................................................................................. 49
4.2 Setup de Medida Experimental Implementado ........................................................................... 50
4.2.1 Procedimiento de Medida ................................................................................................. 50
4.2.2 Fuente de Alimentación .................................................................................................... 51
4.2.3 Osciloscopio ....................................................................................................................... 51
4.2.4 Sonda Electromagnética de Campo Cercano ................................................................ 53
4.2.4.1 Características de una Sonda Electromagnética ................................................. 53
4.2.4.2 Sondas Electromagnéticas utilizadas ................................................................... 55
4.2.4.3 Caracterización Sondas Electromagnéticas ........................................................ 59
4.2.4.4 Soporte Sondas ....................................................................................................... 69
4.2.5 PreAmplificador ................................................................................................................. 70
4.2.6 PC ......................................................................................................................................... 71
4.2.6.1 El PC en la fase de captura de datos ................................................................... 71
4.2.6.2 El PC en la fase de análisis de datos .................................................................... 75
4.2.7 Equipo Bajo Ataque (EUA) ............................................................................................. 78
4.2.7.1 Comunicación Equipo Bajo Ataque - PC ........................................................... 78
4.2.7.2 Señal de Reloj .......................................................................................................... 78
4.2.7.3 Señal de Trigger ...................................................................................................... 78
4.2.8 Mesa sujeción ..................................................................................................................... 84
4.2.9 Cámara Anecoica ............................................................................................................... 85
5 Resultados Experimentales _____________________________________________ 87
5.1 Placa EMA 1: C8051F303 8 bits ..................................................................................................... 87
5.1.1 Desarrollo Experimental del Ataque............................................................................... 87
5.1.2 Resultados Experimentales ............................................................................................... 92
5.1.3 Resultados Experimentales Adicionales ......................................................................... 93
5.1.3.1 Número mínimo de medidas ataque CEMA ...................................................... 93
vii
5.1.3.2 Ataque CEMA sobre la fase AddRoundKey del AES ...................................... 96
5.1.3.3 Análisis modelos de consumo .............................................................................. 97
5.1.3.4 Análisis comportamiento sondas bajo estudio ................................................. 100
5.2 Placa EMA 2: ARM7TDMI-S LPC2124FBD64 32 bits ........................................................ 103
5.2.1 Desarrollo Experimental del Ataque ............................................................................ 103
5.2.2 Resultados Experimentales............................................................................................. 105
5.3 Placa EMA 3: ARMCORTEXM3 LPC1769 32 bits ............................................................... 106
5.3.1 Desarrollo Experimental del Ataque ............................................................................ 106
5.3.2 Resultados Experimentales............................................................................................. 107
5.4 Placa EMA 4: ARMCORTEXM3 STM32L152RBT6 32 bits .............................................. 109
5.4.1 Desarrollo Experimental del Ataque ............................................................................ 109
5.4.2 Resultados Experimentales............................................................................................. 110
6 Discusión de Resultados ________________________________________________ 113
6.1 Análisis de Resultados ..................................................................................................................... 113
6.2 Comparación con Estudios Previos ............................................................................................. 121
7 Medidas Experimentales Adicionales _____________________________________ 123
7.1 Ataque DEMA .................................................................................................................................. 123
7.2 Análisis de la EMI generada por las placas ................................................................................. 125
7.2.1 Análisis estadístico ........................................................................................................... 125
7.2.2 Análisis frecuencial .......................................................................................................... 127
7.3 Ataque SEMA................................................................................................................................... 129
7.4 Filtrado de Señales ............................................................................................................................ 132
7.5 Propuesta Ataque Experimental “Bidimensional” ................................................................... 134
7.6 Análisis Wavelet ................................................................................................................................ 136
7.6.1 Creación y aplicación de una Wavelet Propia .............................................................. 139
8 Conclusiones y Trabajos Futuros _________________________________________ 143
8.1 Conclusiones ...................................................................................................................................... 143
8.2 Trabajos Futuros............................................................................................................................... 146
Anexo 1 AES ___________________________________________________________ 149
Anexo 2 Códigos AES Implementados ______________________________________ 157
Anexo 3 Resultados Experimentales Completos ______________________________ 169
Bibliografía ____________________________________________________________ 197
ix
Resumen
Los sistemas embebidos de bajo consumo y alto rendimiento, cuya principal aplicación
son los dispositivos portátiles tales como: teléfonos móviles, tabletas, consolas de juego,
reproductores de música, lectores de libros etc. han experimentado un tremendo auge en los
últimos años. Estos dispositivos, además de contener información confidencial (contraseñas,
fotos, números de teléfono…) permiten, en su gran mayoría, realizar operaciones bajo redes
inalámbricas poco seguras: como transacciones, envío de datos, acceso a cuentas personales
etc. Por tanto, se hace imprescindible el análisis del nivel de seguridad alcanzado por estos
dispositivos. Sin embargo, a la espera de futuros desarrollos de la estadística, todavía no existe
un marco de evaluación de la seguridad totalmente satisfactorio e internacionalmente
reconocido.
Así por primera vez en este trabajo se evalúa la seguridad relativa de varios
microprocesadores representativos del mercado de aplicaciones embebidas de bajo consumo,
comparando su respuesta ante un ataque por canal lateral electromagnético.
Los dispositivos seleccionados para su evaluación son:
8051 con arquitectura de 8 bits evolucionada (C8051F303 de Silicon Labs).
ARM7TDMI-S de 32 bits (LPC2124 de NXP).
Dos ARMCortexM3 de 32 bits nunca antes analizados ante ataques por canal
lateral: con diseño de alto rendimiento (LPC1769 de NXP) y bajo consumo
(STM32L152 de STMicroelectronics).
Para la realización de los experimentos se desarrolla un setup propio de medida,
altamente automatizado, robusto ante vibraciones y con una capacidad de muestreo superior a
lo publicado hasta ahora en la bibliografía.
También se propone una nueva métrica para comparar la respuesta de los dispositivos
ante ataques por canal lateral, y que se apoya en la correlación estadística.
x
Uno de los elementos cruciales en un ataque por canal lateral electromagnético es el
dispositivo o sonda de medida. Las publicaciones de autores que sugieren la utilización de
algún tipo de sonda, no aportan datos concluyentes. Este trabajo compara de forma novedosa
la respuesta de tres tipos de sondas: dos fabricadas y comercializadas por Electrometrics
EM6995 y Langer MFA-R y una tercera fabricada ad-hoc, y manualmente. Como resultado se
concluye que cualquier tipo de sonda es factible de ser usada en un ataque electromagnético,
aunque son mejores aquellas de alta precisión como la MFA-R de cabeza milimétrica y
preamplificador integrado, que sin embargo requieren una preparación y un setup más
elaborado.
Como resultado final del estudio, se concluye que los dispositivos actuales ARM
Cortex M3, ofrecen una seguridad inherente muy superior a la de otros microprocesadores de
diseño menos elaborado, y en consecuencia es recomendable usarlos para aquellas aplicaciones
cuyos requisitos de seguridad sean elevados.
xi
Abstract
The low power and high performance embedded systems used in mobile devices like
mobile phones, tablet computers, music readers, handheld game consoles, book readers…
have achieved a great success in the last years. These devices contain confidence information
(keys, photographs, telephone numbers…) and usually let us doing operations over unsafe
wireless networks: banking transactions, sending data, accessing to personal accounts etc. In
consequence, the analysis of the security level reached by these devices is indispensable.
However, there isn’t a satisfactory and internationally recognized methodology to assess
security.
For first time, this work assesses the relative security of several representative low
power embedded microprocessors, comparing their response against Electromagnetic Side
Channel Attack.
The selected devices for this evaluation are:
8051 with new 8 bits architecture (Silicon Labs C8051F303).
ARM7TDMI-S of 32 bits (NXP LPC2124).
Two 32 bits ARMCortexM3 never before analysed against Side Channel
Attacks: with high performance (NXP LPC1769) and low power specifications
(STMicroelectronics STM32L152).
A measurement setup has been developed to carry out this study. It’s highly
automatized, robustly against vibrations and with a higher sampling rate than rest of setups
showed in bibliography.
Also, a new metric is proposed. It allows to compare device response against
correlation side channel attack using statistical correlation.
One of the essential elements of an electromagnetic side channel attack is the near
field probe. The authors, whose studies suggest the use of some type of probe, do not include
conclusion results. This work compares the response of three probes in a new way:
xii
Electrometrics EM6995, Langer MFA-R and ones handmade. It concludes that any type of
probe is useful in an electromagnetic attack, although the use of high precision probes is
recommended. For example, the MFA-R with tiny head and integrated preamplifier.
Nevertheless, it requires more training and a precise setup.
This study finds out that the updated devices ARM Cortex M3, have a very high
security, higher than traditional ones. Therefore, the use of this type of devices in sensitive
applications is advisable.
xiii
Lista de Acrónimos
3DES (Triple Data Encryption Standard) Triple Estándar de Encriptación de
Datos
AES (Advanced Encryption Standard) Estándar Avanzado de Encriptación
Americano
ASCII (American Standard Code for Information Interchange) Código estadounidense
estándar para el intercambio de información
C.C. (Correlation Coefficient) Coeficiente de Correlación
CEMA (Correlation Electromagnetic Analysis) Ataque por Análisis de Correlación
Electromagnética
CMOS (Complementary Metal Oxide Semiconductor) Tecnología de fabricación de
chips basada en Semiconductor Complementario Óxido-Metálico
CPA (Correlation Power Analysis) Ataque por Análisis de Correlación de
Consumo
CPFA (Correlation Power Frequency Analysis) Ataque por Análisis Frecuencial de
Correlación de Consumo
CPU (Central Processing Unit) Unidad Central de Proceso
DEMA (Differential Electromagnetic Analysis) Ataque por Análisis
Electromagnético Diferencial
DES (Data Encryption Standard) Estándar de Encriptación de Datos
DFA (Differential Frequency Analysis) Ataque por Análisis de Frecuencia
Diferencial
DPA (Differential Power Analysis) Ataque por Análisis de Consumo Diferencial
xiv
DSA (Differential Spectrogram Analysis) Ataque por Análisis de Espectrograma
Diferencial
EM Electromagnetismo / Electromagnético
EMA (Electromagnetic Analysis) Ataque por Análisis Electromagnético
EMC (Electromagnetic Compatibility) Compatibilidad Electromagnética
EUA (Equipment Under Attack) Equipo Bajo Ataque
EUT (Equipment Under Test) Equipo Bajo Test
FFT (Fast Fourier Transform) Transformada Rápida de Fourier
FPGA (Field Programmable Gate Array) Matriz de puertas programable
HD (Hamming Distance) Distancia de Hamming
HTTPS Protocolo Seguro de Transferencia de Hipertexto
HW (Hamming Weight) Peso de Hamming
IPv6 (Internet Protocol) Protocolo de Internet versión 6
MIPS Millones de Instrucciones por Segundo
PA (Power Analysis) Análisis Consumo Energético
PLL (Phase-Locked Loop) Lazo de seguimiento de fase
SCA (Side Channel Attack) Ataque por Canal Lateral
SEMA (Simple Electromagnetic Analysis) Ataque por Análisis Electromagnético
Simple
SMTP (Simple Mail Transfer Protocol) Protocolo de Transferencia Simple de
Correos Electrónicos
SNR (Signal-to-Noise Ratio) Relación señal a ruido
SPA (Simple Power Analysis) Ataque por Análisis de Consumo Simple
TCP (Transmission Control Protocol) Protocolo de Control de Transmisión
TLS (Transport Layer Security) Capa de Conexión Segura
WPA (Wi-Fi Protected Access) Acceso Wi-Fi Protegido
xv
Índice de figuras
Figura 2.1: Modelo Criptográfico Clásico .................................................................................................... 8
Figura 2.2: Modelo Criptográfico con Seguridad Física ................................................................................ 8
Figura 2.4: Corriente Carga Descarga inversor CMOS con transiciones 0-1 y 1-0 ..................................... 13
Figura 3.1: Esquema Ataque CEMA sobre AES .................................................................................. 38
Figura 3.2: Esquema Microcontrolador 8 bits Silicon Labs C8051F303 (fuente [SL'08]) ....................... 39
Figura 3.3: Placa EMA 1: Microcontrolador 8 bits C8051F303 ............................................................ 40
Figura 3.4: Esquema Microcontrolador NXP LPC2124 (fuente [NXP'08]) .......................................... 41
Figura 3.5: Placa EMA 2: Microcontrolador 32 bits ARM7 LPC2124 ................................................ 42
Figura 3.6: Esquema Microcontrolador NXP LPC1769 (fuente [NXP'10]) .......................................... 43
Figura 3.7: Placa EMA 3: LPCXpresso LPC1769 ............................................................................... 43
Figura 3.8: Placa EMA 4: STM32L-Discovery ...................................................................................... 45
Figura 3.9: Microcontrolador STM32L152RBT6 (fuente [ST'11]) ......................................................... 45
Figura 4.1: Setup Típico de Medida ataque EMA ................................................................................... 48
Figura 4.2: Setup de Medida utilizado ...................................................................................................... 50
Figura 4.3: Batería 6V usada como fuente de alimentación ........................................................................ 51
Figura 4.4: Osciloscopio MSO4104 utilizado como digitalizador (fuente Tektronix Inc.) .......................... 52
Figura 4.5: Influencia Forma sonda .......................................................................................................... 54
Figura 4.6: Respuesta en frecuencia sondas en función tamaño .................................................................... 54
Figura 4.7: Respuesta en frecuencia sondas en función número espiras ......................................................... 55
Figura 4.8: Sonda 1: Monoespira con un clip y termorretráctil según [Smi'99] ........................................... 56
Figura 4.9: Sonda 2: Monoespira cobre esmaltado 0.8 mm según [Smi'99] ............................................... 56
Figura 4.10: Sonda 3: Monoespira blindada cobre rígido y termorretráctil según [Smi'00] .......................... 56
Figura 4.11: Sonda 4: Multiespira con semiferrita Fair-Rite TN 9/6/3-4C65 según [Joh'99] ................ 57
Figura 4.12: Sonda 5: Multiespira con semiferrita Fair-Rite TX 10/6/3-4C65 según [Joh'99] .............. 57
Figura 4.13: Sonda 6: Multiespira (8 espiras) cobre esmaltado 0,6 mm según [Pee'07].............................. 57
Figura 4.14: Sonda 7: Sonda multiespira con ferrita TN10/6/4-3F3 según [Rid'99] ............................. 57
xvi
Figura 4.15: Sonda 8: Monoespira circuito protoboard según [Ost'03] ....................................................... 57
Figura 4.16: Sonda EM6995 de Electro-Metrics ..................................................................................... 58
Figura 4.17: Sonda MFA-R 0,2-75 de Langer EMV-Technik .............................................................. 59
Figura 4.18: Test setup para la caracterización de sondas campo cercano .................................................... 60
Figura 4.19: Respuesta en frecuencia Sonda EM6995 .............................................................................. 60
Figura 4.20: Respuesta en frecuencia sonda 1 ............................................................................................ 61
Figura 4.21: Respuesta en frecuencia sonda 2 ............................................................................................ 61
Figura 4.22: Respuesta en frecuencia sonda 3 ............................................................................................ 62
Figura 4.23: Respuesta en frecuencia sonda 4 ............................................................................................ 62
Figura 4.24: Respuesta en frecuencia sonda 5 ............................................................................................ 63
Figura 4.25: Respuesta en frecuencia sonda 6 ............................................................................................ 63
Figura 4.26: Respuesta en frecuencia sonda 7 ............................................................................................ 64
Figura 4.27: Respuesta en frecuencia sonda 8 ............................................................................................ 64
Figura 4.28: Setup medida espectro EM EMA1 ...................................................................................... 65
Figura 4.29: Medida Espectral Sonda 1 ................................................................................................... 65
Figura 4.30: Medida Espectral Sonda 2 ................................................................................................... 66
Figura 4.31: Medida Espectral Sonda 3 ................................................................................................... 66
Figura 4.32: Medida Espectral Sonda 4 ................................................................................................... 67
Figura 4.33: Medida Espectral Sonda 5 ................................................................................................... 67
Figura 4.34: Medida Espectral Sonda 6 ................................................................................................... 68
Figura 4.35: Medida Espectral Sonda 7 ................................................................................................... 68
Figura 4.36: Medida Espectral Sonda 8 ................................................................................................... 69
Figura 4.37: Soporte sondas setup medida ................................................................................................. 70
Figura 4.38: Preamplificador Langer PA 303 .......................................................................................... 70
Figura 4.39: Respuesta en frecuencia amplificador Langer PA 303 ........................................................... 71
Figura 4.40: Interfaz aplicación Labview para la generación de textos planos ............................................. 73
Figura 4.41: Interfaz aplicación Labview para el control de la cadena de medida ........................................ 73
Figura 4.42: Cable TTL-232R para la señal de encriptación .................................................................... 75
Figura 4.43: Interfaz aplicación CemaGui para la realización de un ataque CEMA ................................ 75
Figura 4.44: Gráfica C.C. – Registro para la clave con mayor Coeficiente de Correlación ........................... 76
Figura 4.45: Interfaz aplicación CemaGuiGraphCC para la obtención de la gráfica CEMA-Medidas ...... 77
Figura 4.46: Gráfica Coeficiente Correlación – Número de Trazas ............................................................ 77
Figura 4.47: Aplicación Labview para el análisis de la señal de trigger ...................................................... 80
Figura 4.48: Configuración 1 para la generación de trigger ......................................................................... 80
Figura 4.49: Configuración 2 para la generación de trigger ......................................................................... 81
xvii
Figura 4.50: Configuración 3 para la generación de trigger ......................................................................... 81
Figura 4.51: Configuración 4 para la generación de trigger ......................................................................... 81
Figura 4.52: Configuración 5 para la generación de trigger ......................................................................... 82
Figura 4.53: Determinación de la pendiente del flanco ................................................................................ 83
Figura 4.54: Flanco bajada ZIN=1MΩ (izquierda) ZIN=50Ω (derecha) ................................................. 84
Figura 4.55: Mesa test setup ..................................................................................................................... 85
Figura 4.56: Base mesa test setup: detalle elastómeros ................................................................................ 85
Figura 4.57: Filtros EMI alimentación cámara anecoica ........................................................................... 86
Figura 4.58: Cámara Semianecoica laboratorio CEM Universidad Carlos III de Madrid donde se realizaron
las medidas ................................................................................................................................................ 86
Figura 5.1: Configuración Setup Medida Placa EMA 1 ........................................................................... 89
Figura 5.2: Gráfica C.C. – Registro para la clave hipotética con mayor coeficiente de correlación ................. 90
Figura 5.3: Gráfica Coeficiente Correlación - Número Trazas ................................................................... 91
Figura 5.4: Determinación del número mínimo de medidas ataque CEMA ............................................... 92
Figura 5.5: Registro que indica el número mínimo de trazas del ataque CEMA ........................................ 94
Figura 5.6: C.C. en función del registro de la traza para la clave correcta ................................................... 94
Figura 5.7: Influencia C.C. en el número de trazas necesarias para un ataque CEMA con modelo de
consumo HW ............................................................................................................................................ 96
Figura 5.8: Gráfica Coeficiente Correlación – Trazas fase AddRoundKey ................................................. 97
Figura 5.9: Número mínimo trazas aplicando HW .................................................................................. 99
Figura 5.10: Número mínimo trazas aplicando HD ................................................................................. 99
Figura 5.11: SNR obtenido con la sonda EM6995 en la posición EM3 ................................................ 101
Figura 5.12: Diferencia Medias obtenido con sonda MFA-R en la posición MF4 ................................... 101
Figura 5.13: Medida Sonda EMV en cuatro posiciones distintas ............................................................ 103
Figura 5.14: Medida Sonda HOME en tres posiciones distintas ............................................................. 103
Figura 5.15: Configuración Setup Medida Placa EMA 2 ...................................................................... 104
Figura 5.16: Configuración Setup Medida Placa EMA 3 ...................................................................... 107
Figura 5.17: Placa EMA 3 sonda Homemade posición HO2 modelo HW ............................................ 108
Figura 5.18: Configuración Setup Medida Placa EMA 4 ...................................................................... 110
Figura 6.1: Valores máximos ataques ..................................................................................................... 115
Figura 6.2: Valores medios ataques a partir de valores máximos ............................................................. 116
Figura 6.3: Número de trazas EMA1 sonda MFA-R posición MF1 .................................................... 120
Figura 6.4: Número de trazas EMA3 sonda MFA-R posición MF4 .................................................... 120
Figura 7.1: Resultado ataque DEMA clave supuesta correcta ................................................................. 124
Figura 7.2: Resultado ataque DEMA clave supuesta incorrecta .............................................................. 124
xviii
Figura 7.3: Análisis estadístico trazas EM placa EMA 1 ..................................................................... 125
Figura 7.4: Desviación típica estándar 1000 medidas placas bajo estudio ................................................. 126
Figura 7.5: Análisis Fourier traza EM placa EMA 1 (11.0592MHz) ............................................... 128
Figura 7.6: Análisis Fourier traza EM placa EMA 2 (12x5 = 60 MHz) .......................................... 128
Figura 7.7: Análisis Fourier traza EM placa EMA 3 (12x10 = 120 MHz) ...................................... 128
Figura 7.8: Análisis Fourier traza EM placa EMA 4 (8x4 = 32MHz) ............................................. 129
Figura 7.9: Setups de medida utilizados ataque SEMA.......................................................................... 130
Figura 7.10: SEMA sobre placa EMA 1 con receptor centrado en 44MHz y RBW=1MHz ............... 130
Figura 7.11: Espectro de dos encriptaciones consecutivas sin modificación .................................................. 131
Figura 7.12: Variación espectro captado al variar un bit del texto ........................................................... 132
Figura 7.13: Variación espectro captado al variar un bit de la clave ......................................................... 132
Figura 7.14: Setup medida con receptor trabajando como filtro ................................................................. 133
Figura 7.15: Medida Espectral EMA 3 RBW=1MHz, BW=400KHz, ST=50ms ........................... 134
Figura 7.16: Campo EM real captado registro 43027 de las 1000 trazas captadas................................. 135
Figura 7.17: Consumo teórico byte 4 de 1000 textos aleatorios para la clave 147D ................................... 136
Figura 7.18: Puntos de influencia bit 35 clave algoritmo AES ................................................................ 137
Figura 7.19: Análisis wavelet Symlets 7 bit 63 clave igual a 1 ................................................................ 138
Figura 7.20: Análisis wavelet Coiflets 1 bit 19 clave igual a 0 ................................................................ 138
Figura 7.21: Análisis wavelet Biorthogonal 2.8 bit 89 clave igual a 1 ..................................................... 139
Figura 7.22: Comparación Wavelets con traza EM placa EMA 1 ......................................................... 139
Figura 7.23: Onda patrón EM placa EMA1 para la creación de una Wavelet ....................................... 140
Figura 7.24: Wavelet adaptada a partir de onda base EMA1 ................................................................ 140
1. Introducción
1
Capítulo 1
INTRODUCCIÓN
La seguridad de los dispositivos electrónicos empotrados1 ha sido siempre un tema que
ha preocupado tanto a usuarios como a fabricantes. Sin embargo, en los últimos años su
importancia ha crecido de manera exponencial. El hecho de que la mayoría de estos
dispositivos dispongan de conexión a internet, les permite realizar tareas hasta hace poco
exclusivamente reservadas a equipos informáticos, como enviar mensajes, almacenar datos en
la red, acceder a la cuenta de ahorros del banco, realizar compras, etc. Es decir, operaciones
que requieren el intercambio seguro de datos bajo entornos potencialmente peligrosos. Esto
ha provocado que temas como la seguridad de los datos y las comunicaciones, muy presentes
en ambientes informáticos desde la revolución de internet, se conviertan en una de las
principales preocupaciones para usuarios y fabricantes de este tipo de dispositivos, incluso
desde la etapa de diseño. Así, elementos como los sistemas de encriptación, tales como RSA,
IDEA, DES, AES…, y protocolos y estándares de comunicación segura, como por ejemplo:
HTTPS, TLS, WPA, SMTP, TCP, IPv6… han pasado a formar parte fundamental del entorno
de estos equipos.
Tradicionalmente, la seguridad se ha definido en el contexto de las comunicaciones,
donde dos entes intercambian información sensible a través de un medio potencialmente
accesible. En este caso, la seguridad se fundamenta en tres pilares:
Integridad de datos: Asegurar que la información no es modificada ilegítimamente.
1 También llamados embebidos (embedded).
1. Introducción
2
Confidencialidad de datos: Proteger la información de terceras personas.
Autentificación: Asegurar que la comunicación se produce entre las partes
deseadas.
Además, se deben dotar otras funciones de seguridad, como permitir la limitación del
acceso al dispositivo a determinadas personas mediante controles de acceso basados en claves
o técnicas biométricas, asegurar la confidencialidad e integridad de la información almacenada
en el dispositivo, certificar conexiones y accesos de red seguras, o asegurar tanto el correcto
funcionamiento del dispositivo bajo entornos hostiles, como su resistencia a ser forzado
[Koc'04].
Para tratar de conseguir la seguridad básica requerida en un dispositivo, habitualmente
se utilizan tres tipos de algoritmos criptográficos:
Simétricos o de clave secreta, que requieren la misma clave para la encriptación y
desencriptación. Ej. RC4, IDEA, Blowfish, 3DES, AES…
Asimétricos o de clave pública, que utilizan dos claves; una para cifrar los datos y otra
para descifrar. Normalmente la clave de cifrado se hace pública, de esta forma
cualquier persona puede enviar al poseedor de la clave privada un mensaje cifrado
que sólo éste puede descifrar. Se evita así el problema de tener que intercambiar la
clave. Ej. DSA, RSA, Curva elíptica, Diffie-Hellman…
Hash, que permiten confirmar la integridad de los datos, generando un valor único
de longitud fija para cada dato. Ej. SHA, MD5…
El sistema asimétrico tiene la ventaja de que la distribución de claves es más segura, en
cambio sus algoritmos son más complejos, por lo que requieren una capacidad de
procesamiento superior. Además, requieren claves de mayor tamaño y el mensaje cifrado
ocupa más espacio que el original. Por ese motivo, se suelen utilizar los algoritmos simétricos
para cifrar la información a transmitir y los asimétricos para las claves. No obstante, el
rendimiento de los nuevos sistemas asimétricos basados en curvas elípticas ha mejorado
notablemente [Kam'11].
Por tanto, se hace indispensable el uso y fabricación de dispositivos empotrados
seguros. Además, factores específicos que normalmente les afectan, como la limitación de
recursos, tanto a nivel energético como de almacenamiento y procesamiento, la posibilidad de
operar en entornos poco seguros o el hecho de que sus comunicaciones se puedan realizar de
forma inalámbrica, hacen que su seguridad deba analizarse de forma rigurosa. Asimismo, se ha
demostrado que los algoritmos de encriptación presentan vulnerabilidades en función de su
1. Introducción
3
implementación física, que pueden ser explotadas mediante los Ataques por Canal Lateral
(SCA), que más adelante se analizarán en profundidad.
El tremendo auge experimentado en los últimos años por los SCA, ha propiciado que
gobiernos y organismos de estandarización se interesen más por el tema de la seguridad. Es el
caso del NIST (National Institute of Standards and Technologies), que en el año 2011
desarrolló un seminario para intentar establecer una metodología que permita determinar la
vulnerabilidad de los dispositivos criptográficos a este tipo de ataques [Nist'11].
En el caso de que el dispositivo electrónico maneje información clasificada, el
concepto de seguridad alcanza una importancia superlativa. Se habla entonces de Tempest
[[CCN-Tem'06], [CCN-NTem'12]], de aplicación en todos los países de la OTAN, y que trata
de evitar o reducir la posible filtración de información a través de las emisiones de energía
radiadas involuntariamente por los dispositivos electrónicos que manejan información
clasificada.
Durante los últimos años se ha dado a conocer públicamente la gran preocupación del
gobierno de los Estados Unidos por el tema Tempest. Dicho país ha estado desarrollando
normativas desde los años setenta para reducir los riesgos producidos por estas radiaciones.
Estas normas han sido recientemente desclasificadas parcialmente y son accesibles para el gran
público [NSA'03].
Por consiguiente, los fabricantes deben considerar la seguridad desde el diseño, como
un factor más a considerar junto con el rendimiento, el precio o la potencia, no como un
añadido [Koc'04]. Algunos fabricantes así lo han entendido, como es el caso de Maxim que ha
desarrollado el MAX32590. Según el fabricante, supone el microcontrolador más seguro y
resistente a los ataques del mercado. Éste incluye numerosos sistemas de seguridad integrados
en un único chip: detector dinámico de fallos, memoria encriptada, soporte a RSA, DSA y
ECDSA, control de temperatura y voltaje, aceleradores de hardware para AES, DES y SHA
etc. Para más información véase [MaxDSM'13]. Igualmente Samsung, está dedicando
importantes recursos a la investigación de la seguridad, creando infraestructuras de evaluación
como el JHAS, proponiendo soluciones de seguridad como el CRYPTO IP etc. [Par'13].
1.1 Motivación
Esta es la primera Tesis Doctoral que se desarrolla en el campo de la seguridad de
sistemas criptográficos y los campos electromagnéticos, dentro del Departamento de
Tecnología Electrónica de la Universidad Carlos III de Madrid. Se abre así una nueva línea de
investigación que amplía la diversidad de temas del departamento.
1. Introducción
4
En 2006 C.H. Gebotys [Geb'06] ya recalcaba la importante necesidad de estudiar la
seguridad de sistemas embebidos de bajo consumo orientados a aplicaciones sobre
dispositivos portátiles inalámbricos como PDA’s y teléfonos móviles. El hecho de que las
tecnologías inalámbricas móviles se hayan hecho con un importante hueco en el mercado,
llegando a desplazar en muchas tareas a los dispositivos informáticos tradicionales, hace
imprescindible su estudio.
A pesar de ello, la popularidad de este tipo de dispositivos entre los investigadores no
alcanza cotas elevadas, y pocos han sido los autores que se han dedicado a analizar y acreditar
su nivel de vulnerabilidad ante un ataque no invasivo o por canal lateral. Existe pues, un
importante vacío que esta tesis ha tratado de explorar.
Además, en la literatura no existe ningún estudio que detalle y compare el
comportamiento de varios dispositivos ante los SCA. La mayoría de los autores se han
dedicado a implementar ataques o contramedidas, y a su comprobación práctica sobre un
único dispositivo.
1.2 Objetivos
El objetivo principal de este trabajo, es analizar la seguridad relativa de varios
dispositivos embebidos de bajo consumo, y que son representativos de la oferta actual de
microprocesadores/microcontroladores presentes en el mercado, ante los SCA.
Dado que todavía no está clara una metodología que analice de forma objetiva y fiable
la vulnerabilidad de un sistema, se comparará la respuesta de los dispositivos ante un SCA y se
propondrá una métrica o parámetro que permita su evaluación.
Para ello, se deberá desarrollar un setup de medida específico para su ejecución, con
todas las herramientas necesarias: sondas, soportes, software de adquisición etc.
Aprovechando la oportunidad, se evaluará el comportamiento de varias sondas EM de
campo cercano, uno de los elementos más críticos de la cadena de medida, y se estudiarán
distintos aspectos importantes de los SCA, que la literatura solo contempla de manera somera.
1.3 Estructura de la Tesis
La tesis que aquí se propone, se ha descrito dividiendo el documento en ocho
capítulos y tres anexos. Los dos primeros introducen inicialmente al lector en temas
relacionados con la seguridad de dispositivos electrónicos, como son el criptoanálisis y los
SCA, necesarios para el entendimiento del resto de capítulos, para a continuación centrarse en
dos ataques concretos: por análisis electromagnético y consumo eléctrico. En el capítulo tres
1. Introducción
5
se describe la metodología elegida para analizar la seguridad de los dispositivos embebidos
bajo estudio. En el cuarto apartado se hace una descripción detallada del setup de medida
desarrollado para llevar a cabo las medidas. Los resultados experimentales obtenidos son
mostrados y analizados en los capítulos cinco, seis y siete. El último capítulo presenta a modo
de resumen, las conclusiones más relevantes obtenidas, así como también, los trabajos no
tratados que se consideran pendientes de realizar en un futuro. Por último, los anexos incluyen
información menos relevante, pero de posible utilidad para el lector. Así el anexo uno se
centra en el algoritmo de encriptación AES, el dos muestra los códigos implementados en los
dispositivos analizados y el tres presenta un resumen de todos los resultados experimentales
obtenidos.
La siguiente lista detalla la información contenida en cada capítulo y anexo que
componen este documento:
Capítulo 2. Hace una pequeña introducción al criptoanálisis y los ataques por canal lateral,
para centrarse en las variantes por análisis electromagnético y energético, base de este
proyecto. Se revelan sus fundamentos y las diferentes técnicas aparecidas en la literatura.
Capítulo 3. Se explica el método seguido para evaluar la seguridad relativa de los
dispositivos embebidos bajo análisis mediante los ataques por canal electromagnético,
argumentando cada una de las decisiones realizadas y se describe cada uno de los
dispositivos testeados.
Capítulo 4. Descripción completa del setup y procedimiento de medida típicos usados para
llevar a cabo un ataque por canal lateral electromagnético, y a continuación lo compara
con el utilizado en esta disertación. Detalla uno a uno los elementos que conforman el
setup implementado, con especial hincapié en la sonda de medida.
Capítulo 5. Presenta los resultados experimentales obtenidos con cada uno de los
dispositivos, conclusiones provisionales y algunos experimentos realizados para la puesta a
punto y comprensión de los ataques.
Capítulo 6. Se analizan los resultados de forma global y se obtienen conclusiones a partir
de ellos. El trabajo realizado es comparado con lo publicado en la literatura.
Capítulo 7. Describe otros resultados experimentales adicionales efectuados para el
desarrollo de este trabajo.
Capítulo 8. Resume las principales conclusiones del estudio y detalla las líneas de
investigación abiertas que se constituyen como posible trabajo futuro.
1. Introducción
6
Anexo 1. Explicación en detalle del algoritmo de cifrado AES.
Anexo 2. Muestra los códigos implementados del estándar AES en los dispositivos
analizados.
Anexo 3. Contiene todos los resultados experimentales relativos al estudio principal de
este trabajo que evalúa la seguridad de los cuatro dispositivos embebidos.
2. Información Preliminar y Estudios Previos
7
Capítulo 2
INFORMACIÓN PRELIMINAR Y
ESTUDIOS PREVIOS
En 1996, Kocher y otros autores [Koc'96] desvelaron públicamente que los algoritmos
criptográficos podían presentar debilidades por el hecho de ejecutarse sobre un dispositivo
físico, debido a la fuga de información a través de alguna magnitud física propia del equipo.
Hasta ese momento, la criptografía era una ciencia prácticamente exclusiva de investigadores
matemáticos. A partir del descubrimiento de Kocher, distintos profesionales como físicos,
ingenieros, informáticos… se interesaron por el tema y pasaron a formar parte de tan
distinguido grupo. La criptografía sufrió entonces un auténtico boom.
En este capítulo se hace una introducción general a la criptología y los Ataques por
Canal Lateral (SCA), para a continuación centrarse en dos modelos íntimamente relacionados:
los ataques que utilizan como canal lateral el consumo de energía y los basados en la radiación
electromagnética emitida por el dispositivo. Por último, se estudian las diferentes técnicas
disponibles en la literatura sobre dichos ataques.
2.1 El Criptoanálisis y los Ataques por Canal Lateral
El Criptoanálisis tiene su origen en las palabras Griegas kryptós “escondido” y
analýein, “aflojado” o “desatado” y se define como el estudio de los posibles métodos para
descifrar información encriptada sin tener acceso a la información secreta que es normalmente
2. Información Preliminar y Estudios Previos
necesaria para ello: típicamente una clave secreta. Aunque también se usa para referirse a
cualquier intento de eludir la seguridad de algoritmos criptográficos y protocolos en general.
Un algoritmo criptográfico puede considerarse desde dos puntos de vista. Por un lado,
según la visión clásica, puede tratarse como un objeto matemático abstracto o caja negra, es
decir, una transformación parametrizada o no por una clave, cuyos únicos parámetros para su
criptoanálisis son los datos de entrada y salida (Figura 2.1).
Por otro lado, puede contemplarse como un objeto que tiene que implementarse en un
programa que se ejecuta en un determinado procesador, en un entorno dado y que presenta
características específicas propias de la implementación. Este es el punto de vista de la
Seguridad Física, que se hizo público por primera vez a mediados de los años noventa
[Koc'96] (Figura 2.2).
La visión clásica que concibe que todos los ataques se realizarán tratando de romper
las “complejas” primitivas criptográficas empleadas en dispositivos de seguridad, es poco
realista. Se puede hacer una analogía muy interesante entre un potente algoritmo criptográfico
y una puerta de alta seguridad en la parte delantera de una casa. Es poco probable que unos
ladrones intenten, por todos los medios posibles, entrar en la casa a través de la puerta
2. Información Preliminar y Estudios Previos
9
blindada; En su lugar, intentarán acceder por alguna ventana, por una puerta trasera, cavando
un foso, o robando la llave de acceso.
La seguridad, por tanto, se debe cuantificar no solo en términos de propiedades
matemáticas del algoritmo criptográfico y tamaño de la clave, sino además en función de su
implementación.
Los Ataques Físicos a dispositivos criptográficos, intentan explotar distintas
vulnerabilidades causadas por la propia naturaleza física de los dispositivos empleados para el
cifrado de la información. Esto implica que son muy específicos de la implementación
realizada, pero con la gran ventaja de que pueden ser varios órdenes de magnitud más
efectivos que un ataque convencional [[Kel'98], [Koe'05]].
La diversidad de los ataques físicos es muy grande. Se puede hacer una primera
clasificación basada en tres parámetros:
a) Invasivo – No Invasivo: Los ataques invasivos requieren el desencapsulado del
chip para tener acceso a los componentes internos. Mientras que un ataque no
invasivo únicamente explota la información disponible externamente, tales
como el tiempo de ejecución, el consumo de energía, la radiación EM
emitida…
b) Activo – Pasivo: Los ataques activos someten al dispositivo a condiciones
físicas extremas, para intentar forzar un estado erróneo en el dispositivo
mientras éste se ejecuta. En el lado opuesto se encuentran los ataques pasivos,
que únicamente observan el dispositivo durante el procesamiento sin tratar de
provocar una alteración.
c) Simple – Diferencial: Un ataque simple analiza directamente una o varias
medidas de información filtrada para intentar determinar la instrucción
ejecutada y los datos utilizados. Por oposición, el ataque diferencial analiza
numerosas medidas utilizando técnicas estadísticas para intentar explotar la
correlación con los datos procesados. En este caso, el adversario no requiere
un conocimiento previo de la implementación, como sí ocurre en el simple.
Por otro lado, los ataques se pueden organizar en tres grandes grupos:
2. Información Preliminar y Estudios Previos
10
Ataques por Sondeo
Consiste en abrir el dispositivo quitando su encapsulado para observar directamente su
comportamiento: señales en los buses, celdas de memoria… utilizando tanto microscopios,
como sondas microscópicas. Son, por tanto, Pasivo-Invasivo.
Ataques por Inducción de Fallos
Tratan de influenciar el comportamiento del dispositivo, sometiéndolo a condiciones
de funcionamiento extremas para tratar de producir errores forzados que impliquen la fuga de
información secreta. Se trata de un ataque Activo y puede ser Invasivo o no.
Ataques por Canal Lateral
Son un tipo de ataque no invasivo y pasivo, donde el adversario trata de explotar las
fugas físicas de información observables durante el procesamiento. En función del parámetro
físico analizado, se pueden clasificar a su vez en:
Ataques por Análisis de Tiempos: Explotan el tiempo de ejecución del
dispositivo criptográfico.
Ataques por Análisis de Consumo: Observan el consumo eléctrico.
Ataques por Análisis Electromagnético: Analizan el campo
electromagnético (EM) emitido por el equipo.
La eficiencia, y en algunas ocasiones, la simplicidad [Scc'09] y el hecho de que puedan
ser llevados a cabo con un equipo relativamente asequible, han contribuido a su popularidad,
haciendo que este tipo de ataques representen un serio problema a la seguridad para la mayoría
de dispositivos criptográficos hardware. Por tal motivo, la comunidad criptográfica se ha
volcado en esta nueva disciplina, que a diferencia de la clásica usa mecanismos puramente
físicos y no matemáticos, dedicando importantes recursos para su desarrollo.
La viabilidad de los SCA se debe a la no idealidad de los sistemas computacionales
actuales, lo que provoca la existencia de correlación entre las medidas físicas tomadas durante
el procesado de un algoritmo criptográfico y el estado interno del dispositivo, el cual está
relacionado con la clave secreta. Esta correlación entre la información filtrada a través del
canal lateral y la operación relacionada con la clave secreta, es lo que el SCA quiere descubrir.
2.2 Ataques por Análisis de Consumo y Electromagnético
Los SCA son posibles porque la mayoría de los sistemas electrónicos dejan escapar
información observable, que está correlacionada con las instrucciones y datos que ejecutan.
2. Información Preliminar y Estudios Previos
11
Por ejemplo, los microprocesadores al realizar una computación consumen tiempo y energía,
generan radiación EM, ruido sonoro [Sha'04], incluso disipan calor [Bro'09]; Y si disponen de
monitor para mostrar la información, radian luz [[Lou'02], [Kuh'02]]. Existen, por tanto, gran
cantidad de fuentes de fuga de información que pueden ser explotadas por atacantes. En
general, cualquier magnitud física que sea accesible, pueda ser medida y esté relacionada de un
modo u otro con la configuración interna o actividad de un dispositivo criptográfico, puede
ser utilizada por un enemigo como fuente de información para un ataque de este tipo.
Dentro de los SCA, y atendiendo al número de referencias bibliográficas existentes, el
que más interés ha despertado entre los investigadores es el que usa como fuente de
información el consumo de energía: Ataque por Análisis de Consumo (PA: Power Analysis
Attack). A pesar de ello, este trabajo se va a centrar en los ataques por Análisis
Electromagnético, pero dado que consumo de energía y radiación electromagnética están
íntimamente ligados, lo dicho para uno se puede extrapolar al otro en la mayoría de los casos.
Los sistemas criptográficos, por el hecho de consumir una energía para su
funcionamiento, dejan escapar información relacionada con la instrucción y dato que están
procesando. La realización de un ataque normalmente requiere relacionar los datos procesados
con la energía consumida, por lo que suele ser necesaria la utilización de un modelo de
consumo. Éste, se encarga de deducir el consumo a partir del dato que va a ser computado y
constituye uno de los principales elementos de un ataque. La calidad de su deducción influye
de forma determinante en su efectividad.
Cada sistema tiene un consumo característico, por lo que existen multitud de modelos
de consumo que describen este comportamiento de forma más o menos precisa [[Pee'07],
[Sta'06], [Bri'04], [Cha'02], [Li'10], [Gui'04], [Man'06]]. Dado que los atacantes normalmente
tienen poca información acerca del dispositivo criptográfico a atacar, y mayor precisión
implica mayor complejidad, se suelen usar modelos genéricos más sencillos, pero menos
precisos. Es importante recalcar, que en un ataque PA no importa tanto el consumo absoluto,
sino la diferencia relativa.
Así, en multitud de estudios realizados se establece que los sistemas criptográficos
dejan escapar información relacionada con el Peso de Hamming2 (HW) del dato que está
siendo procesado [[Koc'99], [Mes'99], [Cor'00], [May'00]]. De forma que un dato procesado
con un alto HW consumirá menos que uno con HW bajo. Sin embargo, últimamente la gran
mayoría de investigadores asumen la existencia de una relación lineal entre el consumo y la
2 Peso de Hamming (Hamming Weight): Número de bits que están a uno.
2. Información Preliminar y Estudios Previos
12
Distancia de Hamming3 (HD) existente entre un estado y el siguiente [[Bri'04], [Kel'98],
[Joy'05]]. Según [Joy'05], el modelo energético basado en el HW sólo es cierto para aquellos
dispositivos con precarga lógica. Además el HW se puede considerar un caso especial del HD
en el que el estado anterior o de referencia es cero:
( ) ( )
( ) ( ) ( )
(2.1)
Dado que la mayoría de los circuitos actuales están construidos usando puertas lógicas
basadas en tecnología CMOS, veamos por qué existe fuga de información en éstos, es decir,
por qué se produce correlación entre dato computado y energía disipada.
2.2.1 Consumo de Potencia en dispositivos CMOS
Los circuitos digitales actuales se construyen mayoritariamente a base de celdas lógicas
básicas implementadas con transistores. Existen diversas tecnologías para construir estos
bloques básicos, aunque en la actualidad la inmensa mayoría se fabrica con tecnología CMOS.
El inversor CMOS es el bloque más básico de esta tecnología. Dado que,
normalmente, las celdas lógicas CMOS se diseñan a partir de estructuras complementarias
similares, las disquisiciones hechas para este bloque serán representativas de la lógica digital
CMOS.
Se puede decir que un inversor CMOS prácticamente sólo consume energía cuando se
produce un cambio de su estado lógico tras el pulso de reloj. Es decir, su consumo depende
casi de forma exclusiva del número de conmutaciones. Mantener un estado estático requiere
un consumo prácticamente despreciable. Ese es el motivo por el cual, el consumo se
incrementa aproximadamente de forma lineal con la frecuencia. Otros parámetros como la
temperatura, la pendiente del ciclo de reloj, la tensión de alimentación, los glitches4, el ciclo de
trabajo o efectos de acoplamiento también influyen [Cha'99], aunque se suelen ignorar para
tener un modelo de consumo lineal más sencillo.
Se puede considerar que las puertas CMOS tienen dos tipos de fuentes de disipación
de energía distintas [Rab'03]:
3 Distancia de Hamming (Hamming Distance): Número de bits que cambian de un estado anterior, también llamado de referencia, al siguiente. Es decir, indica el número de transiciones requeridas para pasar de un estado al siguiente. 4 Fallos internos breves que se producen debido a la desincronización en la llegada de las señales de entrada a una celda combinacional.
2. Información Preliminar y Estudios Previos
La primera, de origen estático, es debida a las pequeñas corrientes de fuga de los
transistores (típicamente de 10nA a 10μA, no obstante esta corriente es función del
tamaño, por lo que en los últimos años está aumentando significativamente debido
al uso de estructuras cada vez más pequeñas).
La segunda, de origen dinámico, se produce durante las conmutaciones debido a
dos motivos:
La carga de las impedancias capacitivas: intrínsecas5 y extrínsecas6,
representadas por el condensador CL7 en la Figura 2.3.
Las corrientes de cortocircuito producidas por la conducción simultánea
durante un periodo de tiempo muy pequeño de los dos transistores nMOS
y pMOS.
Si analizamos estos consumos de forma cuantitativa, en general se puede considerar,
sin cometer un error considerable, que los circuitos CMOS únicamente consumen energía
durante la conmutación, debido al consumo dinámico. En estado estático (transiciones 0 0 y
1 1), las celdas únicamente disipan corriente de fuga, mientras que en estado dinámico
(transiciones 1 0 y 0 1), además, disipan las corrientes de carga, descarga y cortocircuito.
Véase la Figura 2.3.
Si se mide el consumo de energía de un dispositivo CMOS mientras conmuta, el
mayor pico de energía se produce durante la carga del condensador, es decir, durante la
conmutación 0 1. Durante el evento 1 0 el condensador se descarga a través del
5 Capacidades internas conectadas a la salida del bloque. 6 Capacidades parásitas de los cables y capacidades de entrada. 7 Se usa el modelo denominado C concentrada (lumped-C) para describir este consumo, el cual agrupa todas las capacidades presentes en un único condensador: CL.
2. Información Preliminar y Estudios Previos
14
transistor NMOS, y la única corriente que se puede medir en la fuente de alimentación es la
corriente de cortocircuito, que es menor. Si bien, se debe tener en cuenta, que la importancia
relativa de las fuentes de disipación depende de la escala de integración de la tecnología usada
[Sta'09a].
Para un chip CMOS típico estándar se cumple [Cor'00]:
Este comportamiento del consumo dinámico dependiente del valor del dato es lo que
origina las fugas de información y permite los ataques por Análisis de Consumo y
Electromagnético.
Curiosamente este proceder, a priori simple y ampliamente admitido por la mayoría de
los investigadores, no ha podido ser modelado hasta la fecha de forma genérica y satisfactoria.
Cada dispositivo tiene un modelo de consumo característico que debe ser caracterizado, y lo
que para unos funciona, para otros no. Únicamente los diseñadores hardware disponen de
herramientas de simulación precisas que modelan de forma exacta los circuitos, incluyendo
todos los elementos parásitos, y permiten determinar de forma precisa el consumo de los
dispositivos electrónicos. El problema es que éstas son muy complejas y requieren una gran
cantidad de recursos, por lo que típicamente se usan para los bloques más críticos. En su
lugar, se suelen utilizar modelos genéricos de consumo, más simples, pero que igualmente
permiten relacionar con una cierta precisión las conmutaciones con las trazas de consumo.
2.2.1.1 Modelo Consumo Distancia de Hamming (HD)
Dado que el consumo depende del número de transiciones 10 y 01, la idea de este
modelo es contar el número de transiciones que ocurren en un circuito digital durante un
intervalo de tiempo, y relacionar este valor con el consumo.
Si se asume que el consumo está relacionado con el HD del dato procesado, como
suponen [Bri'04], [Bev'03] y [Cha'99], entonces éste depende de la energía necesaria para
permutar los bits que cambian de un estado al siguiente. Esto implica que se requiere la misma
energía para permutar un bit de 1 a 0 que de 0 a 1, y que el consumo depende del estado
previo o de referencia, normalmente desconocido, que no tiene por qué ser cero, y que será el
mismo siempre que se produzca la misma manipulación de datos al mismo tiempo.
Basado en esto, se puede decir que el HD es un modelo muy apropiado para describir
el gasto de energía de buses, tanto de datos como de direcciones, así como de registros en
implementaciones hardware [Man'07]. Por consiguiente, en aquellos sistemas donde exista un
bus largo conectado a distintos componentes, el HD obtendrá buenos resultados, pues en
2. Información Preliminar y Estudios Previos
15
estos casos el consumo total estará influenciado de forma significativa por el bus, debido a su
alta impedancia capacitiva. También relacionará bien el consumo de registros en dispositivos
como FPGAs y ASICs, si se conoce los valores guardados en ciclos consecutivos de la señal
de reloj.
La simplicidad y rapidez de procesado del HD, hacen que, a pesar de sus estimaciones
poco precisas, sea un modelo ampliamente usado para simulaciones de consumo.
Como hemos dicho, el HD es un modelo genérico que considera a todos los bits
iguales desde el punto de vista de su consumo energético. Igualmente, considera a las
transiciones 10 y 01 energéticamente equivalentes. En cambio, si el atacante conoce la
contribución de cada uno de los bits o transiciones, podrá adaptar el modelo genérico creando
un modelo específico de su implementación, sin más que aplicar pesos a cada uno de los bits o
transiciones para representar su contribución al consumo total [[Pee'07], [Li'10]].
2.2.1.2 Modelo Consumo Peso de Hamming (HW)
Este modelo establece que el consumo de potencia de un dispositivo al procesar un
determinado dato, es proporcional al número de bits que son fijados a uno en el dato
procesado.
Si se establece que el consumo depende del HW del dato procesado, indirectamente se
está asumiendo que las conmutaciones 0 1 y 1 1 consumen la misma energía y que el
consumo no depende del estado anterior.
De todo lo anterior se puede deducir que el modelo HW simula el consumo de manera
muy burda. A pesar de ello, existen casos en los que este modelo es aplicable, como aquellos
sistemas donde existe una gran diferencia de consumo entre los eventos 0 1 y 1 0, o
donde existen buses con precarga a cero8. En general, este modelo se suele utilizar para
aquellos casos en los que el atacante no tiene información acerca de la configuración del
equipo bajo ataque (EUA), o cuando se desconocen dos valores consecutivos del procesado.
2.2.2 Radiación EM en dispositivos CMOS
Dado que el consumo de energía en un circuito CMOS es dependiente del dato
computado, es fácil demostrar que su radiación electromagnética también lo es. Al realizar las
medidas de campo EM a una distancia menor que aproximadamente la longitud de onda de
8 En este caso el HW es equivalente al HD.
2. Información Preliminar y Estudios Previos
16
la fuente partido por seis9 (zona de campo cercano), las señales pueden ser consideradas cuasi-
estáticas, por lo que la ley de Biot-Savart es aplicable:
(2.2)
Con la ayuda de ésta, se demuestra que el campo EM depende del dato procesado,
debido a que campo e intensidad de corriente lo son, y que la orientación del campo depende
de la dirección de la corriente.
Por otro lado, con la ley de Faraday, se demuestra que cualquier cambio en el campo
alrededor de una sonda de medida producirá un voltaje en la misma:
(2.3)
∫
(2.4)
2.2.3 Técnicas de Análisis de datos
Los ataques criptográficos hacen uso de pequeños desequilibrios estadísticos en el
estado interno de la clave. Incluso las medidas obtenidas por canales laterales con una pequeña
correlación con algún estado interno de un bit, pueden ser usadas para romper un sistema. Es
en estos procesos donde las técnicas de análisis de datos son más útiles, llegando a ser en
algunos casos imprescindibles.
Las técnicas de procesado y análisis de datos permiten mejorar de forma considerable
la eficiencia de los SCA conocidos, y en algunos casos los hacen factibles. Según [Schi'05],
pueden llegar a aumentar la eficiencia de un ataque hasta en un factor 50.
Estas técnicas se suelen aplicar en los ataques diferenciales, donde se analizan un gran
número de señales, normalmente de pequeño valor, que suelen estar debilitadas por errores de
medida y otros ruidos. Su función es eliminar este ruido y descubrir la información oculta. De
hecho, la mayoría de los SCA implementados hacen uso de diferentes herramientas
estadísticas para intentar explotar al máximo la información contenida en los datos filtrados y
capturados.
9 Exactamente a /2, siendo
√ , donde: c=3·108m/s, f=frecuencia (Hz) y r=Permitividad relativa (1 en
el vacío).
2. Información Preliminar y Estudios Previos
17
El ruido es el principal obstáculo a tratar a la hora de implementar un SCA, y en
general, en cualquier aplicación de procesado de señal. En el contexto de los SCA se tienen en
cuenta varios tipos de ruido:
Físico → Presente en el propio ambiente (EMI conducida o radiada, ruido
cósmico etc.).
De Medida → Debido al procesado de la señal (muestreo) y a las herramientas
utilizadas (ruido generado por la fuente de alimentación, glitches, ruido de
cuantificación del osciloscopio, señal de reloj inestable, tensión de alimentación
variable etc.).
De Ajuste al Modelo → Consecuencia de que el modelo de consumo definido
para el EUA no es totalmente adecuado.
Del dispositivo → Generado por el EUA y no dependiente del dato u operación
realizada (ruido conmutación, ruido corrientes fuga etc.).
De algoritmos → Producido por valores no tenidos en cuenta en una
implementación.
Todas estas perturbaciones afectan a la eficiencia del SCA y como consecuencia, se
reduce la cantidad de información filtrada y aumenta el número de medidas necesarias para
llevarlo a cabo con éxito.
La relación señal a ruido: SNR, comúnmente usada en procesado de señales,
extrapolada a los SCA, permite cuantificar la cantidad de información que se escapa por un
canal lateral. Se define como la relación entre la señal útil que queremos medir y el ruido
presente en una medida:
( )
( ) (2.5)
Cuanto mayor sea el SNR, más información se podrá extraer de un dispositivo.
La mayoría de las técnicas utilizadas para el análisis de las medidas provienen de la
teoría de procesado de señales. Ésta se encarga del modelado, detección, identificación y
utilización de patrones y estructuras en una señal. Para ello utiliza como herramienta base la
teoría de procesado estadístico de datos, que modela la distribución aleatoria de señales y el
entorno en el que se propagan. El fin es extraer información de una señal que puede tener
ruido, estar distorsionada y/o incompleta, aplicando modelos estadísticos.
2. Información Preliminar y Estudios Previos
18
Los métodos se pueden clasificar en cuatro grupos:
No paramétricos → Se caracterizan por no utilizar un modelo paramétrico de la
generación de la señal o de la distribución estadística. En su lugar, la señal es
procesada como una forma de onda o una secuencia de dígitos. Algunos ejemplos
de este tipo de análisis son:
- Filtrado Digital.
- Análisis de Fourier.
- Interpolación.
- Estimación del Espectro de Energía.
- Etc.
Basado en Modelos → Utilizan un modelo paramétrico del proceso de generación
de la señal para describir su estructura y patrón previsibles, y así, intentar predecir
valores futuros de la señal. Un ejemplo es la Predicción Lineal.
Estadísticos Bayesianos → Permiten modelar la distribución de señales aleatorias,
las cuales solo pueden ser descritas en términos estadísticos y de probabilidad de
funciones.
Redes Neuronales → Son combinaciones de procesado adaptativo no lineal y
procesado de señal en neuronas.
2.3 Estudios Previos
En este capítulo se van a pormenorizar las principales técnicas de ataque por Análisis
Electromagnético (EMA) publicadas hasta la fecha de redacción de este documento. Dado
que, como ya se ha demostrado, existe una estrecha relación con los ataques por consumo
energético (PA), y las técnicas implementadas para uno, pueden ser adaptables al otro en la
mayoría de los casos, se van a exponer también las técnicas basadas en el análisis del consumo
de energía.
Por otro lado, al ser el ataque por consumo eléctrico, PA, muy popular entre los
investigadores, la mayoría de las técnicas documentadas tienen su origen en este canal lateral.
Por este motivo se presentarán en primer lugar las técnicas PA y a continuación las EMA.
2.3.1 Ataques por Análisis de Consumo (PA)
El consumo de potencia de un dispositivo criptográfico puede proporcionar mucha
información acerca de las instrucciones ejecutadas y los datos involucrados. De hecho, los PA
han resultado ser efectivos y de probada eficacia en la mayoría de los dispositivos:
2. Información Preliminar y Estudios Previos
19
Microcontrolador 8 bits [Schu'04], 32 bits [Geb'06], DSP [Geb'03], FPGA [Sta'04a], ASIC
[Ors'04], Microprocesador soft-core [Lum'13], Tarjeta Inteligente [Mes'02] etc. y algoritmos
criptográficos: DES [Koc'99], AES [Ors'04], SEED [Yoo'04], ARIA [Ha'05], RSA [Jaf'06],
ECC [Cor'99] etc. Este ataque se basa en el hecho de que el consumo de energía necesario
para manipular un bit a 1 es distinto del necesario para manipularlo a 0.
La idea fue introducida por Kocher y otros en 1999 con su Ataque Diferencial por
Consumo (Differential Power Analysis: DPA) [Koc'99], donde se conseguía descifrar la clave
usada en el algoritmo de encriptación DES sin necesidad de ningún tipo de conocimiento
acerca del dispositivo usado. Éste, consiste en realizar la encriptación de una serie larga de N
datos (textos planos) aleatorios conocidos: Pi., i=1…N y capturar las correspondientes curvas
de consumo asociados a cada uno de ellos Ti = W(Pi), obteniendo así una serie de duplas
Texto – Traza Consumo: Pi , Ti. Por otro lado se selecciona una función de selección D
perteneciente al algoritmo de encriptación, que tome como parámetros de entrada un texto Pi
conocido y una parte de la clave estimada Ks, y genere como salida un bit b: D(Pi , Ks) = 1 ,
0. El adversario hace una suposición de parte de la clave Ks y usa la función de selección D
para dividir la serie de N trazas en dos grupos: uno que contiene las trazas de los textos que
hacen la función de selección D(Pi , Ks) = 1 y otro con el resto de trazas cuyos textos
asociados hacen que D(Pi , Ks) = 0:
( )
( )
Por último se realiza la media de cada uno de los grupos y se restan ambas:
( ) ∑ ( ) ( )
∑ ( )
∑ ( ( )) ( )
∑ ( )
(2.6)
Si la suposición hecha para la clave: Ks es correcta y el número de textos aleatorios es
suficiente y siguen una distribución normal, la diferencia ΔD(b) producirá un pico en el instante
en el que el bit b es manipulado, puesto que la función está reflejando algo que realmente está
ocurriendo en el dispositivo. Si la suposición es incorrecta, la diferencia tenderá a 0, ya que los
textos escogidos son aleatorios según una distribución normal, y las aportaciones de unos
textos se compensarán con las de otros. No obstante, en la práctica puede ocurrir que
aparezcan varios picos a distintos tiempos siendo la clave elegida Ks correcta, o producirse
algunos picos aunque la suposición sea incorrecta debido a la existencia de correlación entre el
bit y la salida de alguna función. Por ejemplo, en el caso del AES la función Sbox (véase
2. Información Preliminar y Estudios Previos
20
Anexo 1 para más información) suele tener una mayor predisposición a ello. Es lo que algunos
autores, como [[Bri'04], [Can'05], [Le'06]], denominan picos fantasmas.
A partir del estudio original de Kocher, han surgido diversos artículos sobre DPA
aplicado a diversos algoritmos criptográficos, incluyendo AES y DES, y sobre diversos
dispositivos criptográficos. Por ejemplo, Golic y otros en [Gol'02] describen un ataque sobre
AES. En [Sta'04b] Standaert y otros, definen un ataque sobre una FPGA que ejecuta AES. En
[Cor'99] se aborda un criptosistema basado en la Curva Elíptica etc.
Por otro lado, algunos autores se han centrado en mejorar el DPA. De esta forma, han
surgido los multi-bit DPA. Así, en [Mes'02], Messerges y otros se introducen los d-bit DPA,
que consisten en dividir las trazas de consumo en dos grupos usando una función de selección
que tiene como salida d bits en lugar de un bit. Por consiguiente, para una función de selección
que genera una serie de d bits: D(Pi , Ks)= [b1, b2,…bd] se crean dos grupos. Uno que contiene
las trazas de los textos que generan a la salida de la función D series con menos de la mitad de
los bits a 1 y otro con los textos que generan la mitad o más de bits a 1:
( ( )) ( )
( ( )) ( )
Bevan y otros en [Bev'03], implementan un 4-bit DPA, que se obtiene como resultado
de realizar cuatro mono-bit DPA, como el original de Kocher, a cada uno de los 4 bits de la
serie elegidos. La decisión final se hace en función de la suma de los resultados obtenidos en
los cuatro bits. El método es eficiente sólo si los valores de los 4 bits influyen en el consumo
de energía al mismo tiempo y del mismo modo. Algo que no puede ocurrir en
implementaciones software.
La generalización de este ataque no se consiguió hasta que en [Le'06], Le y otros,
proponen el denominado DPA por división (Partitioning Power Analysis: PPA), a partir de
una idea mencionada en [Akk'00]. En éste, las trazas de consumo son divididas en d+1 grupos
de acuerdo a su HD respecto al estado anterior, o estado de referencia R:
( ( )) ( )
La decisión final se obtiene de acuerdo a la suma y ponderación de los valores medios
de cada grupo:
2. Información Preliminar y Estudios Previos
21
∑ ( )
∑ ∑
(2.7)
Donde aj son las ponderaciones determinadas mediante una función de selección
basada en bits conocidos como los textos de entrada. En función de estas ponderaciones se
pueden obtener los diferentes tipos de ataques multi-bit.
Coron y otros investigadores, mejoraron el ataque reduciendo la posibilidad de obtener
falsos positivos con la normalización de la diferencia de medias mediante la desviación
estándar [Cor'00]:
( )
( )
( )
√ ( )
( )
(2.8)
De forma similar, Gebotys define la clave correcta como aquella que maximiza la
diferencia de medias absoluta menos dos veces su desviación estándar [Geb'06]:
( ) |
| √ ( )
( )
(2.9)
En su estudio [Agr'03], Agrawal y otros sugieren usar el principio de máxima
probabilidad, en lugar de la diferencia de medias propuesto por Kocher, para determinar la
clave correcta. Este procedimiento minimiza la posibilidad de cometer un error, si bien, no es
concluyente puesto que depende de unos datos obtenidos aleatoriamente.
En [Bev'03], Bevan y Knudsen proponen simular un DPA para todas las posibles
claves, y compararlos con un DPA real mediante un test de mínimos cuadrados. Aquella
simulación que se ajuste más a la real, será la de la clave correcta.
Jaffe, en [Jaf'06], muestra que una selección de los textos de entrada permite atacar al
AES mediante una función de selección que tiene como objetivo bits de salida de la función
MixColumns (véase Anexo 1), en lugar de bits de la primera o última ronda10.
10 La función de selección usada para un DPA, debe tener como salida un valor intermedio del algoritmo criptográfico que dependa de un dato conocido no constante y de una parte de la clave. Para el caso concreto del AES, esto solo se produce en la primera ronda y en la última (véase Anexo 1).
2. Información Preliminar y Estudios Previos
22
En el año 2000, Messerges y otros muestran un ataque diferencial mejorado
denominado DPA de alto orden (High-order DPA) [Mes'00a], que permite atacar sistemas
protegidos contra los ataques de primer orden11. Éste consiste en buscar relación entre el
consumo de dos o más puntos de la traza (según el orden del ataque) a distintos instantes de
tiempo y los bits de la clave bajo ataque. Es decir, mientras que en un DPA de orden uno se
analizan las propiedades estadísticas individuales de cada uno de los puntos de la traza, en un
orden superior se investigan las propiedades estadísticas conjuntas de varios puntos. Esto
demanda, como es lógico, una mayor capacidad de procesamiento y almacenamiento; Además
de un conocimiento preciso del algoritmo de encriptación para conocer en qué puntos puede
ser aplicada la estadística conjunta.
Teóricamente, un DPA puede ser de cualquier orden deseado, pero al aumentar éste, la
complejidad aumenta rápidamente con él. Por ese motivo, la mayoría de los autores que han
seguido el camino de Messerges optan por un orden dos. Así Waddle y otros autores en su
artículo [Wad'04], definen un ataque de segundo orden denominado FFT 2DPA, al que se le
ha incluido una etapa de preprocesado, que consiste en realizar una autocorrelación
( ( ( ) )) a las trazas. Joye, en [Joy'05], analiza de forma más extendida los
DPA de segundo orden, incluyendo diversas generalizaciones etc.
Chari y sus compañeros, revelaron en [Cha'02] un nuevo ataque al que titularon
Ataque por Modelado (Template Attacks), a partir de la idea inicialmente propuesta en
[Fah'99]. Esta clase de ataque se compone de dos etapas: Una primera fase de caracterización
o modelado, en la que se construye una base de datos con los modelos del ruido generado por
el equipo bajo test, o EUT, para cada una de las posibles claves de acuerdo a una distribución
Multivariable-Gaussiana, utilizando para ello un dispositivo experimental idéntico o parecido
al EUA. Y una segunda etapa, en la que, a partir de los modelos obtenidos en la primera fase,
se detecta la clave mediante una función de detección basada en probabilidad. Según los
autores, supone el SCA más potente en un sentido teórico, ya que permite atacar a un
dispositivo realizando una única medida. En contra, es un ataque poco práctico, ya que
requiere el modelado previo de todas las posibles claves y textos de acuerdo a su perfil
estadístico de fuga de información. Lo que implica calcular, para cada posible par de dato y
clave (pi , kj), un vector de medias y una matriz de covarianza12. Por ejemplo, para el caso del
11 Protegidos mediante contramedidas como máscaras, duplicación, suma de curvas, interrupciones aleatorias, variación frecuencia operación etc. Para más detalle véase: [[Akk'01], [Geb'06], [Cha'99], [Mes'00b], [Mes'01], [Gol'02], [Cor'99], [Gou'99], [Char'05]]. 12 La matriz de covarianza, crece cuadráticamente con el número de puntos de la traza y además debe ser invertida, por ese motivo es necesario, seleccionar algunos puntos denominados comúnmente en la literatura “de interés”, que contengan la máxima información para definir el modelo.
2. Información Preliminar y Estudios Previos
23
algoritmo DES supone 212= 4096 modelos, pues existen 26 opciones de textos y 26 opciones
de claves. Así mismo, este método presupone que el consumo del EUA, se distribuye según
una función Multivariable-Gaussiana.
A la vista del potencial de los ataques por modelado, muchos autores han orientado
sus esfuerzos a estudiar este ataque, surgiendo aplicaciones y desarrollos nuevos. Así, Agrawal
y otros proponen extender el concepto de modelado a los DPA, desarrollando el denominado
Ataque DPA Basado en Modelado (Template-Based DPA Attack)13 [Agr'03]. Éste consiste
en un DPA, en el que la selección de la clave correcta se realiza calculando las probabilidades
de que las trazas medidas, , estén asociadas a cada una de las posibles
claves , . Para ello, modela el consumo del dispositivo al computar el valor
intermedio objetivo para cada una de las posibles claves, y a partir de estos modelos calcula las
probabilidades. La clave que presente una mayor probabilidad, será la correcta. Este método,
continúa padeciendo el problema de que su efectividad depende de la selección de los puntos
de interés a la hora de calcular los modelos.
Siguiendo una línea de investigación similar al DPA por modelado, Schindler y otros
formulan el ataque Estocástico (Stochastic Attack), [Schi'05]. Básicamente se diferencia del
DPA por modelado en que, en lugar de usar la media y la matriz de covarianza de las señales
medidas para modelar o estimar el consumo de energía, utiliza funciones predefinidas
moduladas con un peso, que varía de un dispositivo a otro y que se obtienen mediante su
caracterización. En la fase previa se determinan los pesos de las funciones predefinidas y la
distribución de ruido y en la segunda se detecta la clave. El inconveniente de este método es
que exige la selección de una función óptima que describa el consumo de energía, por lo que
en el mejor de los casos, será tan potente como un DPA por modelado.
En [Hos'11], los autores desarrollan la misma idea, pero apoyándose en otra técnica de
clasificación y selección basada en el algoritmo de clasificación: Least Squares Support Vector
Machines. En general, los resultados obtenidos no son mejores y éstos dependen del Kernel
elegido.
Para hacer el DPA por modelado más práctico y efectivo, otros autores han realizado
mejoras. Así, Agrawal y otros en [Agr'05], exponen un ataque que se centra únicamente en
cuatro bits de salida. De esta forma el número de posibles modelos es mucho menor: 24=16
modelos. En cambio, se requiere más de una medida para obtener la clave. Mangard, Oswald y
Popp plantean el uso de modelos reducidos, en los que se prescinde de calcular la matriz de 13 El ataque por modelado presentado por Chari y otros, se implementa utilizando una única traza, por lo está englobado dentro de los ataques Simples. En otras palabras, se podría definir como un SPA basado en modelado.
2. Información Preliminar y Estudios Previos
24
covarianza. Ésta, simplemente se sustituye por una matriz identidad. También proponen
estrategias para reducir el número de modelos, como centrarse en los bits de salida de una
función intermedia del algoritmo o basarse en el modelo de consumo asociado al dispositivo
[Man'07]. Otros, en cambio, se centran en el método para elegir los puntos de interés de la
señal a la hora de calcular la matriz de covarianza [[Rec'04], [Gie'04], [Arc'06]] o en la
simplificación de la función de detección de la clave correcta [Schi'05].
En otro término se sitúan los autores que se han centrado en la combinación de
diversos ataques: los ataques Multicanal (Multi-channel Attacks) como Agrawal y otros, que
combinan un DPA con un DEMA [Agr'03].
Schramm y otros autores desarrollan una nueva técnica: el Ataque por Colisión
(Collision-Attack) [Schr'03]. Un algoritmo sufre una colisión interna, si al procesar diferentes
argumentos de entrada se genera un mismo valor intermedio. Como consecuencia, el
dispositivo genera dos trazas parciales de consumo idénticas o muy similares, que pueden ser
detectadas mediante herramientas estadísticas de comparación como la correlación cruzada.
Según los autores, para el caso concreto del AES, las colisiones dependientes de la clave
pueden ocurrir a la salida de la operación MixColumns [Schr'04] (véase Anexo 1). Una vez son
detectadas varias colisiones, se pueden establecer relaciones entre los textos que las generan y
la clave, permitiendo al atacante deducirla. La ventaja principal de este ataque, sin considerar
su eficiencia, es que de forma general se puede aplicar a la mayoría de los algoritmos
criptográficos y su detección es relativamente más fácil, puesto que la colisión afecta a una
secuencia de instrucciones14, en lugar de a un instante de tiempo particular. Por contra, en
algunos casos requiere de un setup complejo, es fuertemente dependiente del ruido y su fase
de obtención de la clave es complicada.
Otros autores que han seguido los pasos de Schramm, intentando mejorar el ataque
han sido: Moradi [Mor'10] donde se presenta un método de identificación más eficiente
basado en la media de las trazas aplicado sobre una implementación de AES resistente a los
ataques de primer orden; Bogdanov [Bog'07], desarrolla un método más eficaz, que se sustenta
en la idea de la colisión interna generalizada, que se produce en cualquiera de las operaciones
Sbox del AES al introducir dos bytes iguales; También centrados en AES, Ye y Eisenbarth
[Ye'12], introducen las colisiones grandes, que son aquellas que se producen en cuatro bytes
14 El valor intermedio se procesa, después normalmente se almacena en memoria, y más adelante es leído para, si se da el caso, ser sometido a más transformaciones. Como consecuencia, se producen varias colisiones internas que facilitan su detección.
2. Información Preliminar y Estudios Previos
25
consecutivos del texto, eligiendo para ello, textos con todos los bytes constantes excepto los
de la diagonal principal del estado (bytes 1, 6, 11 y 16, véase Anexo 1).
En [Bri'04], Brier y otros autores proponen otra nueva variante de ataque más
eficiente, bautizada con el nombre de Análisis de Correlación de Energía (Correlation
Power Analysis: CPA). Éste se basa en la dependencia existente entre el consumo de energía y
el HW o HD del dato procesado. Según Brier y sus compañeros, la relación entre el consumo
de energía y el HD del dato procesado es lineal, de forma que la clave correcta es aquella que
maximiza el factor de correlación. La decisión final se tomará, por tanto, en función del factor
de correlación :
∑ ( ) ∑ ∑ ( )
√ ∑ (∑ ) √ ∑ ( )
(∑ ( )) (2.10)
A partir de la aparición del CPA, gracias a su eficiencia y facilidad de aplicación [Li'10],
muchos autores han seguido su corriente, intentando mejorarlo. Así, en [Sch'10], Schimmel y
otros autores exponen un CPA mejorado al que denominan Análisis Frecuencial por
Correlación de Energía (CPFA). Consiste en un CPA al que se le añade un preprocesado
previo que consiste en calcular la Densidad Espectral de Potencia de las trazas. La Correlación
se calcula entre los consumos de energía teóricos calculados mediante HW y cada uno de los
componentes frecuenciales de las trazas. Dado que la FFT es una operación lineal, y un
cambio de amplitud en el dominio del tiempo produce el mismo cambio en el dominio de la
frecuencia, la correlación es posible entre el dominio del tiempo y de la frecuencia.
Algunos investigadores se centran en mejorar el modelo de consumo, como en [Li'10],
donde se presenta un CPA mejorado en el que se utiliza un nuevo modelo de consumo basado
en el HD con la distribución de probabilidad del HW: √ .
Hutter y otros, en [Hut'12], muestran un ataque que utiliza la diferencia de consumo
de energía de dos dispositivos criptográficos idénticos al procesar textos elegidos. Con este
sistema, el ruido ambiental y el consumo estático y constante del dispositivo son cancelados,
mejorándose así el ataque: señales con menos ruido, más sensitivas y con una relación señal a
ruido menor. Según los autores, en relación a un CPA, supone un ataque más eficiente y con
una relación señal a ruido mejor. Tiene el inconveniente que utiliza dos dispositivos
criptográficos idénticos que se deben ejecutar exactamente de forma síncrona (con un reloj
externo común o un reloj interno muy estable) y que requiere de un proceso de calibrado y
selección de textos que permitan obtener valores intermedios complementarios en ambos
equipos.
2. Información Preliminar y Estudios Previos
26
Otros autores han dedicado sus esfuerzos a estudiar sistemas protegidos contra
ataques de primer orden. Es el caso de Waddle y otros [Wad'04], que desarrollan un ataque
para equipos protegidos con máscara15, denominado Zero-offset DPA, en el que se define el
consumo de energía como: ( ) ( ( ) ( )) , donde є es una constante de
proporcionalidad, W(M) es el HW de la máscara aleatoria, W(Y) es el HW del dato
dependiente de la clave enmascarado por M y, finalmente, N es el ruido gaussiano. También,
en el año 2005, Mangard y otros autores, descubren que en los circuitos convencionales
CMOS, el número total de conmutaciones de la línea de datos de puertas lógicas con máscara,
está correlacionado con las señales de entrada y salida sin máscara. A partir de este dato
desarrollan el Toggle-Count DPA [Man'05a]. El mismo autor junto a Schramm, proponen en
[Man'06] el Zero-Input DPA, que se basa en el hecho de que la salida de la Sbox del AES,
tiene un consumo mínimo si la entrada x es cero. Definen así el siguiente modelo básico de
consumo:
( )
( )
2.3.2 Ataques por Análisis Electromagnético (EMA)
Quisquarter y otros en [Qui'01], fueron los primeros en presentar un estudio sobre los
ataques EMA. En su publicación, basada en tarjetas inteligentes, propusieron que un
procesador puede dejar escapar información, no sólo por consumo de potencia, sino también
por radiación electromagnética. Según ellos, desde el punto de vista de un ataque no intrusivo,
un EMA puede ser más preciso que un PA. También sugirieron que los EMA son fuertemente
dependientes de la arquitectura del chip y el conocimiento del circuito interno del procesador
facilita el trabajo. Para medir la radiación EM usaron tres espiras planas, dos iguales y una de
mayor tamaño situada sobre el chip. A su juicio, los mejores resultados se obtienen con sondas
de bajo factor de calidad, pues permiten medir el campo global. Los autores no presentaron
resultados experimentales en este trabajo.
Gandolfi y otros en [Gan'01], demostraron experimentalmente, que los puntos de
mayor intensidad de radiación son aquellos situados cerca de la CPU, buses de datos y líneas
de alimentación; Siendo la más importante, desde el punto de vista de la información que
contiene (la más correlacionada con el dato procesado), la que proviene de la CPU. Los
autores realizaron las medidas de radiación EM sobre un Microcontrolador CMOS de 8 bits
15 Es un valor aleatorio que aplicado a un valor intermedio del algoritmo mediante alguna operación matemática, intenta conseguir que el consumo no esté correlacionado.
2. Información Preliminar y Estudios Previos
27
que ejecutaba DES, utilizando de forma simultánea varias sondas pequeñas fabricadas por
ellos mismos, compuestas de espiras de hilo de cobre de varios diámetros entre 150 y 500
micrómetros y una antena de campo lejano, demostrando así, que es posible realizar ataques
puramente no invasivos. En el estudio se recalca la importancia de situar la sonda lo más cerca
posible del EUT, y utilizar sondas muy pequeñas de tamaño similar al área del chip bajo
estudio, para de este modo, disponer de un ancho de banda superior y capturar la mayor
cantidad de campo posible. Por otro lado, también compararon los DPA y DEMA, llegando a
la conclusión de que el DEMA es más efectivo (requiere un menor número de medidas),
puesto que aunque es más ruidoso, genera una relación señal a ruido mayor.
En [Qui'02a], Quisquarter y Samyde presentaron un diccionario de instrucciones con
sus trazas de consumo eléctrico / electromagnético y usaron técnicas de correlación y redes
neurales, para reconocer las instrucciones ejecutadas por un procesador.
Agrawal y otros en [Agr'02], consideran la señal captada por un sensor EM como un
conglomerado de señales de distintos tipos, amplitudes y contenido de información. En este
estudio categorizaron a las radiaciones EM de Voluntarias o directas e Involuntarias. Las
voluntarias son aquellas que se generan como consecuencia de flujos de corriente, mientras
que las involuntarias son señales moduladas AM y FM que tienen su origen en acoplamientos
con componentes cercanos. De acuerdo a los autores, las emanaciones involuntarias son más
fáciles de atacar y más efectivas que las directas, y dentro de las involuntarias, las AM más que
las FM. Además, algunas de ellas tienen mejor propagación que las directas, lo que permite ser
captadas sin la necesidad de realizar un ataque invasivo. Según ellos, los mejores resultados
para la captura de la radiación EM se obtienen utilizando sondas de campo cercano o antenas
colocadas lo más cerca posible del EUT o al menos sin superar el campo cercano
(aproximadamente un sexto de la longitud de onda de distancia), recalcando el uso de metales
altamente conductores como plata o cobre. No obstante, también se pueden captar
emanaciones a distancias superiores. Además, se demostró que con un equipo de bajo coste se
podían realizar medidas bastante eficaces, y presentaron un ataque práctico a una tarjeta
inteligente con DES y reloj externo a 3.68Mhz, utilizando, a diferencia de Gandolfi en
[Gan'01], una única sonda y demodulando la señal EM, captada a diferentes frecuencias
intermedias correspondientes a armónicos de la frecuencia del reloj.
En [Car'04] Carlier y otros, realizaron un ataque sobre una implementación hardware
de AES en FPGA, donde todos los bytes del texto se procesan en paralelo. Para ello utilizaron
sondas fabricadas con hilo de cobre bobinado, compuestas por una serie de espiras de un mm.
de diámetro, situadas lo más cerca posible de la FPGA. Comprobaron que para una posición
2. Información Preliminar y Estudios Previos
28
específica de la sonda, sólo algunos bits podían ser atacados. Esto explica por qué el DEMA
no es afectado por el procesamiento en paralelo, y sí el DPA.
En [Geb'05a] Gebotys y otros, introducen un nuevo tipo de ataque denominado
Análisis Diferencial de Frecuencia (Differential Frequency Anlysis: DFA) y lo aplican a dos
dispositivos criptográficos que ejecutan AES: una PDA y un Microcontrolador ARM
Integrator/C7TDMI. Éste, es una variación del DPA original presentado por Kocher, y
consiste en realizar los cálculos diferenciales sobre las señales en el dominio de la frecuencia,
calculando para ello la densidad espectral diferencial de potencia de las señales. La principal
ventaja de este tipo de ataque respecto al DPA o DEMA, es que no requiere un alineamiento
previo de las señales a tratar, uno de los principales problemas a la hora de realizar medidas
sobre dispositivos reales. En cambio, tiene como elementos en contra que no permite
determinar el instante de tiempo concreto en el que se produce la correlación, por lo que no se
pueden identificar las operaciones dependientes de la clave. Por otra parte, si la traza captada
es demasiada larga algunos picos correspondientes a eventos rápidos pueden pasar
desapercibidos [Sch'10].
La misma autora en [Geb'05b], propone un ataque al que denomina Análisis por
Espectrograma Diferencial, que es básicamente un DFA, con la salvedad de que, en lugar de
calcular en el preprocesado la densidad espectral diferencial de potencia, obtiene el
espectrograma16 de las trazas, pero no se especifican detalles de cómo seleccionar una ventana
apropiada. También en [Geb'08a], analiza las emisiones de una PDA y realiza un DEMA
utilizando la Densidad Espectral de Potencia. Éste, requiere una fase de preprocesado en el
que se obtienen patrones de emisión, utilizando un dispositivo modelo y técnicas de
truncamiento.
En su estudio, Hodgers y otros, [Hod'11], presentan un ataque similar al DFA,
denominado Ataque por Densidad Espectral de Potencia con Ventana Variable (Variable
Window Power Spectral Density Attack) el cual permite evitar contramedidas que varían el
tamaño de las trazas captadas.
16 Espectrograma: Permite conocer la energía del contenido frecuencial de la señal a lo largo del tiempo
3. Evaluación de la Seguridad
29
Capítulo 3
EVALUACIÓN DE LA SEGURIDAD
La caracterización de un dispositivo en función de su seguridad, es algo que todavía no
se ha logrado de forma óptima y robusta. Este hecho puede no resultar significativo en
determinados equipos. Sin embargo, en el caso de los dispositivos embebidos de bajo
consumo implementados en equipos portátiles, sí tiene importancia. Éstos suelen almacenar,
enviar, recibir y manipular información sensible, por lo que el hecho de que el dispositivo
carezca de una mayor o menor seguridad contrastada, es un factor a tener en cuenta a la hora
de su adquisición y uso.
Por tal motivo, esta tesis se centra en el análisis de la seguridad inherente ante los SCA
de cuatro microcontroladores actuales de propósito general, cuya principal aplicación son los
dispositivos embebidos de bajo consumo.
Todos los microcontroladores a estudiar son de 32 bits, a excepción del primero, que
es de 8 bits y está basado en una arquitectura 8051 mejorada denominada CIP-51. El segundo,
el popular ARM7TDMI, con la arquitectura ARMv4T. Y los dos últimos son dos ARM
Cortex M3, uno de ellos con especificación de bajo consumo. Éstos, pertenecen a la familia
Cortex M de ARM, una de las tres familias que utiliza la arquitectura ARMv7 con distinta
especificación:
Cortex A (ARMv7-A): diseñada para aplicaciones complejas, como sistemas
operativos que requieren altas capacidades de procesamiento y memoria.
Cortex R (ARMv7-R): diseñada para aplicaciones embebidas en tiempo real.
3. Evaluación de la Seguridad
30
Cortex M (ARMv7-M): diseñada para aplicaciones de bajo coste, rendimiento
eficiente y bajo consumo.
Hasta ahora, en la literatura no se había analizado de forma comparativa la seguridad
de microcontroladores de bajo consumo orientados a aplicaciones embebidas. En [Geb'06] se
estudia un microcontrolador ARM7, que en ese momento se considera un dispositivo de bajo
consumo pues su alimentación se realiza a 3.3V, en lugar de los habituales 5V. Y en [Tiu'05],
los autores se dedican a analizar una PDA, aunque no dan referencias acerca de su
configuración interna ni modelo y/o fabricante. En [Ken'12] se analizan tres dispositivos: dos
Smartphone y una PDA, también sin dar detalles acerca de los mismos. Sin embargo, en el
artículo, únicamente se verifica la vulnerabilidad de los equipos a los SCA sin realizar un
estudio más exhaustivo ni comparativo.
La evaluación de la vulnerabilidad, o resistencia de un dispositivo a los SCA, es un
tema muy en boga, sobre todo desde la propuesta del NIST para el desarrollo de una
metodología estándar [Nist'11]. Existen por un lado los métodos que se basan en comprobar
la resistencia del equipo ante una serie de ataques conocidos, como el Common Criteria
[CC'12]. Y por otro lado, se encuentran las técnicas que intentan detectar la presencia de
cualquier tipo de información en las trazas que pueda ser utilizada por un SCA, sin necesidad
de ningún tipo de conocimiento acerca del dispositivo [[Goo'11a], [Jaf'11], [Chat'10],
[Chot'11]]. Tal es el caso de la metodología propuesta por Goodwill [[Goo'11a], [Goo'11b]],
que utiliza la técnica basada en la diferencia de medias originalmente utilizada por Kocher para
el DPA [Koc'99]. Aun así, todavía no hay una conclusión clara. La primera estrategia resulta
ser poco práctica y tediosa, pues exige comprobar la respuesta del dispositivo ante diversos
ataques y su actualización constante con los nuevos ataques descubiertos. En el caso de la
segunda, las metodologías propuestas todavía tienen limitaciones, a la espera de que las
técnicas estadísticas evolucionen (para más detalle véase [Math'13]).
Por ello, en este caso para realizar en este trabajo una evaluación de la seguridad
inherente a los SCA de los dispositivos seleccionados, se ejecutará un código de encriptación
en ellos sin ningún tipo de contramedida y se verificará la cantidad de información filtrada a
través de alguna magnitud física; O dicho de otro modo, se comprobará la resistencia que
ofrecen a un ataque, que más adelante seleccionaremos.
A continuación, se describen los distintos elementos seleccionados para llevar a cabo la
evaluación propuesta.
3. Evaluación de la Seguridad
31
3.1 Algoritmo de Encriptación
El código de encriptación que se utilizará para la evaluación, es el Estándar Avanzado
de Encriptación: AES, principalmente por tres motivos. Primero, es el sistema de cifrado de
información más usado [[Ska'11], [WikAES'13], [Man'06]]. De hecho, numerosos programas lo
incorporan para encriptar datos, tales como WinZip, WinRAR, Windows XP, Vista, 7, 8,
Phone 8, Server 2012, Mozilla Firefox, Google Chrome etc. [Nist'13]. Incluso el gobierno de
EE.UU. desde el 2003, permite su uso para cifrar información no clasificada súper secreta. Por
otro lado, su diseño está orientado a la optimización de los recursos [Dae'99], por lo que es
perfecto para una aplicación embebida donde los recursos están limitados. Y por último, su
descripción matemática es sencilla, así como su implementación en cualquier entorno. En el
Anexo 1 se detalla más información acerca de este algoritmo de cifrado.
En cuanto a qué versión de AES utilizar, 128, 192 o 256 bits, se ha decidido
implementar la versión más ampliamente utilizada 128/10, que recurre a una clave de longitud
128 y 10 rondas. En principio, lo lógico sería pensar que el nivel de seguridad del algoritmo es
proporcional a la longitud de la clave utilizada, de forma que el AES/256/14 sería más seguro
que el 192/12 y éste a su vez más que el 128/10. Sin embargo, en este caso la lógica no impera
y algunos autores así lo demuestran. Es el caso de Biryukov y Khovratovich [Bir'09], los cuales
consiguen reducir con su ataque el número de claves posibles del algoritmo AES/192 a 2123,
mientras que para el AES/256 obtienen 2119, es decir, un valor inferior a las 2128 del AES/128.
En [Bir'10] también se exponen algunas debilidades del estándar AES con longitud de clave
256, pero en este caso el algoritmo analizado no tiene 14 rondas.
3.2 Ataque por Canal Lateral: Análisis Electromagnético vs. Consumo
vs. Tiempo
Llegados a este punto, la pregunta que surge es por qué elegir un EMA y no un PA o
un ataque análisis de tiempos.
En primer lugar, descartamos los ataques por análisis de tiempo. En teoría y por
definición, los resultados que se pueden llegar a obtener con este tipo de ataque no superan
los de los otros dos, ya que se sirven de una magnitud física, el tiempo, que contiene menos
información. Se puede considerar que este tipo de ataque explota una información
unidimensional, mientras que los PA aprovechan una información bidimensional, la energía
consumida por unidad de tiempo. En cambio los EMA disponen de una información
tridimensional, el campo EM en una posición del espacio y en un tiempo específico, puesto
que la sonda de medida se puede desplazar en el espacio. Por tanto, los PA y EMA pueden
3. Evaluación de la Seguridad
32
proporcionar más información acerca de las instrucciones ejecutadas y los datos utilizados.
Aunque es de rigor decir, que los ataques por análisis de tiempo están continuamente
mejorando (Ej. Cache Timing Attacks [Osv'06]), en ciertos casos constituyen la única opción
posible para extraer información y además cuentan con la ventaja de que se pueden acometer a
través de la red de forma remota [[Bru'03], [Lev'04], [Cro'09]].
Según Gandolfi y otros [Gan'01], los EMA son más efectivos que los PA, pues
permiten medir el consumo individual de determinados componentes del EUA17 y consiguen
una SNR mejor.
En [Agr'02], además se indica que las señales EM contienen más información que las
medidas equivalentes de consumo de energía. Esto se debe a que las señales EM pueden ser
captadas con un ancho de banda superior a las señales de consumo. En efecto, para medir el
consumo de energía normalmente se conecta una resistencia de bajo valor óhmico en serie
con la línea de alimentación o tierra. Este camino que recorre la señal a medir contiene
muchos elementos parásitos que limitan su ancho de banda, como la capacidad de la fuente, la
inductancia de los cables, etc. Esto provoca que la señal captada en un PA siempre esté
filtrada. Por este motivo, el campo EM contiene más información, especialmente a altas
frecuencias.
Por otra parte, este tipo de ataque es en esencia no invasivo, por lo que es posible su
ejecución a distancia sin necesidad de manipular el EUA [[Gan'01], [Mey'10]]. No obstante, se
puede realizar de manera más eficiente desencapsulando el chip, de modo que las medidas se
puedan realizar con la mayor proximidad posible para tener una señal de mayor intensidad y
evitar las posibles perturbaciones de la capa de pasivación, lo que redunda en una SNR mayor.
También está el hecho de que los EMA han sido estudiados en mucho menor grado
que los PA [Pop'07] y por otro lado, el grupo de Sistemas Electrónicos de Potencia de la
Universidad Carlos III de Madrid, en cuyo seno se ha realizado este trabajo, dispone de una
cámara anecoica donde realizar las medidas en un ambiente aislado EM del exterior, aunque
no sea estrictamente necesaria su utilización [Pee'07].
Existen también estudios con otra visión, como en [Tiu'05] donde los autores
comparan los ataques DEMA y DPA sobre un ARM7TDMI, llegando a la conclusión, a
diferencia de [Gan'01], que las trazas de consumo generan un mayor SNR que las trazas EM.
17 En los ataques por consumo se mide el consumo global de todos los elementos del dispositivo criptográfico, independientemente de si contienen información relevante para el ataque o no.
3. Evaluación de la Seguridad
33
Analizadas todas las impresiones, se decide aplicar este tipo de análisis en la presente
tesis.
3.3 Ataque por Canal Lateral Electromagnético
Una vez seleccionado el ataque EMA, queda por definir el tipo a utilizar. Como se ha
demostrado en el epígrafe 2.2, los PA y EMA están íntimamente ligados, de forma que, en
general, la información que se filtra a través de consumo de energía también lo hace a través
del campo EM. Así, en la mayoría de los casos, lo aportado por uno se puede aplicar al otro.
Dada la idiosincrasia de los SCA, llegar a la conclusión de que un ataque es mejor que
otro, es complejo. Como ya se ha comentado, los SCA están intrínsecamente ligados al
circuito electrónico en el cual se implementan. Por ese motivo, son complejos de evaluar,
modelar, prevenir o comparar. Varios autores han hecho intentos de desarrollar un marco o
herramienta común con el que poder evaluar los ataques de manera neutral [[Gen'04],
[Mic'04], [Köp'07], [Dvam'08], [Sta'09b]], pero por diversos motivos18, hasta la fecha no se ha
llegado a una conclusión indiscutible.
Analizando el estado del arte, se puede llegar a la conclusión que los ataques más
óptimos e interesantes para la realización de un estudio comparativo, son los DPA por
modelado y CPA.
En [Man'07] los autores consideran los DPA por Modelado como los más potentes.
Según ellos la forma óptima de describir el consumo de energía característico de un
dispositivo es mediante la utilización de los modelos (templates). Éstos, permiten atacar al
dispositivo utilizando pocas medidas y reducen la probabilidad de error. A cambio, tienen
algunos inconvenientes que dificultan su aplicación. Como ya se ha comentado anteriormente,
su éxito depende de la elección de los puntos de interés necesarios para calcular la matriz de
covarianza. Esta selección debe hacerse de forma efectiva y cuidadosa, eligiendo el menor
número de puntos posibles, ya que el tamaño de la matriz de covarianza crece de forma
cuadrática con dicho número y ésta debe invertirse durante el proceso, lo que normalmente
provoca problemas numéricos. Además en general, requieren la obtención de considerables
modelos, aunque se han desarrollado técnicas que permiten reducir notablemente su número,
como por ejemplo, centrarse en la salida de una función intermedia, utilizar el modelo de
consumo asociado o fijarse en solo 4 bits [[Osw'07], [Agr'05]]. Por último, se asume que el
18 Por ejemplo, las hipótesis hechas son muy fuertes, no queda muy claro cómo se aplica en la práctica, o bien no se analizan dispositivos más actuales [Sta'09b].
3. Evaluación de la Seguridad
34
ruido generado por el dispositivo sigue una distribución Multivariable Gaussiana, algo que no
siempre tiene por qué cumplirse.
En su artículo, Li y sus colegas [Li'10] establecen que los CPA proporcionan más
robustez y eficiencia de análisis que los DPA. El coeficiente de correlación C.C. constituye la
primera y más común herramienta cuando se trata de determinar si existe relación entre dos
grupos de datos. Por consiguiente, es una opción excelente cuando se intenta aplicar un DPA
[Man'07]. En [Koe'05], Koeune y otros indican que los DPA no hacen un uso óptimo de las
medidas adquiridas. Los CPA suponen un avance respecto al DPA, aun así, tampoco son
óptimos. Pero dado que los modelos de consumo tienen una relación lineal con las trazas, los
CPA constituyen en la práctica, un ataque simple y eficiente. En ambos casos, su efectividad
depende de la calidad y precisión del modelo de consumo elegido.
A la vista de los datos ofrecidos por otros autores, se decide el uso del ataque CPA.
Como se ha expresado, este ataque supone un avance con respecto a un DPA clásico, ofrece
unos resultados razonables con un coste computacional relativamente bajo y además, su
descripción e implementación son relativamente sencillas. Dado que en este estudio se
pretende realizar una comparación relativa entre varios dispositivos, la utilización de un ataque
más potente, pero menos práctico, no supone un beneficio. La aplicación del DPA por
modelado a nuestro estudio, exigiría en el mejor de los casos, determinar para cada una de las
cuatro implementaciones los correspondientes modelos y puntos de interés. En nuestro caso,
su mayor efectividad no compensa el coste extra de desarrollo.
3.4 Ataque por Correlación Electromagnética: CEMA
Como ya se ha mencionado, el ataque DPA por correlación o CPA, fue presentado en
el año 2004 por Brier y otros autores [Bri'04]. Éste se basa en el hecho de que la clave correcta
es aquella que maximiza el coeficiente de correlación entre la traza de consumo y el modelo de
consumo usado.
Tras su publicación, varios autores han extrapolado este ataque al canal
electromagnético [[Mul'05], [Rea'09], [Din'09], [Mat'10], [Mey'10], [Hor'12]].
A continuación se muestran en detalle los pasos a seguir para realizar un CEMA, o
CPA sobre el algoritmo AES. En este punto, es recomendable consultar el Anexo 1, donde se
explica en detalle dicho algoritmo:
3. Evaluación de la Seguridad
35
Paso 1. Selección de una función intermedia del algoritmo
Esta función f, se corresponde con una o varias operaciones del algoritmo
criptográfico, que generan como resultado un valor intermedio, que es función de una parte de
la clave ki y un dato variable conocido.
En general, en la mayoría de algoritmos criptográficos simétricos, se pueden
determinar básicamente dos funciones que cumplen con estas premisas. Una pertenece a la
primera ronda del algoritmo y otra a la última, puesto que lo más habitual es conocer dos
datos, el texto plano de entrada p y/o el texto cifrado de salida c si se analiza la encriptación, o
al contrario si se estudia la desencriptación.
Respecto al AES, se puede decir que existen principalmente tres funciones posibles19,
ya que la correspondiente a la ronda 1 se puede definir de dos formas. Se puede considerar la
función f como la operación AddRoundKey de la ronda inicial, o incluir además la operación
SubBytes de la ronda 1. En ambos casos, los bytes de salida de la función dependen del texto
plano de entrada p, variable y conocido, y de una parte de la clave ki. La otra función, se
corresponde con la operación AddRoundKey de la fase final, que toma los bytes resultantes de
la operación ShiftRows d y los añade a la ronda 10 de la clave kR10, y tiene como resultado los
bytes de salida cifrados c del algoritmo, variables y conocidos.
Ronda Primera
( )
( ) ( )
Ronda Final ( )
A la hora de seleccionar f, lo más conveniente es escoger una función perteneciente a
la primera ronda, pues manipulará los bytes de la clave directamente sin realizar ninguna
transformación. En cambio, si se escoge la función perteneciente a la última ronda, ésta
trabajará con la ronda 10 de la clave, por lo que si el ataque tiene éxito, al finalizar no se
obtendrán los bits de clave directamente, sino que se deberán determinar a partir de los
obtenidos.
Por otro lado, las operaciones no lineales incrementan la eficiencia de los ataques
estadísticos, por lo que, en el caso del AES, el ataque será más eficiente y requerirá menos
19 Realmente, en la práctica, es posible atacar al AES con otras funciones, aunque exige realizar una selección de los textos de entrada o los textos cifrados de salida. Por ejemplo, en [[Car'05], [Jaf'06]], se demuestra cómo atacar al AES utilizando la función MixColumns.
3. Evaluación de la Seguridad
36
medidas si se selecciona como objetivo los bytes de salida de la función Subbytes [[Pra'04],
[Man'07]].
Paso 2. Cálculo del consumo hipotético
Una vez hecha la selección de una función intermedia f con las especificaciones
indicadas en el paso 1, será posible calcular, a partir de una serie de textos planos aleatorios
dados p1, p2…pP, los valores intermedios generados por la misma para cada una de las posibles
subclaves k1, k2…kK. Se obtendrá así un valor intermedio para cada texto y para cada posible
valor de la subclave. Es decir, P·K valores, que expresados en forma de matriz constituyen la
matriz IPxK, formada por P filas (una por cada texto plano) y K columnas (una por cada posible
subclave).
Llegados a este punto, uno puede pensar que la realización de un CPA requiere una
cantidad ingente de cálculos, pues exige calcular el valor intermedio para cada una de las
posibles subclaves y textos. Aquí aplica el principio clásico de divide y vencerás. En el caso de
elegir la función f de la primera ronda del algoritmo, cada una de las subclaves estará formada
por 8 bits, pues la función Subbytes trabaja con bytes. Se tendrán, por tanto, 256 posibles
subclaves, que es un valor relativamente bajo. En cambio, si se elige la función de la última
ronda, será posible fijar como objetivo un bit, puesto que la función AddRoundKey trabaja bit
a bit y, así se tendrán solo 2 opciones. Pero, esto exigiría repetir el proceso 8 veces por cada
byte.
Una vez se ha obtenido la matriz I, el atacante debe determinar los consumos
hipotéticos asociados a la computación de cada uno de los valores intermedios calculados,
utilizando técnicas de simulación o modelos de consumo más o menos precisos, que predigan
el gasto de energía del EUA. Se obtiene así una matriz WPxK.
En esta fase se deben tener en cuenta dos datos importantes:
1. Cuanto más se aproxime el consumo hipotético al real, más efectivo será el
ataque.
2. El objetivo no es obtener valores absolutos de consumo, sino relativos con los
que poder comparar.
Es por eso que esta fase es una de las más importantes del ataque. En general, cuanta
más información se tenga acerca del EUA, más complejas y precisas serán las técnicas de
simulación que se podrán aplicar. No obstante, aquí también entran en juego otras variables
importantes, como son la sencillez, rapidez, coste etc. En la práctica, los modelos de consumo
más utilizados son los modelos genéricos HD y HW.
3. Evaluación de la Seguridad
37
Paso 3. Registro de las trazas electromagnéticas
Esta fase consiste en medir el campo EM emitido por el dispositivo criptográfico al
encriptar o desencriptar los P textos planos p1, p2…pP. Se obtendrán así, P trazas: t1, t2...tP, una
por cada texto, cuya longitud o número de elementos N, dependerá de la tasa de muestreo
utilizada y del tiempo de ejecución del algoritmo. Expresándolo en formato matricial, se puede
decir que se obtiene una matriz TPxN con P filas y N columnas. Una fila por cada texto y una
columna por cada registro de la traza, correspondiente al campo EM medido en un instante de
tiempo.
En este paso se deben tener en cuenta varios aspectos:
La sonda utilizada debe tener un ancho de banda y sensibilidad suficientes para poder
captar la señal íntegra. En general, será conveniente usar un preamplificador que aumente
la ganancia de la señal, pues ésta es de baja intensidad y la sonda relativamente pequeña.
Las trazas deberán estar correctamente alineadas, para que los puntos de la traza
correspondan siempre a las mismas instrucciones, de forma que se puedan comparar
adecuadamente en el tiempo. Para este fin, será necesario sincronizar el dispositivo
criptográfico con el equipo registrador de las señales, que normalmente es un osciloscopio
y/o utilizar técnicas de alineación como las expuestas en [[Tiu'05], [Geb'08b], [Sch'10]].
En general, no será necesario captar la radiación emitida por el dispositivo durante toda la
encriptación o desencriptación, sino sólo de aquellas instrucciones incluidas en la función
seleccionada en la fase 1. De hecho, cuanto más grande sea la longitud de la traza, mayor
será el procesado informático y la potencia requerida al equipo informático.
Paso 4. Comparación de las trazas electromagnéticas con los consumos hipotéticos
En esta última fase se realiza una comparación del consumo real del dispositivo
criptográfico al encriptar los P textos p1, p2…pP medido a través de su radiación
electromagnética, con el consumo hipotético teórico determinado en el paso 2. En concreto,
se comparan las columnas de las matrices W y T. Es decir, cada columna de la matriz W, que
contiene el consumo hipotético del dispositivo criptográfico al encriptar los textos p1, p2…pP
suponiendo una subclave ki, se compara con cada una de las columnas de la matriz T, que
contienen las registros EM medidos en cada instante de tiempo determinado. Se obtiene así
una matriz CKxT, con K filas correspondientes a las posibles subclaves y T columnas, una para
cada uno de los registros de las trazas de consumo EM.
La comparación de las columnas se puede realizar utilizando diferentes técnicas
estadísticas. En este caso, dado que se utilizará el coeficiente de correlación , se obtendrá
3. Evaluación de la Seguridad
un valor numérico comprendido entre 0 y 1 que indicará la relación lineal existente entre
ambas columnas. Cuanto mayor sea este valor, más similares serán ambas.
𝜌 = 𝑃 ∑ 𝑡 ∙ 𝑤 − ∑ 𝑡 ∙ ∑ 𝑤𝑃 ∑ 𝑡 − (∑ 𝑡 ) ∙ 𝑃 ∑ 𝑤 − (∑ 𝑤) (3.1)
Una vez calculado el coeficiente de correlación para los KxT casos, si el número de
textos planos elegidos es suficiente y el modelo de consumo aplicado es correcto, se podrá
determinar la subclave correcta y el instante, o instantes de tiempo, en el que se procesa el
valor intermedio resultante de la función f seleccionada, con solo verificar la fila y columna del
mayor coeficiente de correlación calculado en la matriz C.
En ciertas ocasiones puede ocurrir que se obtengan valores altos de correlación para
claves incorrectas. Es lo que en la literatura, en algunas ocasiones, se define como “picos
fantasma” [[Bri'04], [Can'05], [Le'06]], inevitables, aunque dependientes en cierta medida de la
función f seleccionada. Así, por ejemplo, la operación AddRoundkey del AES, genera picos
fantasmas de mayor correlación (más altos) que la operación SubBytes [Man'07].
Veamos esquemáticamente el desarrollo completo de este ataque, Figura 3.1:
3. Evaluación de la Seguridad
39
3.5 Dispositivos Criptográficos Bajo Test
Se han analizado cuatro microcontroladores distintos que ejecutan una
implementación software del mismo algoritmo AES sin ningún tipo de contramedida. El
primero es un modelo mejorado del conocido 8051 de 8 bits, el segundo es un ARM 7 de 32
bits, y los dos últimos son dos modelos ARM Cortex M3, también de 32 bits, uno de ellos con
especificación de bajo consumo. Estos tres últimos procedentes de dos fabricantes distintos
bajo licencia ARM.
3.5.1 Microcontrolador Silicon Labs C8051F303 8 bits
Este microcontrolador utiliza una arquitectura 8051 de 8 bits mejorada, denominada
CIP-51. Ésta se caracteriza, entre otras cosas, por alcanzar una velocidad de procesamiento de
instrucciones de hasta 25 MIPS a su frecuencia máxima de reloj (25 MHz), suponiendo
instrucciones de un ciclo máquina. Esto representa una capacidad de procesado muy superior
a un 8051 estándar, debido principalmente, a que en este equipo un ciclo de reloj equivale a un
ciclo máquina20 [SL'08].
Otra característica importante del dispositivo es su simplicidad. Además de la derivada
de la utilización de una arquitectura 8051 de 8 bits, éste incluye muy pocos periféricos y está
implementado sobre un chip de solo 11 patas21 (véase la Figura 3.2). Otras características a
considerar son: una memoria flash de 8 Kb, 256 bytes de RAM, emulación en tiempo real y
alimentación entre 2.7 y 3.6 V.
Figura 3.2: Esquema Microcontrolador 8 bits Silicon Labs C8051F303 (fuente [SL'08])
La elección de este microcontrolador se hizo en base a varios factores, como son su
sencillez, robustez y experiencia previa con otros equipos del mismo fabricante, aunque sobre
20 En una implementación 8051 clásica, un ciclo máquina utiliza 12 ciclos de reloj. En general, este valor suele variar entre 2 y 12 en función del dispositivo y fabricante. 21 El encapsulado es de 12 patas, con una nula.
3. Evaluación de la Seguridad
40
todo pesaron dos características que lo hacen distinto a las implementaciones de 8 bits
analizadas previamente en la literatura. Por una parte su relativa alta capacidad de
procesamiento y por otra su alimentación a una tensión de 3.3V, menor que los entonces
habituales 5V. Además, aunque este tipo de microcontroladores de 8 bits están
tecnológicamente desfasados, siguen usándose en diversos sectores, como automoción,
aeroespacial, tarjetas inteligentes etc.
El circuito en el que se implementó el microcontrolador se diseñó y desarrolló ad hoc
para los ensayos en una placa de circuito impreso utilizando el programa de layout PsPice
(Figura 3.3). Con objeto de evitar posibles interferencias provenientes de otros dispositivos
instalados, se decidió simplificar al máximo su diseño e incluir el mínimo de elementos
posibles.
Figura 3.3: Placa EMA 1: Microcontrolador 8 bits C8051F303
La placa EMA 1 cuenta con un cristal externo de 11.0592 MHz, que proporciona la
señal de reloj del microprocesador de forma más precisa que el oscilador RC interno, algo muy
importante a la hora de realizar medidas consecutivas que deben estar perfectamente
sincronizadas. Asimismo, contiene un regulador de tensión para alimentar el microprocesador
a 3.3V, una serie de microinterruptores que permiten realizar variaciones en el programa sin
necesidad de una reprogramación, como variar el dato introducido a cifrar o la clave utilizada,
un conector para la programación y depuración y dos conectores de sincronización, uno que
envía la señal de trigger al osciloscopio y otro al Pc que guarda las trazas capturadas por dicho
osciloscopio.
Dado que fue la primera placa que se estudió, también se incluyeron algunos
elementos en previsión, que finalmente no se utilizaron. Como un interfaz RS232 con su
Regulador 3.3V
Comunicación Serie RS232
Señal Sincronización
Alimentación Señal de Trigger
Microinterruptores
Conector Depuración
Microcontrolador
3. Evaluación de la Seguridad
41
correspondiente conversor de niveles de tensión para una posible comunicación serie con un
Pc. Esta sección de la placa no llegó a alimentarse para evitar interferencias EMI indeseables.
3.5.2 Microcontrolador ARM7TDMI-S NXP LPC2124FBD64 32 bits
El LPC2124FBD64 es un microcontrolador de bajo coste fabricado por NXP (antes
Philips), destinado a equipos empotrados, basado en la CPU de ARM ARM7TDMI-S, el cual
ofrece altas prestaciones y un consumo bajo (0.28mW/MHz para la CPU). Entre otras
características, dispone de 256 Kb de memoria flash de alta velocidad, 16Kb de RAM, permite
la posibilidad de emulación en tiempo real, soporta frecuencias de reloj externas de entre 1 y
30 MHz, aunque gracias a un PLL interno, su frecuencia máxima interna puede llegar a 60
MHz y su alimentación es dual. Entre 1.65 y 1.95 V para la CPU y de 3.0 a 3.6V para los
periféricos de entrada-salida [NXP'08].
Además de las mencionadas características de procesamiento, el LPC2124 dispone de
numerosos puertos de entrada/salida que permiten disponer de comunicaciones, así como de
otras capacidades. De ahí que el chip disponga de 64 patas. En la Figura 3.4 se muestra su
esquema.
Figura 3.4: Esquema Microcontrolador NXP LPC2124 (fuente [NXP'08])
La elección de este dispositivo se hizo por dos motivos principalmente. Primero, es un
microcontrolador diseñado específicamente para equipos embebidos de bajo consumo. Y en
3. Evaluación de la Seguridad
segundo lugar, gozaba de un gran éxito, siendo ampliamente utilizado por la industria. De
hecho, el ARM7 ha sido el procesador embebido de 32 bits más usado en la historia, con más
de un billón de unidades producidas al año [Yiu'10]. Si bien, en estos momentos ha sido
desbancado por otros dispositivos más potentes y eficientes, como los Cortex M0 y M3,
aunque aún se sigue utilizando en equipos básicos [ARM7'13].
La tarjeta de desarrollo utilizada para los ensayos ha sido desarrollada íntegramente
para los mismos y su sencillez es máxima con objeto de identificar claramente las emisiones
EM provenientes del EUT y evitar el posible ruido generado por otros dispositivos que
pudiesen estar instalados en dicha placa (Figura 3.5).
La placa EMA 2 dispone de un cristal de 12 MHz que proporciona la señal de reloj
externa, aunque el dispositivo se ha configurado para trabajar a su frecuencia máxima de
operación: 60 MHz. También, contiene como en la placa EMA1, los correspondientes
reguladores de 1.8V y 3.3V de tensión para alimentar el microcontrolador según
especificaciones del fabricante, una serie de microinterruptores que permiten, entre otras cosas
y desde el punto de vista práctico de la investigación, poder variar el dato introducido para
cifrar, así como la clave utilizada y diversos conectores para alimentación y sincronización.
3.5.3 Microcontrolador ARMCORTEXM3 NXP LPC1769FBD100 32 bits
Al igual que en el caso anterior, el LPC1769 de 32 bits de NXP, incluye bajo licencia la
CPU de ARM CortexM3 basada en la arquitectura ARMv7-M. Éste, consiste en un
microcontrolador de alto rendimiento, bajo coste, y bajo consumo (CPU de 0.19mW/MHz),
idóneo para aplicaciones embebidas. Supone, por tanto, la evolución natural del ARM7TDMI-
S y una alternativa a microprocesadores de 8 y 16 bits con menos rendimiento, pero precio
3. Evaluación de la Seguridad
43
similar. Sus principales características son: 512 Kb de memoria flash, 16Kb de RAM,
frecuencia de operación de hasta 120 MHz, posibilidad de generar la señal de reloj con un
cristal externo con frecuencias comprendidas entre 1 y 25Mhz o una red RC interna,
alimentación entre 2.4 y 3.6V y 100 pines [NXP'10]. Véase su esquema en la Figura 3.6.
Figura 3.6: Esquema Microcontrolador NXP LPC1769 (fuente [NXP'10])
El equipo utilizado para las medidas, se compone de una placa de desarrollo comercial
LPCXpresso LPC1769 a la que se le ha añadido un circuito con distintos conectores para
alimentación y sincronización, como se puede apreciar en la Figura 3.7.
Figura 3.7: Placa EMA 3: LPCXpresso LPC1769
Señal Sincronización
Alimentación
Señal de Trigger
Microcontrolador
3. Evaluación de la Seguridad
44
Al igual que EMA2, esta placa dispone de un cristal externo de 12 MHz. La frecuencia
de operación se ha configurado internamente a 120 MHz, límite máximo.
Dado que este micro supone la evolución del ARM7 se vio lógico su estudio y análisis.
Con el avance de dispositivos como smartphone y tablet, las necesidades de procesamiento
han aumentado exponencialmente, por lo que el Cortex M3 se ha orientado a aplicaciones
específicas embebidas de bajo coste, bajo consumo y rendimiento eficiente, como sistemas de
automoción (control de ventanas, sensores, sistemas de navegación…), sistemas de control
industrial y comunicaciones inalámbricas (3G, Bluetooth, WiFi, WiMax, Zigbee…), soluciones
de almacenamiento, subsistemas de gestión de energía, sistemas GPS etc. La serie Cortex-A se
ha elegido para dar soporte a aplicaciones sofisticadas que demandan un alto rendimiento y
bajo consumo, como smartphone, tablet y PDA. A pesar de ello, ambos dispositivos utilizan la
misma arquitectura ARMv7, pero con distintas especificaciones adaptadas al producto final.
3.5.4 Microcontrolador ARMCORTEXM3 STM32L152RBT6 32 bits
Este último microcontrolador es, al igual que el modelo anterior, un ARM Cortex M3
con arquitectura ARMv7-M, pero en este caso con especificación de bajo consumo. Ésta,
consiste en una serie de mejoras que consiguen disminuir el ya de por sí bajo consumo de la
arquitectura. Por ejemplo, 7 modos distintos de bajo consumo, uno de los cuales consigue un
consumo mínimo de entre 0.3 y 1 µA, tensión de alimentación reducida entre 1.65 y 3.6V o
núcleo con tensión dinámica y reducción proporcional. Además, dispone de 128 Kb de
memoria flash, 16Kb de RAM, 4Kb de memoria EEPROM, su frecuencia máxima está
limitada a 32 MHz con posibilidad de suministrar la señal mediante un cristal externo entre 1 y
24 MHz y el chip consta de 64 pines [ST'11]. En la Figura 3.9 se muestra su esquema.
El equipo utilizado para las medidas se compone de una placa de desarrollo comercial
STM32L-DISCOVERY a la que se le ha añadido un circuito con distintos conectores para
alimentación y sincronización, Figura 3.8.
La placa EMA 4, como se puede observar en la Figura 3.8, dispone entre otras cosas,
de un LCD de 24 segmentos y una zona táctil, aunque para el estudio no se han utilizado. El
micro se ha configurado para trabajar a la frecuencia máxima de operación de 32 MHz, a partir
de un cristal externo de 8 MHz.
3. Evaluación de la Seguridad
45
Figura 3.8: Placa EMA 4: STM32L-Discovery
Figura 3.9: Microcontrolador STM32L152RBT6 (fuente [ST'11])
Microcontrolador
Señal Sincronización
Señal de Trigger
4. Setup Experimental de Medida
47
Capítulo 4
SETUP EXPERIMENTAL DE
MEDIDA
La realización de un SCA persigue la captura y digitalización de una magnitud física
observable, relacionada con un parámetro interno del dispositivo a atacar, para su tratamiento
posterior en busca de información secreta. En particular, un ataque CEMA diferencial,
requiere medir la radiación EM generada por el EUA mientras ejecuta un algoritmo
criptográfico sobre un determinado número de textos planos y posteriormente analizar
estadísticamente las trazas medidas, para intentar extraer la información que contienen. Para
ello, es necesario tener en cuenta una serie de consideraciones de carácter práctico y un buen
test setup de medida específico con distintos elementos que se describirá a continuación. La
utilización de un setup de medida idóneo, es de vital importancia a la hora de realizar un SCA,
influyendo notablemente en la eficiencia, e incluso en el éxito del mismo [[Sta'09a], [Hut'12]].
Como ya se ha comentado, los SCA electromagnético y de consumo, tienen muchas
similitudes en cuanto a técnicas y métodos. En el caso del setup, ocurre igual. El setup
utilizado para un PA generalmente se puede extrapolar a un EMA, sin más que sustituir el
circuito medidor de consumo, que normalmente suele ser una resistencia de bajo valor
óhmico, por una sonda electromagnética.
4. Setup Experimental de Medida
4.1 Setup de Medida Típico de un ataque EMA En general, en un setup típico de medida suelen estar presentes diversos equipos, que
trabajan aliados con el objetivo común de obtener un dato secreto. En la Figura 4.1 se muestra
el diagrama de un setup típico.
Veamos los dispositivos que generalmente lo conforman:
Equipo Bajo Ataque (EUA): Éste consiste en un dispositivo electrónico que contiene la
información confidencial que se quiere descubrir y con la capacidad de ejecutar un
algoritmo criptográfico, como puede ser un microprocesador, tarjeta inteligente, FPGA,
etc. Normalmente este dispositivo dispone de varios interfaces:
a) Interfaz de comunicación. Normalmente es una interfaz serie que permite la
comunicación con un PC. Suele ser usado para el envío de comandos, la recepción
del texto a cifrar y el envío del texto cifrado al PC.
b) Interfaz de sincronización. Permite coordinar la ejecución del algoritmo
criptográfico con el equipo medidor de las señales. Es decir, proporciona
información acerca del inicio y fin del proceso criptográfico.
c) Interfaz de Reloj. En algunos casos la señal de reloj puede ser generada
externamente, bien a través de un cristal de cuarzo o bien mediante algún tipo de
generador de señales, lo que permite una rápida variación de la frecuencia de
ejecución del dispositivo y el aseguramiento de una señal perfectamente estable.
Según [Man'07] la opción más recomendable es usar una señal de reloj sinusoidal,
pues su perfil de ruido es mucho menor que una onda cuadrada.
4. Setup Experimental de Medida
49
Fuente de Alimentación: Proporciona la tensión de alimentación necesaria para el
funcionamiento del EUA.
Sonda Electromagnética: Dispositivo transductor que convierte el campo EM en una
corriente eléctrica proporcional medible. Puede ser una sonda de campo cercano de
tamaño similar al del dispositivo criptográfico o una antena receptora de campo lejano
para medir a mayores distancias.
Preamplificador de banda ancha: Amplifica la señal captada por la sonda
electromagnética para aumentar la SNR de la medida.
Equipo muestreador digital de la señal: Este equipo digitaliza la señal captada por la
sonda electromagnética y la transfiere al PC a través de una conexión USB, GPIB o
Ethernet. Una señal de sincronización, proporcionada por el dispositivo criptográfico, le
indica los momentos justos en los que comenzar y finalizar la captura. Puede consistir en
una tarjeta de adquisición de datos con alta resolución y varios canales o un osciloscopio
de alto ratio de muestreo, en general con menor resolución, aunque de uso más común en
un laboratorio.
PC: Su principal función es almacenar la señal digitalizada por el equipo muestreador. Si
bien, también hace las funciones de coordinador de la cadena de medida. En general, un
CEMA requiere la realización de un alto número de medidas, por lo que es necesario un
equipo con una alta capacidad de almacenamiento. El PC manda el texto a cifrar o
descifrar22 al EUA, y cuando éste ha sido cifrado o descifrado, lo recibe y lo almacena en
memoria junto con la traza electromagnética capturada por el equipo muestreador.
4.1.1 Procedimiento de Medida
En general, el método de captura de las trazas EM necesarias para realizar un ataque
EMA es el siguiente. En primer lugar el PC envía al equipo bajo ataque o EUA el texto a
cifrar. Éste lo recibe, le envía un comando al muestreador para que comience a grabar la traza
proporcionada por la sonda electromagnética y acto seguido cifra el dato recibido haciendo
uso de la clave secreta almacenada. El muestreador captura la corriente proporcionada por la
sonda EM durante el cifrado, previamente amplificada por el Preamplificador de banda ancha,
y envía el registro al PC. Por último, el EUA envía el texto cifrado al PC, el cual lo almacena
22 En general, es posible realizar un ataque tanto en el cifrado del texto, como en el descifrado. Esto depende del dato disponible en cada caso.
4. Setup Experimental de Medida
junto a la traza electromagnética. Así este proceso se repite el número de veces necesario para
realizar el ataque.
4.2 Setup de Medida Experimental Implementado Para la realización de este trabajo ha sido necesario el desarrollo de un setup de medida
prácticamente automatizado, puesto que el número de repeticiones y medidas necesarias, hacía
imposible su ejecución en modo manual. Éste, ha sido desarrollado a partir de los recursos
limitados disponibles en el momento de la realización del trabajo, y su efectividad ha quedado
demostrada experimentalmente.
El setup está basado en el diseño usado por la mayoría de investigadores con algunas
modificaciones que se han considerado oportunas. Es recomendable usar el menor número de
componentes posibles para evitar posibles perturbaciones y, en caso de que sean
imprescindibles, separarlos del EUA. El esquema se muestra a continuación:
4.2.1 Procedimiento de Medida
En nuestro caso, el procedimiento de medida es el siguiente. El EUA, que será uno de
los microcontroladores a analizar descritos en el epígrafe anterior, contiene los textos a cifrar
almacenados en su memoria de programa. Éste se encuentra a la espera de recibir la orden de
inicio del proceso de encriptación proveniente del PC. En el momento de recibirla, envía una
señal de disparo al osciloscopio para que comience a capturar la señal proveniente de la sonda
EM. Acto seguido, encripta el primer texto y se mantiene a la espera de recibir la orden de
encriptación del siguiente texto plano a cifrar. A continuación, el PC solicita la traza medida al
osciloscopio y la almacena en memoria. Una vez se ha realizado este paso, el más lento de la
cadena, el PC vuelve a enviar al EUA la señal de inicio para que encripte el siguiente texto.
4. Setup Experimental de Medida
51
Los elementos del setup de medida utilizado se describen seguidamente.
4.2.2 Fuente de Alimentación
La calidad de la fuente de alimentación es uno de los principales parámetros que se
deben cuidar a la hora de realizar un EMA o PA. De hecho, la presencia de ruido en la fuente
reduce la precisión de las medidas seriamente [Aig'00]. Es por ello que algunos autores, como
[Ben'03], proponen técnicas de adición de ruido a la fuente como contramedida para evitar los
SCA.
En general, todo el ruido generado por la fuente se acoplará a las medidas realizadas,
por lo que el uso de una fuente de calidad puede significar la diferencia entre descifrar la clave
secreta o no. Por consiguiente, es imprescindible disponer de una tensión de alimentación
completamente estable y sin ruido.
En el test setup implementado, se ha utilizado una batería recargable de 6V como
fuente (Figura 4.3). De esta forma se asegura la ausencia de ruido en la señal de alimentación.
A partir de esta tensión, y con la ayuda de reguladores lineales, se obtienen los voltajes
necesarios para cada uno de los dispositivos a estudiar.
Figura 4.3: Batería 6V usada como fuente de alimentación
4.2.3 Osciloscopio
Es el dispositivo que se encarga de medir, digitalizar y guardar provisionalmente la
tensión proporcionada por la sonda EM de medida, para su posterior envío al PC
coordinador, que se encarga finalmente de almacenar los datos. Debe ser, por consiguiente, un
equipo con un ratio de muestreo, ancho de banda, resolución y sensibilidad adecuados para
poder llevar a cabo las medidas. Además, debe tener la capacidad de poder controlarse de
forma remota a través de algún puerto de comunicaciones: USB, Ethernet, GPIB etc.
4. Setup Experimental de Medida
52
En general, en la literatura, los setup de medida utilizados suelen disponer de un
equipo muestreador compuesto por un osciloscopio con hasta 1 GHz de ancho de banda, 1
Gmuestras/segundo de ratio de muestreo y 8 bits de resolución [Man'07]. En este caso se ha
utilizado un osciloscopio Tektronix MS04104 (Figura 4.4), con las siguientes especificaciones
[Tek'03]:
Tabla 4.1: Especificaciones técnicas osciloscopio Tektronix MSO4104
Tektronix MSO4104
Ancho Banda 1 GHz
Ratio Muestreo 5 Gmuestras/sg.
Resolución 8 bits
Longitud medida 10 Mmuestras
Comunicación PC USB 2.0 Ethernet
Por tanto, sus prestaciones son más que suficientes. Hay que tener en cuenta que la
frecuencia de operación del EUA va a ser, al menos en un caso, superior a la de los
dispositivos estudiados hasta ahora, donde no suele ser habitual superar los 50 MHz23 y que un
sobremuestreo no aporta ningún beneficio, sino que más bien dificulta el análisis de las
muestras, al presentar las trazas un mayor número de registros y aumentar los recursos
necesarios del equipo informático.
Figura 4.4: Osciloscopio MSO4104 utilizado como digitalizador (fuente Tektronix Inc.)
23 Por ejemplo: 40 MHz en [Geb'05a]; 50 Mhz en [Car'04]; En [Geb'08a] se estudia una PDA, pero no se dan datos acerca de la frecuencia de operación.
4. Setup Experimental de Medida
53
4.2.4 Sonda Electromagnética de Campo Cercano
Es quizás el elemento más crítico de la cadena de medida, ya que es el encargado de
captar el campo magnético generado por el EUA y transformarlo en una tensión proporcional
medible por el osciloscopio.
Generalmente, cuando se ataca a un dispositivo, sólo una parte del mismo radia el
campo magnético útil para deducir la clave secreta. Es decir, en un EMA, y en general en
cualquier SCA, lo ideal es captar sólo la parte de la magnitud física filtrada que es dependiente
del dato; El resto se considera ruido.
Actualmente, medir en un PA únicamente la energía consumida por la parte del
circuito cuya energía consumida está correlacionada con el dato procesado, es una tarea
pendiente. Sólo es posible evaluar el consumo global de todos los componentes a la vez. En
cambio, en un EMA teóricamente es posible, debido a que la sonda se puede situar en aquellas
zonas del EUA que generan el campo correlacionado. Sin embargo, en la práctica esto resulta
prácticamente imposible. Con el nivel de integración actual, siempre van a existir
acoplamientos inevitables con componentes cercanos.
4.2.4.1 Características de una Sonda Electromagnética
Una sonda EM debe tener la propiedad de:
a) Medir el mayor espectro posible del campo EM manteniendo su ganancia
constante. Es decir, debe tener un ancho de banda suficiente.
b) Captar campos de bajo nivel, por lo que debe disponer de una alta sensibilidad.
c) Discernir el origen de las radiaciones. Es decir, tiene que poseer una buena
resolución espacial.
De la literatura publicada se pueden obtener una serie de directrices a la hora de
seleccionar/fabricar la sonda EM de campo cercano más apropiada:
Forma: Según [Smi'98] es aconsejable utilizar sondas cuadradas para realizar medidas de
tensión o corriente en un circuito, siendo indiferente la forma (redonda o cuadrada) para
medidas en campo abierto, Figura 4.5.
4. Setup Experimental de Medida
Tamaño: El análisis EM de dispositivos de pequeño tamaño, requiere sondas muy
pequeñas con dimensiones similares a las del área bajo estudio [Gan'01]. De esta forma, se
podrá obtener una resolución espacial suficiente que permita discernir el origen de las
radiaciones EM pero a cambio tendrá el inconveniente de que su sensibilidad será muy
pequeña. Una sonda grande captará más señal y, por tanto, tendrá mayor sensibilidad, algo
bastante útil cuando la señal a detectar es muy débil, pero tendrá el inconveniente de que
no podrá discriminar si el origen de la misma está situado en una zona u otra.
Por otra parte, al analizar la respuesta en frecuencia de una sonda en función de su
tamaño, se comprueba que el comportamiento a altas frecuencias mejora conforme
disminuye el tamaño (Véase la Figura 4.6). Según [[Smi'98], [Smi'99]], una espira de 2,5 cm
posee una frecuencia de corte inferior de 100 MHz. Si ésta es de 1 cm, la frecuencia de
corte se producirá entre 200 y 300 MHz. Esto es debido al filtro paso bajo LR formado
por la impedancia de 50 Ω del instrumento de medida y la reactancia inductiva L de la
sonda, la cual se hace igual a 50 Ω aproximadamente a esas frecuencias.
4. Setup Experimental de Medida
55
En cuanto al comportamiento de las sondas EM a alta frecuencia, éstas se
caracterizan por presentar una frecuencia de resonancia dependiente de la inductancia
propia de la sonda y la capacidad parásita existente. Así, cuanto menor sea el diámetro de
la sonda, mayor será la frecuencia de resonancia. No obstante, otros parámetros como el
diámetro del cable y el método de construcción también influyen [Edi'09]. Por ejemplo,
una sonda de 2.5 cm tiene una inductancia de aproximadamente 80 nH y su frecuencia de
resonancia se produce poco después de 1 Ghz [Smi'98].
Número de espiras: En principio las leyes de Maxwell estipulan que a mayor número de
espiras, mejor es la sensibilidad de la sonda. Sin embargo, debido al efecto de la
terminación de 50Ω presente normalmente en la mayoría de las sondas y a su propia
inductancia, que se incrementa en un factor que depende del cuadrado del número de
espiras, el comportamiento difiere de la teoría [Smi'98]. En la Figura 4.7 se muestra la
respuesta en frecuencia de dos sondas en función de su número de espiras. Como se
puede comprobar, a bajas frecuencias la respuesta de la sonda con dos espiras es superior,
pero esto cambia a medida que aumenta la frecuencia, donde la sonda con una espira se
impone.
Figura 4.7: Respuesta en frecuencia sondas en función número espiras
En conclusión, será recomendable una sonda multiespira para aplicaciones donde la
sensibilidad a bajas frecuencias sea un parámetro imprescindible y monoespira si se desea
un gran ancho de banda a costa de una menor sensibilidad a bajas frecuencias.
4.2.4.2 Sondas Electromagnéticas utilizadas
En la práctica, y pese a que sensibilidad y resolución espacial resultan ser propiedades
opuestas, ya que al mejorar una empeora la otra, fabricar un dispositivo con unas propiedades
suficientes para llevar a cabo un EMA, no resulta demasiado complejo. Además, su coste
económico es notablemente inferior al de una sonda comercial y los resultados que se
obtienen, son similares e incluso mejores a los de sondas comerciales. Por ejemplo, en su
estudio, Gandolfi y sus compañeros compararon la respuesta de varios sensores EM, llegando
Respuesta
(dB)
Frecuencia
(log)
fci_1
Sonda 1 Espira
Sonda 2 Espiras
fci_2 fcs_2 fcs_1
4. Setup Experimental de Medida
56
a la conclusión de que los mejores resultados se obtienen con sondas hechas a mano con hilo
de cobre de diámetros comprendidos entre 150 y 500 micras [Gan'01]. Se suma también el
hecho de que es un dispositivo al cual se le exigen una serie de propiedades concretas
necesarias para resolver un problema en cuestión, como tamaño, resolución, ganancia, ancho
de banda… y que en la gran mayoría de los casos sólo se consigue con un diseño y fabricación
ex profeso.
Por ese motivo, se tomó la decisión de fabricar varios tipos de sondas y comparar su
comportamiento con sondas comerciales. A continuación, en las siguientes figuras se
muestran las sondas implementadas:
Figura 4.8: Sonda 1: Monoespira con un clip y termorretráctil según [Smi'99]
Figura 4.9: Sonda 2: Monoespira cobre esmaltado 0.8 mm según [Smi'99]
Figura 4.10: Sonda 3: Monoespira blindada cobre rígido y termorretráctil según [Smi'00]
4. Setup Experimental de Medida
57
Figura 4.11: Sonda 4: Multiespira con semiferrita Fair-Rite TN 9/6/3-4C65 según [Joh'99]
Figura 4.12: Sonda 5: Multiespira con semiferrita Fair-Rite TX 10/6/3-4C65 según [Joh'99]
Figura 4.13: Sonda 6: Multiespira (8 espiras) cobre esmaltado 0,6 mm según [Pee'07]
Figura 4.14: Sonda 7: Sonda multiespira con ferrita TN10/6/4-3F3 según [Rid'99]
Figura 4.15: Sonda 8: Monoespira circuito protoboard según [Ost'03]
4. Setup Experimental de Medida
58
Como se puede advertir, las tres primeras sondas son muy similares en cuanto a su
forma, monoespira cuadrada. Las diferencias aparecen en cuanto al material y aislante usado
para su fabricación. La primera está construida a partir de un clip aislado con termorretráctil,
la segunda con cobre esmaltado y la tercera con cobre rígido blindado con cinta de cobre
adhesiva a la que se le ha practicado un gap y finalmente se ha aislado externamente con
termorretráctil. Las sondas 4 y 5, consisten en una multiespira de cobre esmaltado, terminadas
en una semiferrita toroidal. El tipo de ferrita usado supone la única diferencia sustancial entre
las dos. En cuanto a la sonda 6, es también una multiespira de 8 vueltas con cobre esmaltado.
La 7 es similar en concepto a 4 y 5, pero en este caso dispone de una ferrita toroidal entera.
Por último la sonda 8 está fabricada mediante estaño sobre una placa protoboard de puntos.
En cuanto a las sondas comerciales con las que comparar y poder reproducir los
experimentos, se han utilizado dos. La primera es una sonda monoespira EM-6995 (Figura
4.16) incluida en el kit de Electro-Metrics EM-6992 con las siguientes características [EM'07]:
Figura 4.16: Sonda EM6995 de Electro-Metrics
Tabla 4.2: Características técnicas EM-6995
EM-6995
Impedancia 50 Ω
Diámetro 1 cm
Ancho Banda 100 Khz – 1 GHz
La otra sonda comercial es la novedosa24 MFA-K 0,1-12 (Figura 4.17), incluida en el
set MFA 01 de Langer EMV-Technik. Ésta, se caracteriza por disponer de una micro-cabeza
activa con una resolución espacial de 300 µm, específicamente diseñada para realizar medidas
sobre elementos muy pequeños como componentes, circuitos y pines. La sonda incluye un
pequeño amplificador integrado situado al lado de la cabeza sensora, alimentado a través de un
dispositivo denominado Bias-tee [LanMFA'10]. Sus características técnicas se incluyen en la
siguiente tabla:
24 Se comenzó a comercializar en 2010
4. Setup Experimental de Medida
59
Figura 4.17: Sonda MFA-R 0,2-75 de Langer EMV-Technik
Tabla 4.3: Características técnicas MFA-K 0,1 – 12
MFA-R 0,2-75
Impedancia 50 Ω
Resolución 300 µm
Ancho Banda 1 Mhz – 1 Ghz
También se estudió la posibilidad de usar cabezas lectoras de disco duro como sondas,
tal como propone Gandolfi y otros en su artículo [Gan'01]. Para ello, se analizaron varias
cabezas lectoras de discos duros vetustos, puesto que en general el tamaño de su sonda
lectora, ya de por sí pequeño, es mayor al de dispositivos novedosos. Aun así, los resultados
obtenidos no fueron satisfactorios.
4.2.4.3 Caracterización Sondas Electromagnéticas
Para la realización del trabajo se decidió utilizar las dos sondas comerciales descritas,
con un comportamiento contrastado, y dos sondas fabricadas artesanalmente. Para seleccionar
las sondas más adecuadas se realizaron dos pruebas.
La primera prueba es similar al test de susceptibilidad EMI que deben superar los
equipos electrónicos que son comercializados (norma UNE-EN 61000-4-3 [UNE'07]).
Consiste en crear en una zona del espacio, un campo EM constante de valor 0.1 V/m para un
rango de frecuencias comprendido entre 5 MHz y 2 GHz.
Para conseguir tal fin, se conecta un generador RF a una antena logoperiódica, y se
barre el espectro de frecuencias, generando un campo magnético constante de 0,1 v/m en un
punto del espacio situado a una distancia de 60cm. de la antena. En ese punto se sitúa la sonda
bajo estudio conectada a un Receptor EMI y se registra el campo captado durante el barrido.
La Figura 4.18 detalla el setup utilizado. Dado que la antena usada para generar el campo no
tiene una respuesta lineal, es necesario realizar previamente una calibración del setup.
4. Setup Experimental de Medida
El resultado de esta prueba es una gráfica que determina la respuesta en frecuencia de
la sonda en el espectro medido. A continuación se muestran los resultados obtenidos para
cada una de las sondas. Se ha incluido la sonda EM6995 para comparar su comportamiento
con el del resto de sondas fabricadas, aunque se debe tener en cuenta que, según
especificaciones del fabricante, su respuesta en frecuencia alcanza 1 GHz, y el test se realiza
hasta 2 GHz.
4. Setup Experimental de Medida
61
Figura 4.20: Respuesta en frecuencia sonda 1
Figura 4.21: Respuesta en frecuencia sonda 2
0
0,2
0,4
0,6
0,8 1
1,2
1,4
1,6
1,8 2
2,2
2,4
2,6
2,8
3
5M 8M 10M 20M 30M 40M50M60M 80M100M 200M 300M400M500M 800M1G 2G
Sens
or L
evel
in m
V/m
Frequency in Hz
2,000000000 GHz468,201 µV/m
0
0,2
0,4
0,6
0,8 1
1,2
1,4
1,6
1,8 2
2,2
2,4
2,6
2,8
3
5M 8M 10M 20M 30M 40M50M60M 80M100M 200M 300M400M500M 800M1G 2G
Sens
or L
evel
in m
V/m
Frequency in Hz
2,000000000 GHz616,565 µV/m
4. Setup Experimental de Medida
62
Figura 4.22: Respuesta en frecuencia sonda 3
Figura 4.23: Respuesta en frecuencia sonda 4
0
0,2
0,4
0,6
0,8 1
1,2
1,4
1,6
1,8 2
2,2
2,4
2,6
2,8
3
5M 8M 10M 20M 30M 40M50M60M 80M100M 200M 300M400M500M 800M1G 2G
Sens
or L
evel
in m
V/m
Frequency in Hz
2,000000000 GHz247,772 µV/m
0
0,2
0,4
0,6
0,8 1
1,2
1,4
1,6
1,8 2
2,2
2,4
2,6
2,8
3
5M 8M 10M 20M 30M 40M50M60M 80M100M 200M 300M400M500M 800M1G 2G
Sens
or L
evel
in m
V/m
Frequency in Hz
2,000000000 GHz413,611 µV/m
4. Setup Experimental de Medida
63
Figura 4.24: Respuesta en frecuencia sonda 5
Figura 4.25: Respuesta en frecuencia sonda 6
0
0,2
0,4
0,6
0,8 1
1,2
1,4
1,6
1,8 2
2,2
2,4
2,6
2,8
3
5M 8M 10M 20M 30M 40M50M60M 80M100M 200M 300M400M500M 800M1G 2G
Sens
or L
evel
in m
V/m
Frequency in Hz
2,000000000 GHz575,841 µV/m
0
0,2
0,4
0,6
0,8 1
1,2
1,4
1,6
1,8 2
2,2
2,4
2,6
2,8
3
5M 8M 10M 20M 30M 40M50M60M 80M100M 200M 300M400M500M 800M1G 2G
Sens
or L
evel
in m
V/m
Frequency in Hz
2,000000000 GHz692,656 µV/m
4. Setup Experimental de Medida
64
Figura 4.26: Respuesta en frecuencia sonda 7
Figura 4.27: Respuesta en frecuencia sonda 8
Como se puede verificar, la respuesta de las sondas, incluida la EM6995 comercial, no
es notable. En términos generales, exceptuando resonancias, se miden valores 1000 veces
menores y las resonancias comienzan a aparecer a partir de los 100 MHz. Algunas sondas
muestran una resonancia en torno a 18 MHz, si bien el origen no está claro.
De este test se desprenden varias conclusiones:
Las sondas EM6995, 3, 7 y 8 disponen de una ganancia muy pequeña.
Las sondas 4, 5 y 7, tienen comportamiento más desfavorable con la
presencia de una resonancia a 20M.
0
0,2
0,4
0,6
0,8 1
1,2
1,4
1,6
1,8 2
2,2
2,4
2,6
2,8
3
5M 8M 10M 20M 30M 40M50M60M 80M100M 200M 300M400M500M 800M1G 2G
Sens
or L
evel
in m
V/m
Frequency in Hz
2,000000000 GHz350,180 µV/m
0
0.2
0.4
0.6
0.8 1
1.2
1.4
1.6
1.8 2
2.2
2.4
2.6
2.8
3
5M 8 10M 20M 30M 40 50 60 80 100M 200 300 400 500 800 1G 2G
Sen
sor L
evel
in m
V/m
Frequency in Hz
2.000000000 GHz789.800 µV/m
4. Setup Experimental de Medida
Las sondas 1 y 2 tienen una respuesta muy parecida, ya que básicamente
solo se diferencian por el material con el que están fabricadas.
Dado que los resultados obtenidos no arrojaron una conclusión definitiva sobre qué
sondas utilizar, se decidió realizar un segundo test. Éste consiste en medir el campo generado
por la placa EMA 1 del estudio, al ejecutar el algoritmo de encriptación AES de forma cíclica.
Para ello, se sitúa la sonda bajo estudio sobre la placa y con la ayuda de un receptor EMI se
mide el espectro de la señal captada para el rango de frecuencias 1 MHz - 2 GHz, tal como se
muestra en la Figura 4.28.
Estos son los resultados obtenidos:
4. Setup Experimental de Medida
66
Figura 4.30: Medida Espectral Sonda 2
Figura 4.31: Medida Espectral Sonda 3
0
5
10
15
20
25
30
35
40
1M 2M 3M 5M 10M 20 30 50 100M 200 300 500 1G 2G
Leve
l in
dBµV
/m
Frequency in Hz
0
5
10
15
20
25
30
35
40
1M 2M 3M 5M 10M 20 30 50 100M 200 300 500 1G 2G
Leve
l in
dBµV
/m
Frequency in Hz
4. Setup Experimental de Medida
67
Figura 4.32: Medida Espectral Sonda 4
Figura 4.33: Medida Espectral Sonda 5
0
5
10
15
20
25
30
35
40
1M 2M 3M 5M 10M 20 30 50 100M 200 300 500 1G 2G
Leve
l in
dBµV
/m
Frequency in Hz
0
5
10
15
20
25
30
35
40
1M 2M 3M 5M 10M 20 30 50 100M 200 300 500 1G 2G
Leve
l in
dBµV
/m
Frequency in Hz
4. Setup Experimental de Medida
68
Figura 4.34: Medida Espectral Sonda 6
Figura 4.35: Medida Espectral Sonda 7
0
5
10
15
20
25
30
35
40
1M 2M 3M 5M 10M 20 30 50 100M 200 300 500 1G 2G
Leve
l in
dBµV
/m
Frequency in Hz
0
5
10
15
20
25
30
35
40
1M 2M 3M 5M 10M 20 30 50 100M 200 300 500 1G 2G
Leve
l in
dBµV
/m
Frequency in Hz
4. Setup Experimental de Medida
69
Figura 4.36: Medida Espectral Sonda 8
Como se constata, la mayoría de las sondas captan la frecuencia principal de la placa,
11 MHz, y un armónico de aproximadamente 60 MHz. Las sondas 1 y 2, consiguen captar un
nivel superior, seguidas por la 3 y 6.
Analizando todos los resultados, se llegó a la conclusión de que las sondas más
apropiadas son la 1 y 2. Al disponer de una mayor ganancia, es previsible que las señales
captadas tengan una SNR mayor. No obstante, dado que ambas tienen un comportamiento
muy similar, se decidió utilizar únicamente la sonda 2 fabricada con hilo esmaltado de cobre,
pues su ganancia es un poco superior, debido a la utilización de cobre como conductor y, en
parte, al reducido grosor de su aislante, lo que permite acercar más la sonda al EUA.
4.2.4.4 Soporte Sondas
Un elemento a tener en cuenta es el soporte de las sondas para la realización de las
medidas. La elección ideal, es utilizar un posicionador milimétrico, que permita una situación
precisa de la sonda y asegure una repetitividad de las medidas. Pero dado su alto coste y el
hecho de que esté fabricado en metal, se decide no utilizarlo. En su lugar, se diseña y fabrica
un soporte novedoso (Figura 4.37), utilizando materiales no metálicos como madera y plástico.
Con la ayuda de una ventosa se consigue situar la sonda en el lugar deseado.
0
5
10
15
20
25
30
35
40
1M 2M 3M 5M 10M 20 30 50 100M 200 300 500 1G 2G
Leve
l in
dBµV
/m
Frequency in Hz
4. Setup Experimental de Medida
70
Figura 4.37: Soporte sondas setup medida
4.2.5 PreAmplificador
El amplificador de banda ancha es también uno de los elementos principales en
cualquier cadena de medida de un EMA. De él depende la calidad de la señal que es posible
detectar con el osciloscopio.
Como se ha indicado previamente, a su entrada llega la señal captada por la sonda EM
de medida; En este caso, a través de un cable BNC 50Ω de 1.8 metros de longitud y doble
apantallamiento (modelo Pomona 2249-Y-72 [Pom'10]), que asegura la ausencia de ruido; Y su
salida se conecta directamente a una de las entradas del osciloscopio.
En este trabajo se ha utilizado un preamplificador Langer PA303 [LanPA'08], Figura
4.38. Los tres parámetros más importantes que caracterizan a un amplificador son: ganancia,
ancho de banda y figura de ruido.
La ganancia debe ser suficiente para excitar el equipo que va a efectuar la digitalización.
Un valor típico suele ser 20 dB. En este caso, el amplificador seleccionado dispone de 30 dB.
Figura 4.38: Preamplificador Langer PA 303
El ancho de banda debe ser suficientemente grande para poder trabajar en un amplio
margen de frecuencias. Para un EMA o PA, al menos debe ser capaz de llegar hasta una
frecuencia de 1 Ghz. El dispositivo utilizado cubre ampliamente ese rango como se puede
4. Setup Experimental de Medida
71
verificar en su respuesta en frecuencia de la Figura 4.39, y permite medir señales desde 100
KHz hasta 3 GHz con una respuesta prácticamente plana.
Figura 4.39: Respuesta en frecuencia amplificador Langer PA 303
La figura de ruido indica la calidad del amplificador. En otras palabras, la capacidad
para discernir señales de muy bajo nivel. Cuanto más bajo sea este indicador mejor será el
amplificador. El Langer PA 303 usado posee una figura de ruido de 4.5 dB.
4.2.6 PC
Como ya se ha indicado, un CEMA se compone de dos fases. Una primera de captura
de trazas EM y una segunda fase de análisis estadístico. El PC es el coordinador o centro
neurálgico de este tipo de ataques, prácticamente imprescindible, debido al alto número de
trazas a registrar y la notable cantidad de datos a computar.
En el setup de medida implementado desempeña las siguientes funciones:
Fase 1: Captura de Datos
Genera previamente los textos aleatorios a encriptar.
Coordina la cadena de medida, controlando remotamente el osciloscopio y
enviando la señal de inicio de encriptación al EUA.
Almacena las trazas capturadas por el osciloscopio.
Fase 2: Análisis de Datos:
Realiza los cálculos necesarios para llevar a cabo el ataque.
Muestra los resultados gráficamente.
4.2.6.1 El PC en la fase de captura de datos
Previamente a la captura de datos, el PC se utiliza para generar los textos aleatorios de
16 bytes que el EUA cifrará durante el ataque y que serán almacenados en su memoria ROM.
En cuanto al setup para la captura de datos, inicialmente configura el osciloscopio
según las necesidades específicas del ataque a realizar (nivel y tipo de trigger, longitud de
medida, número de medidas etc.) y lo mantiene a la espera de la señal de trigger proveniente
4. Setup Experimental de Medida
72
del EUA que le indique la traza EM a capturar. A continuación, envía una señal de comienzo
de encriptación al EUA. Éste proporciona la señal de disparo al osciloscopio, realiza el cifrado
del primer texto almacenado en su memoria de programa y se mantiene a la espera de la
siguiente señal de cifrado para encriptar el siguiente texto. Después de estos pasos, el Pc
solicita la señal capturada por el osciloscopio y la almacena en memoria. Aumenta el contador
de número de textos cifrados y repite el procedimiento. Este proceso lo repite hasta cifrar el
número de textos almacenados en la memoria del EUA que depende de la capacidad de su
memoria ROM.
Para realizar estas funciones es necesario implementar un programa específico que las
realice. Para este fin, se valoraron tres software de control de equipos:
Instrumentation Control ToolBox de Matlab R2010 [MathIns'10].
Labview 8.5 [NILab'07].
TekVisa Connectivity v3.3.3 [Tek'09]25.
Dado que las posibilidades de control y personalización que permitían los software de
Matlab y TekVisa, en el momento de la realización del estudio, eran muy inferiores a las de
Labview, se tomó la decisión de utilizar este último, junto con los drivers de control
proporcionados por el fabricante para dicho software: Instrument Driver Tektronix DPO
MSO 2000 4000 Series v.4.1.1 [NILab'09c].
4.2.6.1.1 Generación de textos aleatorios
Para la generación de los textos aleatorios de 16 bytes se ha desarrollado una aplicación
en Labview con tres variantes, una para cada tipo de microcontrolador, pues el código a
generar es distinto en cada caso, ya que depende del lenguaje de programación (ensamblador o
ANSI C) y del entorno de desarrollo utilizado:
8051:
DB 0E3H, 0D4H, 0EAH, 06EH, 091H, 02CH, 053H, 0E1H, 0E3H, 011H, 091H, 056H, 00AH, 042H, 0B8H, 01AH, \
0F7H, 0BEH, 0F4H, 043H, 03EH, 092H, 00FH, 059H, 0A9H, 029H, 07CH, 0AAH, 068H, 0BBH, 0B8H, 071H, \
ARM7 y Cortex LPC1769:
0xE4, 0x57, 0x89, 0x74, 0x2D, 0x8A, 0x01, 0xFA, 0x15, 0x4E, 0xA0, 0x4A, 0xA8, 0xBD, 0x61, 0x62,
0xA3, 0xBF, 0x16, 0xCA, 0x7A, 0x69, 0xC8, 0x45, 0x90, 0xEB, 0xA8, 0x4B, 0x33, 0x64, 0xB4, 0xA2,
ARM Cortex STM32:
0x47, 0xF6, 0xAF, 0xF3, 0x8B, 0xB8, 0xF4, 0x96, 0x56, 0x82, 0xEB, 0x9B, 0x26, 0xAA, 0x7B, 0xA7,
0xAB, 0xEB, 0x87, 0xD6, 0x05, 0xEB, 0x24, 0x6A, 0xFA, 0x13, 0x86, 0xCF, 0x38, 0xA6, 0xCF, 0xBF,
25 Consiste en un software de control específico del fabricante del osciloscopio.
4. Setup Experimental de Medida
73
La interfaz de la aplicación es muy sencilla (Figura 4.40). Únicamente se indica el
número de textos a generar, la dirección donde se creará el archivo con los textos y el formato
del archivo: “txt” o “csv”.
Figura 4.40: Interfaz aplicación Labview para la generación de textos planos
4.2.6.1.2 Control de Cadena Medida
En cuanto al software de control de la cadena de medida del CEMA, consta de una
interfaz gráfica a través de la cual es posible controlar distintos parámetros para la captura de
la trazas EM:
Figura 4.41: Interfaz aplicación Labview para el control de la cadena de medida
Esta aplicación permite configurar dos de los cuatro canales disponibles del
osciloscopio, estableciendo diversos parámetros, como su impedancia de entrada, escala
4. Setup Experimental de Medida
74
vertical, acoplamiento, ancho de banda y offset. Uno de ellos recibirá la señal de trigger
proveniente del EUA, y el otro la señal EM capturada por la sonda previamente amplificada,
por lo que la aplicación permite establecer otros parámetros:
Señal de Trigger: Se debe definir el tipo de disparo (normal o automático), el nivel, la
detección por flanco de subida o bajada y el canal que actuará como tal.
Señal EM: Se debe seleccionar el canal y tipo de adquisición (muestreo, detección de picos,
alta resolución, envolvente o promediado), longitud de registro (1k, 10k, 100k, 1M o 10M),
escala horizontal, tiempo de retardo y tiempo de espera máximo.
Por otro lado, también es posible configurar todos los aspectos relacionados con los
datos de salida: número de medidas26, nombre y dirección de los archivos resultantes, tipo de
archivo (.txt o .csv), puntos iniciales de la traza a descartar, número de puntos de la traza que
se guardarán y sufijo del primer archivo creado27.
El proceso de configuración requiere conocer previamente el tiempo de ejecución del
AES en el microcontrolador bajo ataque, para en función de este parámetro, establecer otros
como la longitud del registro, escala horizontal, tiempo de retardo, puntos a salvar etc. Para
ello, se puede modificar provisionalmente el código del EUA e incluir una señal de trigger
adicional que indique el fin de la ejecución del algoritmo de encriptación y permita medir su
duración.
4.2.6.1.2.1 Señal de Encriptación
Como se ha explicado previamente, durante el ataque el EUA permanece a la espera, y
únicamente cifra el siguiente texto almacenado en su memoria cuando recibe una señal de
inicio de encriptación del PC. Para la generación de esta señal se recurrió a un cable comercial
conversor de USB a TTL, denominado TTL-232R [FTDI'10], Figura 4.42.
Utilizando dos de sus pines (RQS y tierra) y los drivers proporcionados por el
fabricante para el software Labview, se consigue generar una onda cuadrada, que el EUA
interpreta como señal de inicio de la encriptación.
26 El número de medidas deberá concordar con el número de textos almacenados en el EUA. 27 Por defecto, el programa nombra a los archivos con un sufijo que indica el número de medida, empezando por 0. Esta opción, permite establecer un sufijo inicial distinto de cero, para así poder concatenar medidas sucesivas.
4. Setup Experimental de Medida
75
Figura 4.42: Cable TTL-232R para la señal de encriptación
4.2.6.2 El PC en la fase de análisis de datos
Una vez almacenadas las trazas EM en memoria, es necesario realizar un estudio
estadístico y presentar los resultados gráficamente. Se requiere, por tanto, un software
matemático. En este caso, se sopesaron dos alternativas:
Matlab R2010 [MathMat'10].
R 2.11.1 [R'10].
Finalmente, se decidió usar Matlab, pues además de conocer su gran eficiencia, se
contaba con experiencia previa de uso, al contrario que R.
Para tal fin, se han creado dos aplicaciones gráficas con Matlab GUI [MathGui'10],
incluida en el paquete Matlab R2010. La primera, cuya interfaz se muestra en la Figura 4.43,
permite leer las trazas de memoria y ejecutar un CEMA utilizando los modelos de consumo
HW y HD, tal como se describe en el epígrafe 3.4.
Figura 4.43: Interfaz aplicación CemaGui para la realización de un ataque CEMA
La ejecución de la aplicación requiere indicar varios parámetros, como la dirección que
contiene los archivos con las trazas EM, nombre de los archivos sin el subíndice, número de
4. Setup Experimental de Medida
76
archivos o trazas EM, textos que han sido encriptados durante el ataque, modelo de consumo
a utilizar (HW o HD) y fase del algoritmo AES que se desea atacar.
Aparte de ello, la aplicación tiene implementadas varias funcionalidades como son:
a) Leer la totalidad o parte de los registros de las trazas guardadas en memoria del
osciloscopio28.
b) Seleccionar la función o funciones que se desean ejecutar: leer las trazas de memoria para
obtener la matriz T, realizar el análisis estadístico a partir de la matriz T o el test completo.
Al seleccionar una de las funciones varían los datos solicitados, y los que no son necesarios
se deshabilitan, tal como se muestra en la Figura 4.43. En ese caso se ha seleccionado
realizar únicamente el análisis estadístico, y por esa razón solicita el nombre de la matriz T,
y parámetros como el número de trazas o el subíndice de la primera traza se han
deshabilitado.
c) Informar al usuario de la evolución del ataque durante su ejecución, puesto que, en
función de la longitud del registro, puede demorar varias horas.
Al finalizar, el programa muestra la clave que genera una mayor correlación y el
registro en el que se produce, lo que permite conocer el momento en el que la clave es usada
en el algoritmo. Así mismo, presenta el C.C. obtenido en cada uno de los registros para la
clave con mayor C.C., con una gráfica como la siguiente:
Figura 4.44: Gráfica C.C. – Registro para la clave con mayor Coeficiente de Correlación
28 En algunos casos, en función del número de registros y trazas, se puede dar el caso de que el PC no tenga suficiente capacidad para computar la totalidad de los registros de las trazas, por lo que será necesario dividir la traza en varias partes.
4. Setup Experimental de Medida
77
El objetivo de la segunda aplicación desarrollada, Figura 4.45, es la obtención de la
gráfica Coeficiente de correlación – número de medidas, que normalmente se calcula para el
registro que genera mayor C.C. obtenido con la aplicación anterior CemaGui. Pese a ello, se ha
implementado la posibilidad de determinar la gráfica para varios puntos si las prestaciones del
equipo informático y el número de medidas a analizar lo permiten.
Figura 4.45: Interfaz aplicación CemaGuiGraphCC para la obtención de la gráfica CEMA-Medidas
La gráfica obtenida permite conocer la evolución del C.C. en función del número de
textos o trazas capturadas para su cálculo, para cada una de las 256 claves posibles. Con ella es
posible visualizar de forma gráfica el número de medidas necesarias para poder deducir la
clave. Por ejemplo en la Figura 4.46 se aprecia cómo a partir de la traza 286 aproximadamente,
el C.C. de la clave correcta comienza a desmarcarse del resto y el ataque comienza a ser
efectivo.
Figura 4.46: Gráfica Coeficiente Correlación – Número de Trazas
En este punto cabe decir, que la repetitividad de las medidas realizadas para un
CEMA, depende directamente del ruido presente. Puesto que éste no se puede eliminar de
4. Setup Experimental de Medida
78
forma total, siempre existirá cierta variabilidad. En otras palabras, dos ataques consecutivos
sobre un mismo dispositivo en igualdad de condiciones, darán resultados parecidos pero
nunca exactamente iguales. Por ese motivo, a la hora de determinar un valor, éste se deberá
fijar con un cierto nivel de confianza para asegurar que se cumplirá en circunstancias similares.
4.2.7 Equipo Bajo Ataque (EUA)
El equipo bajo ataque en este estudio va a consistir en uno de los microcontroladores
detallados en el epígrafe 3.5. Respecto a éste, se han analizado varios elementos importantes.
4.2.7.1 Comunicación Equipo Bajo Ataque - PC
En la literatura es común el uso de una comunicación RS232 para interconectar PC y
EUA [[Aig'00], [Pop'07], [Man'07], [Rea'09], [Mat'10], [Hay'12]]. Este sistema se utiliza como
medio para transmitir al PC el texto cifrado previamente, recibir el siguiente texto a cifrar e
indicar el momento de comienzo de la encriptación del siguiente texto.
En este estudio se sopesó la idea de utilizar una interfaz serie 232 como medio de
comunicación entre PC y EUA, y por ese motivo se implementó en la placa EMA 1, aunque
finalmente no se utilizó. La idea se desechó principalmente porque el conversor de niveles es
un elemento muy ruidoso que puede dificultar las medidas29 y, dado que se dispone de
memoria suficiente en el EUA para almacenar los textos, no se utilizó. En su lugar se
almacenaron los textos a encriptar en la memoria ROM del EUA y se utilizó un cable
conversor USB-TTL para la sincronización con el PC.
4.2.7.2 Señal de Reloj
En [Man'07] los autores recomiendan la utilización de una señal de reloj sinusoidal,
para reducir la cantidad de ruido presente en las medidas. Esto exige el uso de un generador de
onda de alta calidad y la adición de un conector extra. En el afán de hacer el sistema lo más
eficiente y sencillo posible, se decidió usar una señal cuadrada a partir de cristal de cuarzo más
estable que la red RC interna de algunos microcontroladores.
4.2.7.3 Señal de Trigger
A la hora de formalizar un ataque, tan importante es que la señal de reloj sea estable
como que las señales captadas estén completamente alineadas en el tiempo. Una desalineación
de las trazas supone una disminución notable de la efectividad del mismo, tanto es así, que
supone la base de numerosas contramedidas software implementadas [Geb'08b]. 29 En [Man'05a] los autores aíslan ópticamente la parte del circuito dedicada al interfaz RS232 para evitar posibles acoplamientos.
4. Setup Experimental de Medida
79
La sincronización de las medidas se puede conseguir a través de una referencia o
utilizando diferentes técnicas, como:
Identificación de patrones [Hom'06],
Análisis en el domino de la frecuencia [Tiu'05],
Integración [Cla'00] etc.
En este estudio se ha utilizado una referencia consistente en una señal de trigger
cuadrada generada por el propio EUA. Con esta técnica, las desalineaciones presentes tienen
su origen principalmente en tres factores, la arquitectura del EUA, el ruido presente y el
mecanismo de trigger del osciloscopio [Tiu'05].
En cuanto a la arquitectura poco se puede hacer para mejorar la sincronización. En
general, los lenguajes de alto nivel introducen más desalineaciones que los de bajo nivel. En
cuanto al ruido, como ya se ha visto, se han tomado diversas medidas para atenuarlo: el uso de
una batería, cámara anecoica, cables apantallados etc. Tan solo queda mejorar la
sincronización por la vía del mecanismo de trigger. Por tal motivo se decidió profundizar en
dicho elemento, analizándolo en detalle.
4.2.7.3.1 Estudio de la generación de la Señal de Trigger
El objetivo de este análisis es tratar de conseguir una sincronización lo más ideal
posible, que permita captar siempre la misma porción de la señal EM.
Por tanto, en primer lugar, se plantea la necesidad de generar una señal de trigger con
la mayor calidad posible, esto es, lo más afín a una señal cuadrada perfecta. Para ello, se toma
la placa EMA 2 y se programa un software cíclico que genera dos señales cuadradas de 100 µs
cada una, a través de uno de sus puertos de salida. El flanco de bajada del primero indicaría el
comienzo de la zona de interés y el flanco de subida del segundo pulso el fin. Posteriormente
se diseña una aplicación en Labview que permite analizar estadísticamente la posición de
disparo del osciloscopio Tektronix MSO4104 para cada uno de los pulsos, Figura 4.47. Ésta
almacena la posición de los disparos generados para el número de iteraciones seleccionado, y
los analiza estadísticamente calculando los puntos máximos y mínimos, variancia, desviación
típica y media.
4. Setup Experimental de Medida
Con la ayuda de esta aplicación se estudia la calidad de la señal de trigger generada con
diversas configuraciones hardware que se implementaron:
Configuración 1: Consiste en conectar al puerto de la placa EMA 2 la base de un
transistor, tal como aparece en la figura, de forma que se puede controlar la saturación y corte
del transistor en función de la salida del puerto:
Configuración 2: Se añade a la configuración 1 un inversor schmitt trigger M74HC14
de alta velocidad [ST'01].
4. Setup Experimental de Medida
Configuración 3: Se basa en conectar un inversor schmitt trigger M74HC14 de alta
velocidad, a la salida del puerto del microcontrolador. Si se analiza el sistema, se observa que
éste se conecta a un osciloscopio a través de un cable BNC cuya impedancia característica es
50Ω. Por otro lado, el osciloscopio está configurado por defecto con una impedancia de
entrada de 1MΩ. Existe, pues, una desadaptación entre las impedancias que puede provocar
distorsiones en la señal, por lo que se investiga también el efecto que tiene la impedancia de
entrada seleccionada en el osciloscopio.
Configuración 4: Se analiza el efecto que tiene usar varios schmitt trigger M74HC14
en paralelo.
4. Setup Experimental de Medida
Configuración 5: Se conecta un schmitt trigger en serie con el microcontrolador y a
continuación 5 en paralelo. Con este setup se intenta analizar el posible efecto de carga sobre
el puerto de microcontrolador, que tiene el uso de varios schmitt trigger en paralelo.
A continuación se muestran los resultados obtenidos del análisis de las distintas
configuraciones implementadas. En la Tabla 4.4 se comparan los tiempos y pendientes de
subida y bajada o Slew Rate, de los pulsos y en la Tabla 4.5 y Tabla 4.6 se presentan los
resultados estadísticos obtenidos tras realizar 1000 disparos con cada una de las
configuraciones. Se indica la diferencia máxima entre los registros máximo y mínimo en el que
se ha producido el disparo, la desviación típica y la varianza.
Donde:
Tiempo: Se define como el tiempo necesario para que el pulso se eleve/descienda desde el
valor de referencia bajo/alto, hasta el valor de referencia alto/bajo, siendo el valor de
referencia bajo el correspondiente al 10% del pulso y valor de referencia alto el 90% del
pulso.
4. Setup Experimental de Medida
83
Pendiente: Definida como la medida entre los puntos en los que la tensión toma el valor de
nivel bajo y el valor de nivel alto, sin tener en cuenta las posibles oscilaciones posteriores,
tal como se muestra en el ejemplo de la Figura 4.53:
Figura 4.53: Determinación de la pendiente del flanco
Tabla 4.5: Análisis estadístico flanco bajada 1000 señales trigger
Flanco Bajada
Configuración Dif. Max. Desv. Est. Varianza 1 17 3 7
2 51 4 18
4(1 s.t.)* 1 0.46 0.21
4(2 s.t.) 1 0.48 0.23
4(3 s.t.) 1 0.47 0.22
4(4 s.t.) 1 0.47 0.22
4(5 s.t.) 2 0.45 0.20
4(6 s.t.) 2 0.39 0.15
5 2 0.46 0.21
* Obsérvese que la configuración 3 (50Ω) es igual a la 4 (1 s.t.), por ese motivo, no se ha añadido a la
tabla.
Tabla 4.6: Análisis estadístico flanco subida 1000 señales trigger
Flanco Subida
Configuración Dif. Max. Desv. Est. Varianza 1 526 85 7180
2 64 5 23
4(1 s.t.) 2 0.45 0.18
4(2 s.t.) 2 0.45 0.18
4(3 s.t.) 1 0.50 0.20
4(4 s.t.) 1 0.49 0.24
4(5 s.t.) 2 0.47 0.06
4(6 s.t.) 2 0.45 0.20
5 2 0.50 0.25
4. Setup Experimental de Medida
84
Analizando los resultados se llega a la conclusión que el uso del schmitt trigger mejora
de forma notable la calidad de la señal de trigger generada, aunque la configuración del
osciloscopio es también un elemento a considerar, como se desprende de los resultados
obtenidos de la configuración 3. En la siguiente imagen se puede apreciar el flanco de bajada
generado con las dos impedancias de entrada del osciloscopio. Como se aprecia, las
distorsiones presentes con la impedancia de 1MΩ desaparecen al seleccionar 50Ω. Por ese
motivo, el resto de medidas se realizaron con esta última configuración.
Figura 4.54: Flanco bajada ZIN=1MΩ (izquierda) ZIN=50Ω (derecha)
Durante la realización de las pruebas también se manifestó una pequeña influencia de
la longitud de los cables en la pendiente de los flancos. Ésta es poco significativa, no obstante
se intentó disminuir acortándolos al máximo.
Tras concluir el estudio se decidió utilizar la configuración 4, con seis schmitt trigger
en paralelo. Respecto del pulso de bajada (realmente el más importante puesto que es el que
indica el inicio de la traza a medir), se comprueba que, aunque curiosamente la distancia
máxima es superior a la obtenida con menos inversores en paralelo, consigue mejores valores
de desviación típica y varianza. Algo fundamental cuando se precisa una sincronización estable
durante un alto número de repeticiones.
4.2.8 Mesa sujeción
Un elemento que en la mayoría de los setup pasa desapercibido y que en esta
disertación ha demostrado su importancia, es la mesa de realización de los ensayos. Durante la
ejecución de un ataque, es primordial que la sonda EM no varíe su posición. Si la posición de
ésta cambia durante el proceso de captura de los registros EM, los resultados no serán
satisfactorios o en el mejor de los casos, se verá aumentado el número de medidas necesarias
para su realización.
En este estudio fue necesaria la fabricación de una mesa que aislara el test de las
vibraciones presentes en el edificio. Para ello, se construyó una base o peana con elastómeros
4. Setup Experimental de Medida
85
de caucho adaptable a la mesa, lo suficientemente pesada para realizar la función de
amortiguador. Véase las siguientes figuras:
Figura 4.55: Mesa test setup
Figura 4.56: Base mesa test setup: detalle elastómeros
4.2.9 Cámara Anecoica
La cámara anecoica elimina toda perturbación externa, tanto radiada como conducida,
ya que trabaja como una caja de Faraday que evita la entrada de componentes radiadas.
Además, en la mayoría de los casos incluye un filtro EMI que asegura una tensión de
alimentación libre de ruido.
Por tanto su uso es muy recomendable [[Vua'09], [Mey'11]], aunque no obligado. Por
ejemplo, en su estudio Peeters y otros autores [Pee'07], recomiendan el uso de una cámara de
Faraday para eliminar el posible ruido ambiental, pese a ello, llevaron a cabo sus experimentos
de forma suficientemente precisa sin la ayuda de una cámara.
4. Setup Experimental de Medida
86
Otros autores como [[Qui'01], [Sou'10]], utilizan métodos alternativos para evitar
perturbaciones externas. Por ejemplo, Soussi y sus compañeros desarrollan una pequeña caja
de Faraday de acero recubierta de aluminio, donde introducen el EUA y la sonda para así
evitar el ruido externo, tanto magnético como electrostático. El inconveniente de este método
es que puede producir reflexiones, sobre todo a bajas frecuencias [Sau'10] y el aislamiento de
dos elementos de la cadena de medida no asegura la ausencia de ruido en la medida si el resto
se encuentran sometidos a un ambiente EM contaminado [Gan'01].
En este trabajo, dado que se disponía de ella, se realizaron todos los ensayos dentro de
una cámara semianecoica con filtro EMI de 220v, Figura 4.57 y Figura 4.58:
Figura 4.57: Filtros EMI alimentación cámara anecoica
Figura 4.58: Cámara Semianecoica laboratorio CEM Universidad Carlos III de Madrid donde se realizaron las medidas
5. Resultados Experimentales
87
Capítulo 5
RESULTADOS EXPERIMENTALES
En este epígrafe se van a mostrar los resultados experimentales obtenidos para intentar
determinar la seguridad inherente relativa a los ataques por canal lateral electromagnético
EMA, de los cuatro microcontroladores de propósito general bajo estudio. En cada uno de
ellos se programó el estándar de encriptación AES en su versión de 128 bits, sin ningún tipo
de contramedida software ni hardware, y se realizaron varios ataques CEMA a cada uno de
ellos utilizando tres sondas EM distintas de campo cercano preamplificadas, situadas en varias
posiciones. La diferencia de efectividad del ataque en cada uno de ellos, ha proporcionado un
indicativo de su seguridad congénita.
5.1 Placa EMA 1: C8051F303 8 bits
5.1.1 Desarrollo Experimental del Ataque
Paso 1. Programación AES
El primer paso es realizar la programación del estándar de encriptación en la placa bajo
estudio. Este proceso se ha realizado utilizando el entorno de desarrollo facilitado por el
fabricante del equipo: “Silicon Laboratories IDE” [SL'09] y el adaptador “USB Debuger Adapter”
[SL'06], que permite la conexión del PC con el microcontrolador.
El algoritmo AES para este dispositivo se ha escrito en lenguaje ensamblador,
tomando como base la versión publicada en lenguaje ANSI C en [SL'07], con algunas
modificaciones que optimizan el uso de memoria. Éste, realiza la encriptación de los textos
5. Resultados Experimentales
88
aleatorios almacenados en su memoria de programa de forma consecutiva utilizando una clave
prefijada. Dado que la memoria interna del C8051F303 es relativamente limitada (8 Kb), sólo
permite el almacenamiento de alrededor de 300 textos de 16 bytes. Por ese motivo, el proceso
de captura de trazas se ha realizado en bloques de 250 medidas, hasta obtener las 1000
necesarias para cada análisis.
La obtención de los textos aleatorios para su cifrado con el formato adecuado para
ensamblador, se ha realizado mediante una aplicación desarrollada ex profeso en Labview,
como ya se ha revelado en el capítulo anterior.
Paso 2. Captura de Trazas
Para realizar este paso es necesario montar el setup completo, tal como se explicó en el
epígrafe anterior y configurar el osciloscopio de forma que capture la señal asociada a la
ejecución del algoritmo de encriptación.
La captura de los registros EM se ha realizado con tres sondas distintas, dos
comerciales y una fabricada de forma artesanal:
1. EM6995: Sonda comercial Electrometrics EM6995, conectada al osciloscopio a
través de un cable BNC macho-macho 2249-Y-72 y preamplificador Langer
PA303.
2. MFA-R: Sonda comercial Langer EMV MFA-R 0.2-75 milimétrica conectada al
osciloscopio a través de cable SMA macho-macho, preamplificador Bias-Tee BT
706 y cable BNC macho - SMA hembra.
3. Homemade: Sonda artesanal fabricada con hilo de cobre esmaltado, conectada al
osciloscopio a través de un cable BNC macho-macho 2249-Y-72 y preamplificador
Langer PA303.
El posicionamiento de las sondas sobre el dispositivo se ha hecho en función del nivel
de la señal captada. Es decir, se han buscado los puntos en los que la señal captada es máxima
y sobre esos puntos se han realizado las capturas. Para el caso concreto de la sonda EMV de
cabeza milimétrica, se ha dividido la superficie del microcontrolador con una cuadrícula
milimétrica, lo que permite una identificación clara de la zona de medida y cierta repetitividad
de las medidas.
En cuanto a la configuración del osciloscopio digitalizador para realizar la captura, es
necesario medir previamente el tiempo de ejecución del AES sobre este dispositivo. Una vez
conocido este dato, y sabiendo que el muestreo se va a realizar a su frecuencia máxima (5
5. Resultados Experimentales
89
Gmuestras/segundo), se tienen que definir los parámetros de configuración necesarios, como
la longitud del registro, escala y posición horizontal, retardo, número de medidas… para que
de este modo, la parte de la señal a capturar se muestre íntegramente y la captura comience en
el momento adecuado.
El tiempo de ejecución de las dos primeras rondas del AES: “AddRoundKey” y
“Subbytes”30 incluido el preprocesado con este dispositivo ejecutándose a una frecuencia de
11.0592MHz, es de:
A partir de este dato se establece la configuración del osciloscopio y se realizan las
medidas oportunas, haciendo uso de la aplicación desarrollada en Labview tal y como muestra
la siguiente imagen:
Figura 5.1: Configuración Setup Medida Placa EMA 1
Paso 3. Análisis de Resultados
Una vez capturadas las trazas EM, con la ayuda del software diseñado en Matlab, se
determina la clave supuesta utilizando la metodología del CEMA detallada en el epígrafe 3.4.
30 Para llevar a cabo el ataque CEMA, únicamente es necesario captar la señal asociada a la etapa de Subbytes, pero en este estudio se captó también la fase inicial AddRoundKey para la realización de otras pruebas. Después en el procesado se descartaron.
5. Resultados Experimentales
90
En este trabajo, a diferencia de lo expuesto en la bibliografía, se han analizado varios modelos
de consumo, siendo el HW el que genera mejores resultados y en algunos casos el único que
genera resultados satisfactorios. Por este motivo, el consumo teórico se ha calculado
utilizando únicamente este algoritmo.
Los programas implementados proporcionan los siguientes datos:
a) Presunta clave: aquella que genera el mayor C.C.
b) Coeficiente de correlación máximo correspondiente a la presunta clave.
c) Registro donde se genera la mayor correlación: Permite determinar, a partir del ratio
de muestreo (5 Gmuestras/sg), el instante o instantes de tiempo en el que el byte de la
clave es computado en el algoritmo de encriptación AES.
d) Gráfica “Coeficiente de Correlación – Registro” para la clave supuesta: Representa
el coeficiente de correlación obtenido a partir de la supuesta clave para cada uno de los
registros de la traza. Si la suposición hecha es correcta, permite conocer gráficamente los
momentos en los que el algoritmo opera con el byte bajo ataque. La Figura 5.2 muestra
una gráfica de este tipo, resultado de un CEMA sobre el byte 6 de la clave.
Figura 5.2: Gráfica C.C. – Registro para la clave hipotética con mayor coeficiente de correlación
En este ejemplo aparecen varios picos31, signo de que el byte de la clave objeto del ataque
es usado en varias instrucciones del algoritmo. En concreto en dos instrucciones de 5
ciclos de reloj de duración, que concuerda con el número de grupos de picos de la gráfica:
31 Muy típico en implementaciones software, donde primeramente el byte es calculado y luego movido a una posición de memoria a través de un registro [Man'07].
5. Resultados Experimentales
91
INSTRUCCIÓN DURACIÓN
MOVC A , @A+DPTR 3 ciclos
MOV State+06H , A 2 ciclos
e) Gráfica “Coeficiente de Correlación – Número de Trazas”: Muestra la evolución del
coeficiente de correlación de cada una de las 256 claves posibles, en función del número
de textos cifrados para el registro con mayor C.C. El coeficiente asociado a la clave
hipotética se representa en color rojo, para su diferenciación del resto como se puede
apreciar en la Figura 5.3.
A partir de esta gráfica se puede determinar de forma visual, el número mínimo de
medidas o textos a cifrar para poder determinar la clave con suficiente confianza, lo que
permite comparar numéricamente la efectividad relativa del ataque en las distintas
implementaciones del algoritmo.
Figura 5.3: Gráfica Coeficiente Correlación - Número Trazas
Dado que las medidas realizadas en un EMA, y por ende PA, no son deterministas32
debido a la presencia incondicional de ruido, se ha decidido fijar el número mínimo de
medidas necesarias para el éxito de un ataque con un nivel de confianza alto. Así, en este
estudio se ha establecido que éste es aquel en el que se cortan la envolvente de las curvas y
la diferencia de la curva asociada a la clave hipotética con la envolvente de las curvas.
Dicho de otro modo, el número mínimo de trazas, se corresponde con el punto en el que
el C.C. de la clave supuesta es doble del de la envolvente.
32 Dos medidas consecutivas nunca dan exactamente los mismos resultados.
5. Resultados Experimentales
92
En la siguiente gráfica referente a otro CEMA, se muestra visualmente su
determinación. En rojo se muestra la evolución en valor absoluto del C.C. asociado a la
clave supuesta, en verde la envolvente de las curvas, también en valor absoluto y en azul la
diferencia de la curva roja y verde. El punto en el que se cruzan las curvas verde y azul,
indica el número mínimo de medidas necesarias para realizar un CEMA sobre dicha placa
con suficiente confianza:
Figura 5.4: Determinación del número mínimo de medidas ataque CEMA
5.1.2 Resultados Experimentales
A continuación se muestran los resultados obtenidos al realizar el ataque por
correlación electromagnética CEMA al microcontrolador C8051F303 de la placa EMA 1,
utilizando tres sondas distintas.
Tanto la clave mostrada, como el byte 6 objeto del ataque han sido definidos de forma
totalmente aleatoria:
0C8H, 00AH, 04AH, 0BFH, 078H, 0D3H, 0B2H, 079H, 098H, 0A0H, 0B6H, 036H, 0B4H, 05EH, 09BH, 0D1H
El ataque se ha centrado en la fase ‘Subbytes’ de la primera fase, debido a que es la que
ha proporcionado mejores resultados. El número de medidas realizadas y, por ende, de textos
encriptados, por cada posición y sonda es 1000, muy por encima del valor mínimo de medidas
necesarias para realizar el ataque sobre este dispositivo.
Los resultados obtenidos se muestran en la Tabla 5.1.
Como conclusiones provisionales a partir de estos resultados se puede decir que
cualquier sonda es factible de ser usada para un CEMA sobre la placa EMA 1 y la sonda
5. Resultados Experimentales
93
MFA-R es la que consigue mejores resultados, pues obtiene un C.C. mayor y hace el ataque
más efectivo ya que requiere un menor número de medidas.
Tabla 5.1: Resultados ataque CEMA sobre placa EMA 1
SONDA POSICIÓN
COEF. CORRELACIÓN
VALOR Nº TRAZAS
EM6995
EM1 0.759 65
EM2 0.711 82
EM3 0.541 477
EM4 0.621 195
MFA-R
MF1 0.803 104
MF2 0.880 58
MF3 0.840 46
MF4 0.844 93
HOME
HO1 0.678 90
HO2 0.793 46
HO3 0.723 60
5.1.3 Resultados Experimentales Adicionales
En este apartado, para intentar esclarecer algunos aspectos de los ataques por canal
EM en general y de los CEMA en particular, se van a detallar los experimentos realizados
sobre la placa EMA 1.
5.1.3.1 Número mínimo de medidas ataque CEMA
Como ya se ha explicado, el número mínimo de medidas necesarias para que un
CEMA tenga éxito, se ha definido como aquel para el cual el C.C. de la clave correcta se hace
doble del de la envolvente del resto de claves para el registro que genera mayor correlación.
En la siguiente figura por ejemplo, éste se corresponde con la traza número 1413:
5. Resultados Experimentales
94
Figura 5.5: Registro que indica el número mínimo de trazas del ataque CEMA
La pregunta que surge es por qué escoger el registro con mayor C.C. para realizar
dicho análisis, o dicho de otro modo, el número mínimo de trazas es inversamente
proporcional al C.C. del registro analizado. En la siguiente imagen se muestra el C.C. obtenido
de un CEMA sobre el byte 2 de la clave, en cada uno de los registros de la traza para la clave
correcta, utilizando el modelo HW:
Figura 5.6: C.C. en función del registro de la traza para la clave correcta
Si ordenamos los registros en función del valor del C.C. obtenido y determinamos el
número mínimo de medidas para los más correlados, se obtienen los siguientes resultados:
5. Resultados Experimentales
95
Tabla 5.2: Análisis número mínimo de medidas para los registros más correlados con HW
Registro C.C. Nº
Trazas
43872 0.726 101
43027 0.707 103
43030 0.705 122
43031 0.704 143
43029 0.699 118
43873 0.699 103
Si se seleccionan algunos registros que presentan un máximo local (es decir en picos de
la traza), se obtiene lo siguiente:
Tabla 5.3: Análisis número mínimo de medidas para máximos locales de coeficiente de correlación con HW
Registro C.C. Nº
Trazas
43872 0.726 101
43228 0.661 111
43402 0.454 317
43911 0.631 103
44301 0.545 241
44333 0.691 80
43063 0.578 243
44776 0.541 103
44815 0.456 416
45234 0.499 221
43442 0.366 383
45335 0.252 745
45645 0.130 3112
Como se aprecia, en general, cuanto mayor es el C.C., menor es el número de trazas o
medidas que es necesario realizar para conseguir un ataque exitoso. Este hecho se comprueba
de forma más clara si se expresan los resultados gráficamente, Figura 5.7:
5. Resultados Experimentales
En el caso de utilizar el modelo de consumo HD, se obtienen resultados similares:
Registro C.C. Nº Trazas
43837 0.364 263 43838 0.345 485 43833 0.241 2270 43904 0.232 3488 43836 0.231 1414 43906 0.229 ERROR
Por consiguiente, como se desprende del análisis, no existe una relación lineal entre el
C.C. obtenido y el número mínimo de trazas. Sin embargo, salvo algún caso concreto, suele
ser necesario un menor número de trazas en los ataques en los que se obtiene un C.C. más
alto.
5.1.3.2 Ataque CEMA sobre la fase AddRoundKey del AES
Como se ha mencionado anteriormente, los CEMA implementados en este estudio se
han realizado sobre la fase Subbytes de la primera ronda del estándar de encriptación AES,
porque es donde se obtienen mejores resultados. Según la literatura, las operaciones no
lineales como Subbytes, aumentan la eficiencia de los ataques [[Pra'04], [Man'07]], aunque no
se demuestra el por qué.
0
200
400
600
800
1000
0.13
0.25
0.37
0.45
0.46
0.50
0.54
0.55
0.58
0.63
0.66
0.69
0.73
Nº
Traz
as
C.C.
3112
5. Resultados Experimentales
97
En la Figura 5.8 se muestra el resultado de realizar un CEMA utilizando el modelo de
consumo HW sobre la operación lineal AddRoundKey de la ronda inicial (como ya se ha
visto, también susceptible de ser atacada). En rojo se ha destacado la evolución del C.C.
asociado a la clave correcta con valor 10D = 0AH.
Figura 5.8: Gráfica Coeficiente Correlación – Trazas fase AddRoundKey
Como se puede advertir, los resultados obtenidos son peores. La gráfica obtenida es
simétrica respecto del eje de abscisas. Esto es debido a que las claves con valores
complementarios presentan un mismo valor absoluto de C.C., algo lógico, pues si se calculan
sus valores teóricos de consumo aplicando HW, generan valores también complementarios.
Por ese motivo, la clave 10D=0AH=00001010B genera una correlación igual pero con distinto
signo que 245D=F5H=11110101B.
De esta forma, el resultado del ataque no es totalmente satisfactorio. Dos claves
generan el máximo C.C.: 0.739 y el nivel de incertidumbre es superior, puesto que aparecen
claves incorrectas con un valor de correlación muy similar al de la clave correcta. En el
ejemplo de 0.680.
En este caso, el algoritmo HD no puede aplicarse. Genera resultados incorrectos
debido a que su solución únicamente depende de la clave supuesta:
( ) ( ) ( )
5.1.3.3 Análisis modelos de consumo
En este trabajo se han aplicado varios tipos de modelos de consumo:
a) Hamming Weight
( ) ( )
Donde:
5. Resultados Experimentales
98
b) Hamming Distance
( ) ( ( ))
c) Modelo propio implementado que simula el consumo de la fase Subbytes al
computar el byte i basado en HW:
( ) ( ) ( ( )) 33
d) Igual a c) pero basándose en HD:
( ) ( ( ) ) ( ( ))
De estos modelos, los dos últimos resultan ser inválidos, planteando como solución
claves incorrectas. Esto se debe a que simulan el consumo de una fase del AES, no un
consumo instantáneo.
En cuanto a los dos primeros, el HW resultó ser más efectivo, pues consigue unos
valores de C.C. superiores a los obtenidos con HD y descifra la clave con un menor número
de trazas. En la siguiente tabla se muestran los C.C. máximos obtenidos de un CEMA
realizado sobre la placa EMA 1, utilizando la sonda comercial EM6995:
Tabla 5.5: Análisis C.C. en función del modelo de consumo usado
Nº Textos
Subbytes
HW HD
5000 0.717 0.3353
1000 0.718 0.2776
500 0.729 -*
100 0.768 -
* El guion ‘-‘, indica que el ataque generó un valor incorrecto de clave.
Si se analiza el número de trazas necesarias para realizar el ataque de forma
satisfactoria, se constata que con HD es necesario un número casi diez veces superior que con
HW: Tabla 5.6, Figura 5.9 y Figura 5.10.
Tabla 5.6: Análisis número de trazas en función del modelo de consumo
Nº Mínimo Trazas
Subbytes
HW HD
70 690
33 Esta ecuación modela el consumo de la fase Subbytes de un byte, implementada en el C8051F303: MOV A,State+05H MOVC A,@A+DPTR MOV State+05H,A
5. Resultados Experimentales
99
Figura 5.9: Número mínimo trazas aplicando HW
Figura 5.10: Número mínimo trazas aplicando HD
Se debe tener en cuenta que los dos ataques se realizaron sobre las mismas trazas y con
las mismas condiciones. La única diferencia existente, es el modelo de consumo aplicado. No
obstante, si se descartan las primeras 1000 trazas EM, para intentar evitar la caída brusca de
correlación obtenida con el modelo HD (véase la Figura 5.10), se consiguen mejores
resultados para éste último, aunque siguen siendo inferiores a los alcanzados con HW:
Tabla 5.7: Análisis número de trazas en función del modelo de consumo para 4000 trazas
4000 Trazas
C.C.
Nº Trazas
HW 0.726 101
HD 0.361 263
5. Resultados Experimentales
100
Por consiguiente, se puede llegar a la conclusión de que el HW resulta ser un modelo
de consumo, que en el caso concreto de la placa EMA 1, genera mejores resultados en cuanto
a nivel de correlación obtenido y número de trazas necesarias. Además, se muestra más
robusto, al ser afectado en menor grado por posibles errores de medida.
5.1.3.4 Análisis comportamiento sondas bajo estudio
Para estudiar más en detalle el comportamiento de las sondas utilizadas en este estudio,
se han llevado a cabo otros ensayos que intentan esclarecer su comportamiento.
Para ello, se ha realizado un experimento compuesto por dos fases, que permiten
analizar la idoneidad de un SCA EMA/PA. En una primera etapa se ha medido la radiación
EM emitida por el dispositivo EMA 1 al ejecutar 1000 veces las dos primeras fases del
algoritmo de encriptación AES (AddRoundKey y SubBytes), sobre un texto fijo en el que
todos sus bits están a 1. Se obtienen así, 1000 vectores de 94100 registros cada uno, que
almacenan el campo EM asociado a la encriptación de los textos. La segunda fase es igual a la
primera, pero cambiando el valor de uno cualquiera de sus bits. De forma aleatoria se ha
elegido el bit 66, que tomará el valor 0, dejando el resto a 1. Una vez guardadas las 2000 trazas
correspondientes a estas dos fases, se realizan dos análisis, cuyo objetivo es la detección de los
puntos de influencia del bit 66 en las tramas medidas, es decir, los instantes correlacionados
con dicho bit. Dado que las pruebas se van a realizar con las tres sondas, los resultados
permitirán su comparación relativa.
Análisis 1: En este primer análisis se utiliza la “Relación Señal a Ruido” o SNR. De forma
general se define como el cociente de la varianza del dato, dividido por la varianza del
ruido presente en la medida. Este parámetro permite determinar la cantidad de
información que se está escapando en un punto de la traza. Para este caso particular, dado
que se dispone de dos grupos de datos, la fórmula se ha expresado como se detalla a
continuación:
( )
( )
( )
( ) ( ) ( ) ( )( )
(5.1)
Se obtiene así una tabla, con la SNR en cada uno de los puntos de las trazas, que se
puede representar gráficamente, Figura 5.11.
5. Resultados Experimentales
101
Figura 5.11: SNR obtenido con la sonda EM6995 en la posición EM3
Análisis 2: En este caso se realiza un análisis simple pero efectivo, que consiste en realizar
para cada grupo de medidas y para cada uno de los registros de las trazas, la media de las
1000 medidas. Se obtienen así dos vectores con las medias de cada uno de los 94100
registros. Por último, se calcula la diferencia de los dos vectores. Al igual que en el caso
anterior este estudio mostrará los puntos en los que el bit 66 es procesado:
(5.2)
Gráficamente se obtiene lo siguiente:
Figura 5.12: Diferencia Medias obtenido con sonda MFA-R en la posición MF4
A continuación se muestran los resultados obtenidos con las tres sondas. En la tabla se
muestra el registro que genera el mayor valor para cada una de las sondas y en cada una de las
posiciones de medida.
5. Resultados Experimentales
102
Tabla 5.8: Análisis comparativo sondas EM medida
SNR DIFERENCIA MEDIAS
MaxValor REGISTRO MaxValor
(mv) REGISTRO
EM6995
EM1 5.33 65.598 7.5 65.563
EM2 3.71 65.598 6.8 65.598
EM3 4.53 65.598 3.98 65.597
EM4 2.34 65.598 2.33 65.580
MFA-R
MF1 7.48 65.575 10.61 65.538
MF2 9.89 65.575 13.51 65.575
MF3 3 65.578 5.69 65.578
MF4 3.71 65.577 6.9 65.576
HOME
HO1 4.63 65.604 11.75 65.603
HO2 8.2 65.602 13.89 65.602
HO3 7.46 65.602 13.28 65.534
A la vista de los resultados se pueden obtener algunas conclusiones:
1. Las medidas SNR y Diferencia de Medias permiten determinar las zonas de
medida más susceptibles a un ataque. En general, un nivel alto de estos
parámetros implica un ataque más eficiente.
2. La medida SNR es más precisa pues ejerce la función de filtro, eliminando el
ruido presente y facilitando el análisis.
3. Las tres sondas son factibles de ser usadas en un EMA. Por tanto, no es
necesario un equipo muy costoso para su implementación.
4. La sonda MFA-R, al ser más pequeña, tiene un tiempo de respuesta inferior a
las otras, dado que detecta la posición correlada varios registros antes que las
otras dos sondas. Por consiguiente, proporciona una precisión mayor en
términos temporales.
5. La sonda MFA-R tiene una resolución espacial mejor, pero también requiere
un tiempo de preparación de la medida mayor, puesto que hay que seleccionar
el punto exacto donde medir con una resolución grande. Como se puede
observar en las siguientes dos gráficas, la posición de medida influye más en el
caso de la sonda MFA-R que en el caso de la sonda HOME:
5. Resultados Experimentales
103
Figura 5.13: Medida Sonda EMV en cuatro posiciones distintas
Figura 5.14: Medida Sonda HOME en tres posiciones distintas
5.2 Placa EMA 2: ARM7TDMI-S LPC2124FBD64 32 bits
5.2.1 Desarrollo Experimental del Ataque
Paso 1. Programación AES
Para este equipo el proceso de programación se ha realizado utilizando el entorno de
desarrollo: “Keil uVision” [Kei'08] y el adaptador “Ulink” [Kei'04], para la conexión USB Pc –
conector JTAG del microcontrolador.
El algoritmo AES para este dispositivo se ha escrito en lenguaje ANSI C a partir de la
versión [SL'07], con distintas mejoras para reducir su tiempo de ejecución. Al igual que con la
placa EMA1, los textos aleatorios que serán encriptados durante el ataque se han almacenado
en la memoria de programa. El LPC2124FBD64 dispone de 256 Kb de ROM, una capacidad
5. Resultados Experimentales
104
suficiente para guardar más de 1000 textos de 16 bytes, por lo que la captura de trazas se
puede realizar en un único ciclo.
Los textos aleatorios según una distribución normal han sido determinados mediante
una aplicación en Labview desarrollada para ello.
Paso 2. Captura de Trazas
El test setup de medida utilizado es el mismo que en el caso de la placa anterior.
El tiempo de ejecución que emplea este microcontrolador configurado a una
frecuencia de reloj de 60 MHz, para las dos primeras operaciones del AES: “AddRoundKey” y
“Subbytes”, incluido el preprocesado, es de:
Superar la franja de los 100.000 registros exige configurar el osciloscopio con una
longitud de registro de 1 M, lo que ralentiza la captura de forma acusada. A pesar de ello, se
decidió su captura en previsión de futuros estudios.
A partir de este dato, se configura el osciloscopio y se realizan las medidas con la
aplicación de Labview implementada, tal como se muestra en la siguiente figura:
Figura 5.15: Configuración Setup Medida Placa EMA 2
5. Resultados Experimentales
105
Paso 3. Análisis de Resultados
A partir de las trazas capturadas, y utilizando el programa implementado en Matlab, se
determina la clave supuesta utilizando HW; Único modelo de consumo que generó resultados
positivos.
5.2.2 Resultados Experimentales
A continuación se muestran los resultados obtenidos del CEMA sobre la placa EMA
2, que tiene como objetivo el byte 6 de la clave:
0xC8, 0x0A, 0x4A, 0xBF, 0x78, 0xD3, 0xB2, 0x79, 0x98, 0xA0, 0xB6, 0x36, 0xB4, 0x5E, 0x9B, 0xD1
El ataque se ha centrado en la fase ‘Subbytes’ y se han realizado 1000 medidas por
cada sonda y posición de medida.
Estos son los resultados obtenidos:
Tabla 5.9: Resultados ataque CEMA sobre placa EMA 2
SONDA POSICIÓN
COEF. CORRELACIÓN
VALOR Nº TRAZAS
EM6995
EM1 0.186 987
EM2 0.625 77
EM3 0.453 119
EM4 0.438 471
MFA-R
MF1 0.221 752
MF2 0.308 289
MF3 0.413 258
MF4 0.291 492
HOME
HO1 0.353 552
HO2 0.518 206
HO3 0.479 301
HO4 0.423 206
A tenor de los resultados, se puede decir que cualquier sonda es útil para realizar un
CEMA sobre la placa EMA 2, si bien los mejores resultados se han obtenido de forma global
con la Homemade. La EM6995 ha conseguido el mejor ataque individual, pero sus resultados
globales no superan los obtenidos con la sonda Homemade.
5. Resultados Experimentales
106
5.3 Placa EMA 3: ARMCORTEXM3 LPC1769 32 bits
5.3.1 Desarrollo Experimental del Ataque
Paso 1. Programación AES
El software utilizado para la programación de la placa EMA 3 ha sido el entorno de
desarrollo: “LPCXpresso” [NXP'11], que utiliza el compilador libre “Eclipse” [Ecl'04]. En este
caso no ha sido necesario un adaptador independiente, como el “Ulink” o “USB debugger”,
debido a que la placa incluye el interfaz denominado “LPC Link”.
El algoritmo AES para este dispositivo se ha escrito en lenguaje ANSI C a partir de la
versión implementada para la placa EMA 2. Con respecto a ésta, toda la parte del algoritmo
referida al AES es prácticamente igual, mientras que la parte de configuración y control del
hardware del microcontrolador es nueva. El LPC2124FBD64 dispone de 512 Kb de ROM,
una capacidad muy superior a la necesaria, que le capacita para almacenar más de 30.000 textos
aleatorios de 16 bytes.
Los textos aleatorios han sido obtenidos mediante la misma aplicación Labview
utilizada para el micro ARM7.
Paso 2. Captura de Trazas
El test setup de medida utilizado es el mismo que en el caso de la placa anterior.
El tiempo de ejecución que emplea este microcontrolador a 120 MHz, para las dos
primeras rondas del AES: “AddRoundKey” y “Subbytes”, incluido el preprocesado, es de:
A partir de este dato se configura el osciloscopio y se realizan las medidas con la
aplicación de Labview implementada, Figura 5.16.
Paso 3. Análisis de Resultados
A partir de las trazas capturadas y utilizando el programa implementado en Matlab, se
determina la clave supuesta utilizando el modelo de consumo HW. Para este equipo, el
modelo HD no proporcionó resultados positivos.
5. Resultados Experimentales
107
Figura 5.16: Configuración Setup Medida Placa EMA 3
5.3.2 Resultados Experimentales
A continuación se muestran los resultados obtenidos del CEMA sobre la placa EMA
3, que tiene como objetivo el byte 6 de la clave:
0xC8, 0x0A, 0x4A, 0xBF, 0x78, 0xD3, 0xB2, 0x79, 0x98, 0xA0, 0xB6, 0x36, 0xB4, 0x5E, 0x9B, 0xD1
El ataque se ha centrado en la fase ‘Subbytes’ y se han realizado 20.000 medidas por
cada sonda y posición de medida.
Estos son los resultados obtenidos:
5. Resultados Experimentales
108
Tabla 5.10: Resultados ataque CEMA sobre placa EMA 3
SONDA POSICIÓN
COEF. CORRELACIÓN
VALOR Nº TRAZAS
EM6995
EM1 - -
EM2 - -
EM3 0.086 12774
EM4 - -
MFA-R
MF1 - -
MF2 0.178 2093
MF3 - -
MF4 0.074 18467
HOME
HO1 0.059 16637
HO2 0.047 *
HO3 - -
HO4 0.038 *
*: En este caso el coeficiente de correlación no alcanzó nunca un nivel doble del valor
de la envolvente; Y si lo hizo en algún punto, volvió a descender, como se puede comprobar
en la siguiente imagen:
Figura 5.17: Placa EMA 3 sonda Homemade posición HO2 modelo HW
Como consecuencia del análisis anterior se puede deducir que la sonda más ideal para
realizar un ataque sobre la placa EMA 3 es la MFA-R. Todas las sondas consiguen obtener la
clave en algún intento, si bien, es la MFA-R la que consigue mejores resultados.
5. Resultados Experimentales
109
5.4 Placa EMA 4: ARMCORTEXM3 STM32L152RBT6 32 bits
5.4.1 Desarrollo Experimental del Ataque
Paso 1. Programación AES
El entorno de desarrollo utilizado para la programación de la placa EMA 4 ha sido:
“Atollic TrueSTUDIO” [Ato'12], que al igual que para el caso anterior, se basa en el
compilador “Eclipse”. Al ser ésta, igual que EMA 3, una placa de desarrollo comercial, incluye
el denominado “ST-Link/v2” para la conexión con el PC.
El algoritmo AES para este dispositivo se ha escrito en lenguaje ANSI C a partir de la
versión implementada para la placa EMA 2. Las variaciones más importantes con respecto a
este código se han realizado en la parte de configuración y control del hardware, mientras que
la parte referente al código de encriptación no se ha variado sustancialmente. El
STM32L152RBT6 dispone de 128 Kb de ROM, con dicha memoria es posible almacenar
alrededor de 7000 textos de 16 bytes. Dado que van a ser necesarios más textos, se decidió
modificar el programa, de forma que sólo almacenara el byte bajo ataque, ya que es el único
que debe ser conocido para realizar el ataque. El resto de bytes, son obtenidos de forma
aleatoria en tiempo real durante el mismo. En consecuencia, el ahorro de memoria es
considerable.
Los textos aleatorios correspondientes al byte bajo ataque han sido obtenidos
mediante una aplicación Labview, variación de la utilizada para el ARM7.
Paso 2. Captura de Trazas
El test setup de medida utilizado es el mismo que en el caso de la placa anterior.
Configurando el dispositivo a su frecuencia máxima de operación: 32 MHz, el tiempo
que dedica para ejecutar las dos primeras rondas del AES: “AddRoundKey” y “Subbytes”,
incluido el preprocesado, es de:
En este caso, dado que el número de registros hace su procesado difícil, se decidió
almacenar únicamente la fase Subbytes, que tiene un tiempo de procesado de:
A partir de este dato se configura el osciloscopio y se realizan las medidas con la
aplicación de Labview implementada, Figura 5.18:
5. Resultados Experimentales
110
Figura 5.18: Configuración Setup Medida Placa EMA 4
Paso 3. Análisis de Resultados
A partir de las trazas capturadas y utilizando el programa implementado en Matlab, se
determina la clave supuesta utilizando únicamente el modelo de consumo HW. El HD
proporcionó claves incorrectas.
5.4.2 Resultados Experimentales
A continuación se muestran los resultados obtenidos del CEMA sobre la placa EMA
4, que tiene como objetivo el byte 6 de la clave:
0xC8, 0x0A, 0x4A, 0xBF, 0x78, 0xD3, 0xB2, 0x79, 0x98, 0xA0, 0xB6, 0x36, 0xB4, 0x5E, 0x9B, 0xD1
El ataque se ha centrado en la fase ‘Subbytes’ y se han realizado 20.000 medidas por
cada sonda y posición de medida.
Estos son los resultados obtenidos:
5. Resultados Experimentales
111
Tabla 5.11: Resultados ataque CEMA sobre placa EMA 4
SONDA POSICIÓN
COEF. CORRELACIÓN
VALOR Nº TRAZAS
EM6995
EM1 - -
EM2 - -
EM3 0.044 17866
EM4 - -
MFA-R
MF1 - -
MF2 0.391 655
MF3 0.138 3537
MF4 0.088 5197
HOME
HO1 0.038 *
HO2 - -
HO3 0.039 *
HO4 - -
*: El coeficiente de correlación no alcanzó nunca un nivel doble del valor de la
envolvente.
Del análisis de estos resultados se concluye que la mejor opción para realizar un
CEMA sobre la placa EMA 4, es utilizar la sonda MFA-R, pues genera mejores resultados y su
efectividad es superior.
6. Discusión de Resultados
113
Capítulo 6
DISCUSIÓN DE RESULTADOS
En este epígrafe se analizan en profundidad los resultados experimentales obtenidos,
para tratar de obtener conclusiones acerca del comportamiento de los distintos
microcontroladores embebidos de bajo consumo ante los ataques CEMA y se comparan con
los estudios publicados en la bibliografía.
6.1 Análisis de Resultados
En la siguiente tabla se muestran, a modo de resumen, todos los resultados obtenidos
con las cuatro placas bajo estudio, a fin de analizarlos de forma conjunta:
6. Discusión de Resultados
114
Tabla 6.1: Resultados Experimentales
SONDA EMA 1 EMA 2 EMA 3 EMA 4
C.C. TRAZAS C.C. TRAZAS C.C. TRAZAS C.C. TRAZAS
EM6995
0.759 65 0.186 987 - - - -
0.711 82 0.625 77 - - - -
0.541 477 0.453 119 0.086 12774 0.044 17866
0.621 195 0.438 471 - - - -
MFA-R
0.803 104 0.221 752 - - - -
0.880 58 0.308 289 0.178 2093 0.391 655
0.840 46 0.413 258 - - 0.138 3537
0.844 93 0.291 492 0.074 18467 0.088 5197
HOME
0.678 90 0.353 552 0.059 16637 0.038 *
0.793 46 0.518 206 0.047 * - -
0.723 60 0.479 301 - - 0.039 *
x x 0.423 206 0.038 * - -
*: No se alcanzó el nivel de coeficiente de correlación mínimo con respecto al resto
de coeficientes obtenidos para poder asegurar el éxito del ataque.
-: Se generó un resultado erróneo.
x: La disposición de los componentes de la placa no permitió situar la sonda en otra
posición con resultados distintos.
Se pueden obtener varias conclusiones:
1. De las placas analizadas, EMA 3 y EMA 4 resultan ser las más seguras ante un CEMA,
seguidas a continuación por EMA2 y EMA1 en este orden.
A la vista de los resultados mostrados en la Tabla 6.1, no se puede determinar de
manera fehaciente, una clasificación correlativa que permita distinguir la placa más segura
ante un CEMA.
Si se tienen en cuenta los mejores valores obtenidos con cada una de las sondas34,
dos realizan el ataque de forma más efectiva sobre la placa EMA3 y una sobre la placa
EMA4, como se puede comprobar en la Tabla 6.2 o de forma gráfica en la Figura 6.1.
34 El análisis de los valores medios por sonda genera conclusiones que no representan fidedignamente los valores obtenidos. Además, las medidas se hicieron en puntos con nivel de radiación máximo, donde los resultados deben ser mejores, aunque esto no se puede asegurar. Por otra parte, en el caso del número de trazas necesarias, no es posible el cálculo del valor medio, puesto que algunas medidas correspondientes a EMA3 y EMA4 no arrojaron un valor de número de trazas.
6. Discusión de Resultados
115
Tabla 6.2: Valores Máximos de Coeficiente de Correlación y Número de Trazas en función de la sonda utilizada
SONDA EMA 1 EMA 2 EMA 3 EMA 4
C.C. TRAZAS C.C. TRAZAS C.C. TRAZAS C.C. TRAZAS
EM6995 0.759 65 0.625 77 0.086 12774 0.044 17866
MFA-R 0.880 46 0.413 258 0.178 2093 0.391 655
HOME 0.793 46 0.518 206 0.059 16637 0.039 *
En el caso de realizar el análisis comparativo teniendo en cuenta los valores medios
de los valores máximos, determinar qué placa es más segura, EMA3 o EMA4, resulta
complicado, pues con EMA4 se consigue un mejor valor de C.C. y con EMA3 el número
de trazas necesarias es menor (Tabla 6.3, Figura 6.2):
Tabla 6.3: Valores Medios de Coeficiente de Correlación y Número de Trazas a partir de los valores máximos
EMA 1 EMA 2 EMA 3 EMA 4
0.811 52 0.519 180 0.108 10501 0.158 >12840
Figura 6.1: Valores máximos ataques En abscisas se representa el número de trazas en escala logarítmica y en ordenadas la sonda utilizada. El tamaño de los círculos representa el coeficiente de correlación obtenido.
6. Discusión de Resultados
116
Figura 6.2: Valores medios ataques a partir de valores máximos En abscisas se representa el número de trazas en escala logarítmica y en ordenadas la placa analizada. El tamaño de los círculos representa el coeficiente de correlación obtenido.
De igual modo, si analizamos la efectividad de los ataques, se obtienen dos grupos,
las placas EMA 1 y 2 por un lado, que tienen un 100% de efectividad y, por otro, las placas
3 y 4 que consiguen un 50% de efectividad (Tabla 6.4). En cambio, si se tiene en cuenta la
sonda utilizada no se llega a ninguna conclusión (Tabla 6.5).
Tabla 6.4: Efectividad de los Ataques
PLACA EMA 1 EMA 2 EMA 3 EMA 4
Efectividad 11/11 100% 12/12 100% 6/12 50% 6/12 50%
Tabla 6.5: Efectividad de los Ataques en función de la sonda utilizada
PLACA EMA 1 EMA 2 EMA 3 EMA 4
EM6995 4/4 100% 4/4 100% 1/4 25% 1/4 25%
MFA-R 4/4 100% 4/4 100% 2/4 50% 3/4 75%
HOME 4/4 100% 4/4 100% 3/4 75% 2/4 50%
Por tanto, es necesario determinar un parámetro que permita clasificar los
dispositivos analizados en función de su resistencia a los CEMA. Así, se ha definido como
novedad el denominado Coeficiente de efectividad del ataque CEfAt que como su propio nombre
indica, permite calcular el grado de efectividad de un ataque sobre un dispositivo. Éste,
tiene en cuenta tanto el coeficiente de correlación obtenido C.C., como el número de
trazas necesarias para que el ataque sea exitoso (Trazas, calculado tal como se propone en
el epígrafe 5.1.1.) y el número de trazas totales utilizadas en el ataque n, que en este
estudio, en concreto, han sido 20.000:
6. Discusión de Resultados
117
( )
( ( )
)
(6.1)
Cuanto menor sea este valor, más seguro será el dispositivo, o lo que es lo mismo,
menos vulnerable a un ataque.
Aplicando este factor a los resultados de las medidas y hallando la media para cada
una de las placas se obtiene que la placa EMA3 es la más segura, como se puede constatar
en la Tabla 6.6:
Tabla 6.6: Valor de efectividad del ataque CEMA sobre las placas analizadas
PLACA EMA 1 EMA 2 EMA 3 EMA 4
(%) 86.9 68.6 8.27 14.1
Tras analizar los resultados obtenidos no cabe duda de la gran diferencia de
comportamiento existente entre las placas modernas con ARM Cortex, y el resto (ARM7 y
8051). Si se toma como referencia la placa más simple EMA1 con el microprocesador
8051 de 8 bits, y los valores medios obtenidos con cada una de las placas (Tabla 6.3), se
obtiene que al menos son necesarias un número de medidas 200 veces superior, dato nada
despreciable:
Tabla 6.7: Valores relativos de Coeficiente de Correlación y Número de Trazas respecto de la placa EMA 1 a partir de los valores medios
EMA 1 EMA 2 EMA 3 EMA 4
C.C.Ref TRAZASRef C.C.Rel TRAZASRel C.C.Rel TRAZASRel C.C.Rel TRAZASRel
1 1 0.64 3.5 0.13 202 0.19 >247
En principio, los resultados mostrados son específicos de las implementaciones
realizadas en este estudio. No obstante, dado que las placas utilizadas han sido diseñadas
de la forma más simple posible para que influyan mínimamente en los resultados, las
conclusiones obtenidas pueden ser extrapoladas a los microcontroladores utilizados. Así
ha quedado demostrado que los dispositivos ARM Cortex M3 LPC1769FBD100 y
STM32L152RBT6, resultan ser menos prácticos de atacar, que los ARM7TDMI-S
LPC2124FBD64 y C8051F303.
6. Discusión de Resultados
118
Por otro lado, la ejecución del algoritmo AES en los distintos microcontroladores
no requiere prácticamente del uso de periféricos35, por lo que los resultados son en su
mayoría atribuibles a la arquitectura del núcleo del microprocesador y la memoria. Por este
motivo, extrapolando los resultados a las arquitecturas aquí usadas, se puede concluir que
las arquitecturas CIP-51 de Silicon Labs y ARMv4T del ARM7TDMI-S, son más factibles
de atacar que la arquitectura ARMv7-M del Cortex M3.
En cuanto al supuesto origen de las diferencias de comportamiento existentes
entre arquitecturas, poco se puede decir, dado que su diseño no es accesible al público.
Únicamente se pueden hacer suposiciones a partir de los datos publicados. Por ejemplo, el
alto rendimiento de la arquitectura Cortex M3 (alrededor de 13 veces superior a un 8051
novedoso y 1.3 veces superior a un ARM7TDMI), su alta integración (con 33000 puertas
lógicas en 0.30mm2 de núcleo, 0.62mm2 en el caso del ARM7TDMI), la nueva arquitectura
de instrucciones Thumb 2 que simplifica el código y lo hace más eficiente, el uso de un
bus de datos multicapa denominado matricial o su bajo consumo (0.19mW/MHz, ARM7
0.28mW/MHz) [[Yiu'10], [Sad'06]]. Todos estos elementos pueden favorecer la aparición
de ruido en las medidas, entendiendo como tal todas aquellas emisiones no
correlacionadas con el dato ejecutado, provocando las diferencias de comportamiento
descubiertas. Los acoplamientos con componentes cercanos, el funcionamiento de varios
componentes al mismo tiempo o la rapidez de ejecución de instrucciones, pueden
favorecer la generación de un ambiente ruidoso, y por tanto, disminuir la eficiencia de los
ataques.
Respecto a la comparativa de los dos microcontroladores ARM Cortex M3
estudiados, uno, el LPC1769, con una alta velocidad de procesamiento y otro, el
STM32L152, con un diseño orientado a la minimización del consumo de energía, no se ha
podido establecer una diferenciación clara en cuanto a su comportamiento ante un
CEMA. El hecho de disponer de un microprocesador con menor consumo supone captar
señales de menor intensidad, por lo que en este caso, el ruido presente en las medidas
debido a diversas fuentes36, adquiere mayor importancia. Dicho de otro modo, la SNR
disminuye. En el caso de aumentar la frecuencia de funcionamiento, la presencia de ruido
en las medidas aumenta, puesto que como ya es sabido, todo conductor se convierte en
antena a longitudes superiores a /30 metros.
35 Únicamente se han utilizado los puertos de salida para la comunicación con el PC y el osciloscopio. 36 En toda medida, ya sea de campo EM para un ataque EMA o de corriente para un PA, siempre existirá ruido procedente de diversas fuentes: físico, de medida o del dispositivo (véase epígrafe 2.2.3).
6. Discusión de Resultados
119
2. Los resultados obtenidos, refrendan el análisis realizado en el epígrafe 5.1.3.1, donde se
estudia la relación existente entre el número de trazas necesarias y el coeficiente de
correlación obtenido. Si se ordenan los resultados en función de la sonda y el C.C., queda
claro que la obtención de un valor mayor genera un ataque más efectivo, Tabla 6.8.
Tabla 6.8: Resultados Experimentales ordenados en función del C.C.
SONDA EMA 1 EMA 2 EMA 3 EMA 4
C.C. TRAZAS C.C. TRAZAS C.C. TRAZAS C.C. TRAZAS
EM6995
0.759 65 0.625 77 0.086 12774 0.044 17866
0.711 82 0.453 119 - - - -
0.621 195 0.438 471 - - - -
0.541 477 0.186 987 - - - -
MFA-R
0.880 58 0.413 258 0.178 2093 0.391 655
0.844 93 0.308 289 0.074 18467 0.138 3537
0.840 46 0.291 492 - - 0.088 5197
0.803 104 0.221 752 - - - -
HOME
0.793 46 0.518 206 0.059 16637 0.039 *
0.723 60 0.479 301 0.047 * 0.038 *
0.678 90 0.423 206 0.038 * - -
- - 0.353 552 - - - -
*: No se alcanzó el nivel de coeficiente de correlación mínimo con respecto al resto
de coeficientes obtenidos para poder asegurar el éxito del ataque.
-: Se generó un resultado erróneo
Existen valores que se desmarcan del resto, y no siguen la tendencia general
(resaltados en negrita en la tabla 6.8). En estos casos, la variación inesperada del C.C. de
alguna clave errónea o de la propia clave correcta, provoca estas excepciones. Por ejemplo,
las 104 trazas obtenidas para la placa EMA1 con la sonda MFA-R se deben a un aumento
del C.C. de algunas claves erróneas durante el intervalo de Trazas 80-140, como se puede
verificar en la siguiente figura:
6. Discusión de Resultados
120
Figura 6.3: Número de trazas EMA1 sonda MFA-R posición MF1
Igualmente, en la siguiente figura se puede comprobar que la desviación producida
con la misma sonda pero con la placa EMA3 y las 18467 trazas, se debe al C.C. alcanzado
por una clave errónea que se desmarca del resto:
Figura 6.4: Número de trazas EMA3 sonda MFA-R posición MF4
3. Con respecto a las sondas utilizadas se concluye que cualquiera es factible de ser utilizada
en un CEMA de forma satisfactoria. Sin embargo, el uso de sondas de calidad de cabeza
milimétrica y preamplificador integrado, como la MFA-R utilizada en este estudio,
mejoran los resultados, haciendo de media el ataque 10 veces más efectivo, como se
desprende de los resultados de la Tabla 6.2, Tabla 6.9 y Tabla 6.10. Por contra está el
hecho de que requieren un tiempo de preparación muy superior. En primer lugar se debe
seleccionar el punto exacto sobre el que realizar la captura. En el caso concreto de la
MFA-R con una resolución espacial de 300 µm, lo que supone ensayar la sonda al menos 1
6. Discusión de Resultados
121
vez por milímetro cuadrado. De este modo, para atacar un dispositivo como el
STM32L152 con encapsulado de 64 pines y 100mm2, se deberán realizar un mínimo de
100 medidas previas. En segundo lugar, debido a su alta precisión, requieren de unas
condiciones de medida muy estables, algo que en determinados escenarios como un ataque
real sobre un dispositivo, no siempre es posible.
Tabla 6.9: Valores medios de Coeficiente de Correlación y número de Trazas para cada una de las sondas a partir de los valores máximos
SONDA C.C. TRAZAS
EM6995 0.379 7696
MFA-R 0.466 763
HOME 0.352 >9222
Tabla 6.10: Efectividad de los Ataques en función de la sonda
PLACA EM6995 MFA-R HOME
Efectividad 10/16 62% 13/16 81% 13/16 81%
Además, el disponer de una cabeza milimétrica más precisa, que a priori resulta ser
una ventaja, pues permite discernir el origen de las emanaciones y/o captar la radiación
deseada, en otros casos puede suponer un inconveniente. Si la posición de medida no es
adecuada, la captura puede generar únicamente ruido, originándose un ataque nulo como
ya indicaba Carlier en [Car'04]. En este sentido el uso de sondas de calidad más grandes
supone cierta ventaja. Es decir, si se diera el hipotético caso de que un ataque solo se
pudiera realizar con la sonda en una posición y se desconociera el origen de la radiación
objetivo, el uso de una sonda milimétrica jugaría en contra.
6.2 Comparación con Estudios Previos
Hasta ahora, en la literatura existente no se había analizado la seguridad relativa de
equipos criptográficos actuales de bajo consumo orientados a aplicaciones embebidas ante
ataques por canal EM.
La mayor parte de los estudios publicados se centran en FPGAs, Tarjetas Inteligentes
o microcontroladores de 8 bits con frecuencias de operación relativamente bajas o sin dar
detalles acerca de la velocidad. Por ejemplo, en [Car'04] se experimenta sobre una FPGA
Altera Cyclone a 50 MHz; Los autores en [Rea'09] utilizan una FPGA Altera Stratix sin dar
detalles de la frecuencia de operación; En [Mat'10] se estudia un AT89C51ED con una señal
de reloj externa con frecuencias comprendidas entre 1 y 40 MHz; en [Mey'10] se analiza una
6. Discusión de Resultados
122
FPGA Virtex II de Xilinx a 24 MHz, en [Li'10] se centran en los CPA sobre una tarjeta
inteligente de 8 bits sin indicar más detalles etc.
En [Geb'06] se estudia la efectividad de una contramedida basada en máscaras sobre
un microcontrolador de 32 bits ARM7TDMI configurado, en este caso, a una frecuencia de
reloj de 40 MHz, que en ese momento suponía uno de los dispositivos de menor consumo del
mercado, pues además de otros elementos, su alimentación se realizaba a 3.3V en lugar de los
habituales 5V.
En [Tiu'05] los autores desarrollan un nuevo ataque eficaz contra la desincronización
de las trazas, denominado Ataque por análisis de frecuencia diferencial: DFA, y demuestran su
potencial aplicándolo sobre un ARM7TDMI a 40 MHz y una PDA que ejecutan AES/128.
Sin embargo, este estudio no tiene un carácter comparativo, sino más bien de demostración de
la efectividad del ataque desarrollado. Así mismo, en el estudio se utiliza una única sonda EM
de 1cm sin justificar adecuadamente su elección.
En [Ken'12] se analizan tres dispositivos, un smartphone 4G LTE que ejecuta RSA,
una PDA que realiza una multiplicación sobre una curva elíptica (elliptic curve point
multiplication) y un teléfono móvil con el AES/128 en su interior. En este caso también sin
dar detalles acerca de los mismos. En el artículo, únicamente se verifica la vulnerabilidad de los
equipos a los SCA sin realizar un estudio más exhaustivo ni comparativo.
Así pues, en la literatura no existe un estudio como el que aquí se expone, que
compare la seguridad de equipos criptográficos embebidos destinados a aplicaciones de bajo
consumo ante ataques por correlación EM.
7. Medidas Experimentales Adicionales
123
Capítulo 7
MEDIDAS EXPERIMENTALES
ADICIONALES
7.1 Ataque DEMA
Previamente a la realización del estudio principal de este trabajo se analizaron los
ataques diferenciales DPA/DEMA, originalmente propuestos por Kocher y otros en [Koc'99]
para el canal lateral por consumo y el algoritmo DES, y posteriormente extrapolados al canal
EM y los algoritmos: COMP128, DES y RSA por Gandolfi y otros en [Gan'01].
Para la realización del mismo se utilizó la placa EMA 1 con el microcontrolador 8051
evolucionado de 8 bits y el estándar AES/128 ejecutándose en su interior. El setup utilizado es
el mismo que el de las medidas principales de este trabajo, con la sonda EM de campo cercano
EM6995.
En primer lugar, se escogió como función de selección D la salida de la Sbox de la
primera ronda, y se determinó de forma aleatoria como objetivo el bit 2 del byte 2. Dado que
la clave es conocida (se ha programado en el dispositivo), se determinaron con ayuda de una
aplicación Labview desarrollada para ello, 600 textos aleatorios37, tales que a la salida de la
Sbox el bit objetivo está a 1 y otros 600 en los que el bit está a 0. A continuación se ejecutó el
AES sobre los textos y se guardaron las trazas asociadas. Se calculó la media de cada uno de
37 La memoria del C8051F303 permite almacenar 300 textos de 16 bytes, de forma que para la realización del ataque se programaron dos bloques de 300 textos.
7. Medidas Experimentales Adicionales
124
los bloques de trazas asociados a los textos en cada uno de los registros y se restaron dando
como resultado la Figura 7.1, en la que se aprecia el momento en el que el bit 2 de la clave es
computado en el algoritmo. Por último, se comprobó la validez del ataque repitiendo el
proceso anterior suponiendo claves incorrectas, obteniéndose gráficas similares a la de la
Figura 7.2.
Así, quedó comprobada la validez del método propuesto por Kocher y otros y
verificado el setup de medida, que posteriormente sería utilizado para el resto de pruebas.
Figura 7.1: Resultado ataque DEMA clave supuesta correcta
Figura 7.2: Resultado ataque DEMA clave supuesta incorrecta
7. Medidas Experimentales Adicionales
7.2 Análisis de la EMI generada por las placas Otro de los puntos posibles que se puede estudiar para intentar comparar los distintos
equipos, es analizar la señal EM que generan. Durante la realización de las medidas de este
trabajo, se observó en la pantalla del osciloscopio digitalizador una clara discrepancia entre las
trazas de las distintas placas, factor que este análisis trata de evaluar.
7.2.1 Análisis estadístico
En la Tabla 7.1 se muestra el análisis estadístico realizado a 1000 trazas EM captadas
durante la ejecución de las dos primeras fases del AES, AddRoundKey y Subbytes, sobre 1000
textos distintos, con cada uno de los equipos estudiados en este trabajo.
El estudio consiste en calcular en cada uno de los puntos de las trazas, la desviación
típica y varianza de las 1000 trazas y a continuación determinar para cada grupo su media,
varianza y desviación típica. Como el tiempo de ejecución es distinto para cada placa y la
frecuencia de digitalización es constante e igual a 5 Gmuestras/segundo, la longitud de las
trazas varía de un equipo a otro. Así por ejemplo, si representamos de forma matricial el
procedimiento para la placa EMA 1, éste se puede expresar como en el esquema de la Figura
7.3.
7. Medidas Experimentales Adicionales
126
Tabla 7.1: Análisis estadístico trazas EM
1000 Trazas EM DESVIACIÓN TÍPICA VARIANZA
PLACA REGISTROS MEDIA (·10
-3)
VAR (·10
-6)
STD (·10
-3)
MEDIA (·10
-6)
VAR (·10
-9)
STD (·10
-6)
EMA 1 94.100 4.5 3.9 2 24.1 0.98 31.3
EMA 2 119.000 6.3 4.5 2.1 44.3 3.77 61.4
EMA 3 78.500 70.1 19.5 4.4 4900 427.3 653.7
EMA 4 287.000 29.0 2.3 1.5 844.7 7.6 87.4
En la siguiente figura se muestra de forma gráfica la desviación típica estándar de las
1000 trazas en cada uno de los registros para las cuatro placas:
Figura 7.4: Desviación típica estándar 1000 medidas placas bajo estudio
Como se puede apreciar, la desviación típica y, por ende, la varianza, que presentan las
trazas EM generadas por las placas EMA4 y sobre todo EMA3, es muy superior a la de las
otras dos placas, con una relación de 4 a 1 en el mejor de los casos. Esto significa que existe
una mayor inconsistencia en la radiación emitida por estas placas, con unas variaciones de
campo magnético superiores. Este hecho puede deberse a dos factores:
a) La componente de ruido presente en las trazas es mayor.
b) La emisión EM depende en gran medida del dato encriptado.
7. Medidas Experimentales Adicionales
127
En el caso de que la emisión dependiera del dato encriptado (caso b), los resultados
obtenidos en un CPA con estas placas serían mejores que con las otras dos placas, cosa que,
como ya se ha comprobado, no ocurre. Por tanto, estos resultados son un indicativo de la
presencia de radiación EM no correlacionada con el dato en las trazas, que se considera ruido.
En principio, el hecho de que la variabilidad de las trazas provenientes de la placa
EMA 3 sea alta, es lógico, puesto que su frecuencia de funcionamiento de 120 MHz es muy
superior a la del resto. Sin embargo, la placa EMA 4 genera trazas con alta desviación típica y,
en cambio, trabaja a menor velocidad que EMA 2. Esto pone en evidencia que la arquitectura
Cortex M3 tiene un perfil EM más ruidoso, que la hace a priori más resistente frente a los
EMA y PA.
Otro hecho a destacar a partir de los resultados obtenidos, es la gran variación
presente al final de las trazas EM originadas por EMA2 y 3. Estos registros, se corresponden
con la ejecución de la fase Subbytes, única operación no lineal del AES cuyo principal
cometido es la adición de ruido, y que además tiene un consumo mayor respecto a la fase
AddRoundKey previa, debido a que la instrucción load es menos eficiente energéticamente que
xor [Ito'02], de ahí los picos presentes.
7.2.2 Análisis frecuencial
Por otro lado, se ha realizado un análisis de Fourier de las trazas EM captadas de cada
una de las placas con la ayuda de Matlab y la transformada rápida de Fourier o FFT
[MathFFT'10]:
( ) ∑ ( ) ( )( )
( )
∑ ( )
( )( )
(7.1)
Donde:
( )
En las siguientes gráficas se detallan los resultados obtenidos38:
38 Téngase en cuenta que la amplitud del espectro mostrada en las gráficas se ha calculado a partir de la función FFT de Matlab sin dividir el resultado por el número de registros de la traza, para de esta forma evitar trabajar con valores muy pequeños. El propósito no es la comparación de los valores absolutos de los armónicos, sino la distribución del espectro en cada una de las placas.
7. Medidas Experimentales Adicionales
128
Figura 7.5: Análisis Fourier traza EM placa EMA 1 (11.0592MHz)
Figura 7.6: Análisis Fourier traza EM placa EMA 2 (12x5 = 60 MHz)
Figura 7.7: Análisis Fourier traza EM placa EMA 3 (12x10 = 120 MHz)
7. Medidas Experimentales Adicionales
129
Figura 7.8: Análisis Fourier traza EM placa EMA 4 (8x4 = 32MHz)
A partir de estos resultados se pueden obtener algunas conclusiones:
Las trazas EM captadas provenientes de las placas bajo estudio tienen un espectro que
prácticamente no supera 1 GHz, salvo en EMA 3, que llega hasta los 2 GHz.
Las trazas de las placas EMA 1 y 2 contienen principalmente armónicos de la frecuencia
del reloj. En el caso de las originadas por las placas EMA 3 y 4, el origen no está tan claro,
pues existen armónicos que no son submúltiplos de la frecuencia de funcionamiento. Esto
puede ser debido a su alta integración que favorece acoplamientos con componentes
cercanos y al modo en que está diseñada su CPU, que incluye elementos como un bus
matricial, nueva arquitectura de instrucciones thumb-2… [Sad'06]. Estos elementos
pueden hacer que la señal EM generada sea más aleatoria e impredecible.
La placa EMA 4 emite armónicos de frecuencia superior a los generados por EMA 2,
siendo su frecuencia de funcionamiento inferior, 32MHz respecto a 60MHz.
7.3 Ataque SEMA
En este trabajo también se ha contemplado la investigación de los ataques “Simple EM
Analysis” [[Koc'99], [Man'03], [Gan'01]]39. Aquellos en los que únicamente se realizan varias
medidas sobre el EUA ejecutando el algoritmo de encriptación, en este caso AES, y se intenta
obtener información a partir de ellas, como instrucciones ejecutadas, datos computados etc.
(véase epígrafe 2.1).
39 Esta disertación se ha realizado en colaboración con Jose Manuel Algaba Alonso, como parte del trabajo final del Máster en Sistemas Electrónicos Avanzados de la Universidad Carlos III de Madrid [AlMa'09].
7. Medidas Experimentales Adicionales
El equipo necesario para llevar a cabo este análisis ha sido el mismo que el utilizado
para la implementación de los CEMA previamente descrito. Únicamente, en algunas medidas
se añadió a la cadena de medida un receptor con el fin de captar sólo parte del espectro e
intentar eliminar el ruido presente en las medidas. Al ser este equipo altamente sensible, hace
innecesario el uso del preamplificador, por lo que en los casos en que se utilizó el receptor,
éste no formó parte del setup. Véase la Figura 7.9.
El resultado obtenido con este ataque, ha sido la obtención de información relativa al
algoritmo ejecutado en el microcontrolador como tiempo de ejecución total y parcial de cada
fase, número de fases implementadas etc. La variación de un bit de la clave o del dato,
produce variaciones en las trazas captadas, sin embargo éstas no permiten la identificación de
dicho bit.
Por ejemplo, en la Figura 7.10 se pueden apreciar de forma relativamente clara las 11
fases del estándar de encriptación AES con su tiempo de ejecución. La señal azul representa la
señal de trigger, que indica el inicio y fin de la trama a captar:
7. Medidas Experimentales Adicionales
131
Las siguientes imágenes denotan las diferencias presentes en el espectro captado al
variar un bit del texto o un bit de la clave sobre la placa EMA 2. El ARM7 TDMI de esta
placa se ha programado de forma que realiza continuamente la encriptación de un texto y se
varía de forma consecutiva un bit del mismo o un bit de la clave. Así, la diferencia entre dos
trazas consecutivas captadas será debida a la variación del bit del texto o clave, ya que el resto
de parámetros permanecen inalterados. En este caso se han generado dos pulsos a nivel bajo
para identificar las zonas de análisis. El de mayor duración indica el comienzo de la fase de
preparación de los datos (trama del espectro más corta) y el menor, la fase de encriptación del
texto (trama del espectro de mayor duración).
La primera imagen muestra dos encriptaciones consecutivas en las que no se han
realizado modificaciones en texto y clave. Mientras que las siguientes reflejan el efecto que
tiene la variación de un bit del texto y clave en la traza captada:
Figura 7.11: Espectro de dos encriptaciones consecutivas sin modificación
7. Medidas Experimentales Adicionales
132
Figura 7.12: Variación espectro captado al variar un bit del texto
Figura 7.13: Variación espectro captado al variar un bit de la clave
Obsérvese que la variación se produce en ambos casos, en el preprocesado (fase del
algoritmo AES donde el texto plano a encriptar es guardado en el estado y las subclaves o
RoundKeys son generadas y almacenadas, véase Anexo 1), que es la zona entre los pulsos
largo y corto. El resto de la traza correspondiente a la ejecución de las distintas fases del AES,
que es donde se realiza la encriptación, no ha generado diferencias visuales apreciables
significativas.
7.4 Filtrado de Señales
Un método para tratar de hacer más efectivo un ataque EM, consiste en filtrar la señal
EM captada por la sonda procedente del EUA. Dado que los métodos estadísticos tienen la
7. Medidas Experimentales Adicionales
misión de eliminar el ruido presente en la medida, entendiendo ruido como aquellas señales no
correladas con el dato a atacar. Se va a tratar de realizar este proceso a través de un filtro, de
forma que la fase de procesado sea más liviana y sencilla. Este preprocesado se debe efectuar
de forma cuidadosa para no eliminar las componentes correlacionadas de interés.
Algunos autores han implementado esta idea de diversas formas: con filtrado North o
de coincidencia [Mes'02], con análisis acumulante [Le’07], con filtros Kalman [Sou'10] o filtros
Wavelet [Char'05]. En este caso se ha intentado llevar a la práctica con ayuda de la placa EMA
3 configurada en este caso a 100 MHz, pues teóricamente, al ser su frecuencia de
funcionamiento mayor, debe ser la más ruidosa.
Se han aplicado dos métodos:
1. Filtrado con Receptor: El primer método aplicado para filtrar la señal ha consistido en
utilizar un receptor, tal como propone Agrawal en [Agr'02]. El test setup utilizado es igual
al utilizado para llevar a cabo los SEMA de este estudio, Figura 7.14:
El receptor utilizado ha sido un Rohde&Schwarz ESCI [RS'04], el cual posee un
conector de salida “20.4 MHz Out”, que superpone la señal captada con una señal fija de
frecuencia 20.4 MHz correspondiente a su IF (Intermediate Frequency) [Rau’03].
La metodología seguida fue la siguiente. Primeramente, para decidir qué
configuración establecer en el receptor, se realizó una medición espectral de la placa
EMA3 que determinara las frecuencias más importantes, dando como resultado la gráfica
de la Figura 7.15:
7. Medidas Experimentales Adicionales
134
Figura 7.15: Medida Espectral EMA 3 RBW=1MHz, BW=400KHz, ST=50ms
A partir de estos resultados se realizaron diversos CEMA posicionando el receptor a
distintas frecuencias detectadas en el paso anterior. Algunas de estas frecuencias resultaron
ser armónicos de la frecuencia de reloj de la placa EMA 3, como 400, 300, 250, 100 MHz
etc. En todos los casos se utilizó un Resolution Bandwidth RBW=1MHz, detector Max
Peak y Sweet Time ST=1ms, puesto que resultó ser la configuración más adecuada40.
A pesar de todo, los resultados no fueron satisfactorios. Los ataques realizados
utilizando este método dedujeron claves incorrectas. El hecho de que la señal analizada
tenga superpuesta la señal IF a 20.4 MHz parece influir de manera notable en los
resultados.
2. Filtrado digital en el procesado mediante Matlab: Otra táctica que se llevó a la
práctica fue el filtrado digital de las trazas captadas. Para ello se utilizó Matlab y algunos de
los filtros implementados en la aplicación, como Butterworth, Notching, Chevyshev etc. y
se establecieron distintas configuraciones como grado, frecuencia de corte etc.
También en este caso los resultados fueron insatisfactorios.
7.5 Propuesta Ataque Experimental “Bidimensional”
Esta idea es un intento de desarrollar un DEMA novedoso. Se fundamenta en el
CEMA, y básicamente consiste en realizar una comparación gráfica de los consumos teóricos
40 Con valores superiores de RBW la señal captada contenía muchos armónicos y con inferiores la señal se filtraba en exceso.
2526 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 6465
50M 80 100M 200 300 400 500 800 1G 2G 3G
Leve
l in
dBµV
/m
Frequency in Hz
7. Medidas Experimentales Adicionales
135
y reales, en lugar de una comparación apoyada en el Coeficiente de Correlación. El
procedimiento se resume a continuación:
1) Se ejecuta el AES sobre una serie de n textos aleatorios y se guardan las n trazas EM
asociadas a la ejecución de la fase bajo ataque.
2) Se selecciona el byte a atacar, y con la ayuda de un modelo de consumo se simula el gasto
de energía asociado a ese byte durante la fase bajo ataque para cada uno de los n textos
aleatorios y para cada una de las 256 posibles claves. Se obtienen así 256 bloques de n
elementos, que contienen el consumo asociado a la serie de textos aleatorios.
3) Una vez obtenidos estos datos, se disponen en formato gráfica, con el valor del texto: 0 -
255 en abscisas y como ordenada el valor de consumo.
4) Se hace una comparación de la gráfica de consumo real con cada una de las gráficas de
consumo simulado para cada uno de los puntos de las trazas EM captadas. Aquella gráfica
que presente una mayor similitud determinará la clave hipotética y el tiempo hipotético en
el que el byte de la clave es utilizado.
Para la verificación de este nuevo método de ataque propuesto, se realizaron diversos
experimentos utilizando la placa EMA 1 con el 8051 mejorado y el test setup desarrollado para
llevar a cabo los CEMA previos. En este caso solo se utilizó la sonda EM6995.
En primer lugar, se ejecutó el AES sobre 1000 textos aleatorios de 16 bytes y se captó
el campo EM generado por el microcontrolador durante la fase Subbytes de la ronda 1 con un
ratio de muestreo de 5 Gs/s. Se obtuvieron 1000 trazas EM (una por cada texto), de 58.600
registros de longitud. A continuación se representó de forma gráfica el valor de cada uno de
los registros para las 1000 trazas, obteniéndose, como es lógico, 58.600 gráficas similares a la
siguiente:
Figura 7.16: Campo EM real captado registro 43027 de las 1000 trazas captadas
7. Medidas Experimentales Adicionales
136
Después se calculó, con ayuda del modelo HW, el consumo teórico del
microcontrolador al ejecutar la fase Subbytes sobre el byte 4 de los textos aleatorios para cada
una de las 256 claves posibles. Estos datos se expresaron de forma gráfica, dando como
resultado 256 gráficas HW-Texto, como la Figura 7.17.
Por último, se intentó comparar, sin éxito, las 256 gráficas de consumo teórico con las
58.600 gráficas de consumo real utilizando diversas herramientas estadísticas de comparación
como la “Distancia de Mahalanobis o Distancia cuadrática” [[Mah'36], [Mae'00]], “Distancia
de Hausdorff” [Hutt'93] y Distancia de Correlación [Sze'07].
Figura 7.17: Consumo teórico byte 4 de 1000 textos aleatorios para la clave 147D
7.6 Análisis Wavelet
En los últimos tiempos las Wavelets, [[Tor'98], [Pol'01], [Kai'10]], se han erigido como
una herramienta poderosa para el análisis de señales no estacionarias en el dominio tiempo-
frecuencia. Su ventaja radica, principalmente, en que la descomposición tiempo-frecuencia que
realizan permite separar las componentes de una señal de forma más efectiva y flexible que
otros métodos, como la transformada rápida de Fourier [Add'09]. Este aspecto posibilita la
detección de señales de baja duración y alta frecuencia al mismo tiempo que señales de larga
duración y baja frecuencia.
En este trabajo se ha tratado de aplicar el análisis Wavelet a los EMA centrados en
AES para intentar mejorarlos. Hasta ahora en la literatura, las wavelets únicamente aparecían
como herramienta de filtrado [Char'05]. En este caso se van a aplicar para tratar de comprobar
la posible existencia de relación entre el contenido frecuencial de la señal medida y el valor de
la clave y texto usados en el algoritmo de encriptación.
7. Medidas Experimentales Adicionales
137
El procedimiento que se ha seguido para intentar demostrar esta posible correlación es
el siguiente:
1. Se decide el bit de la clave que se quiere estudiar y se averigua el intervalo de tiempo
en el que ese bit es computado dentro del algoritmo de encriptación. Para ello, se
ejecuta el algoritmo AES con el bit de la clave a uno sobre un número suficiente de
textos aleatorios, por ejemplo 1000, y se repite el proceso cambiando únicamente el bit
de la clave, que pasa a valer cero. Se calcula la media de los dos grupos de 1000
medidas para cada uno de los puntos de las trazas captadas y se restan. La gráfica
resultante muestra el instante de tiempo en el que el bit de la clave es procesado en el
algoritmo. Por ejemplo, en la siguiente figura se pueden ver los puntos de influencia
del bit 35 de la clave para la placa EMA 1:
Figura 7.18: Puntos de influencia bit 35 clave algoritmo AES
2. Se toman 1000 textos con todos sus bits aleatorios, salvo el correspondiente al de la
clave, que tomará el valor 1 y otros 1000 textos aleatorios también, pero con el bit a 0.
Se encriptan y se capturan las trazas asociadas con el bit de la clave a 1 y con el bit de
la clave a 0. Se obtienen 4 bloques de 1000 medidas.
3. En los tramos detectados en el apartado 1, se realiza un análisis wavelet, utilizando la
transformada continua CWT, tratando de encontrar variaciones frecuenciales
ocasionadas por la variación del texto o la clave. En este estudio se ha realizado el
análisis sobre medidas individuales y sobre la media de 1000 medidas.
Este análisis se realizó con la placa EMA 1 y con ayuda de la toolbox “Wavelet” de
Matlab [MathWav'10]. Se probaron distintos intervalos de señal y todos los tipos de Wavelets
7. Medidas Experimentales Adicionales
138
madre disponibles, no obstante, se consiguió más nivel de detalle y, por tanto, una mejor
comparación, con: Symlets, Coiflets y Biorthogonal.
A continuación se presentan algunos de los resultados obtenidos:
Figura 7.19: Análisis wavelet Symlets 7 bit 63 clave igual a 1
Figura 7.20: Análisis wavelet Coiflets 1 bit 19 clave igual a 0
7. Medidas Experimentales Adicionales
139
Figura 7.21: Análisis wavelet Biorthogonal 2.8 bit 89 clave igual a 1
Tras los resultados obtenidos no se pudo llegar a una conclusión sólida que relacionara
el contenido frecuencial de la señal captada con el valor del bit de la clave o texto.
7.6.1 Creación y aplicación de una Wavelet Propia
También se trató de implementar una wavelet propia que permitiera detecciones de
patrón más precisas. De hecho, la señal emitida por la placa EMA1 presenta cierta similitud
con algunas wavelets como Daubechies6, Biorthogonal 3.9 y Cmor 1-1, como se puede
confirmar en la siguiente figura:
db6
bior3.9
CMor
Subtraza EMA1
Figura 7.22: Comparación Wavelets con traza EM placa EMA 1
7. Medidas Experimentales Adicionales
140
Para la creación de la wavelet propia se utilizó igualmente la toolbox “Wavelet” de
Matlab y el método establecido en [Mis'10], el cual define una wavelet admisible a partir de
una onda patrón, utilizando optimización basada en mínimos cuadrados.
La señal patrón a partir de la cual se obtiene la wavelet se obtuvo a partir de la media
de 1000 trazas EM generadas por la placa EMA1 durante la encriptación textos aleatorios con
AES. Dicha operación generó la onda de la siguiente imagen:
Figura 7.23: Onda patrón EM placa EMA1 para la creación de una Wavelet
A partir del patrón, y con ayuda de la interfaz gráfica de la toolbox de Matlab, se
sintetiza gráficamente la wavelet adaptada, de forma que cumpla con la condición de
admisibilidad necesaria para su uso con la Transformada Continua Wavelet CWT [Mis'10],
Figura 7.24.
Figura 7.24: Wavelet adaptada a partir de onda base EMA1
7. Medidas Experimentales Adicionales
141
Por último, se calcula una función de Fourier que aproxima la wavelet adaptada
mediante la herramienta “cftool” de la toolbox de Matlab “fitting”. El resultado es la wavelet
propia que se utilizó para intentar verificar la idea propuesta:
f(x) = a0 + a1*cos(x*w) + b1*sin(x*w) + a2*cos(2*x*w) + b2*sin(2*x*w) +
a3*cos(3*x*w) + b3*sin(3*x*w) + a4*cos(4*x*w) + b4*sin(4*x*w) +
a5*cos(5*x*w) + b5*sin(5*x*w) + a6*cos(6*x*w) + b6*sin(6*x*w) +
a7*cos(7*x*w) + b7*sin(7*x*w)
Siendo los coeficientes:
a0 = 0.01095 a1 = 0.06336 b1 = 0.07715 a2 = -0.129 b2 = -0.0539
a3 = 0.144 b3 = 0.07383 a4 = -0.4226 b4 = -0.01245 a5 = 0.3949
b5 = -0.6495 a6 = 0.2756 b6 = 0.8781 a7 = -0.3138 b7 = -0.2285 w = 6.086
La aplicación de la Wavelet propia a las trazas EM, tampoco permitió la obtención de
una conclusión.
8. Conclusiones y Trabajos Futuros
143
Capítulo 8
CONCLUSIONES Y TRABAJOS
FUTUROS
Este epígrafe contiene las conclusiones obtenidas tras la realización de este trabajo, así
como aquellas tareas que se considera interesante profundizar en el futuro.
8.1 Conclusiones
En este trabajo se ha realizado por primera vez un análisis comparativo de la seguridad
relativa a los ataques por correlación electromagnética CEMA, de cuatro microcontroladores
de propósito general, destinados a aplicaciones embebidas de bajo consumo, mediante la
implementación del estándar de encriptación AES en ellos.
Los dispositivos analizados, que han sido seleccionados con el fin de obtener el mayor
número de conclusiones, son los siguientes:
C8051F303: microcontrolador evolucionado de 8 bits, con mejor capacidad de proceso y
consumo que otros dispositivos de 8 bits basados en la familia Intel 8x51.
ARM7TDMI-S LPC2124: popular microcontrolador de 32 bits, habitual en la literatura,
configurado en este caso a una elevada frecuencia de reloj, de 60 MHz.
Dos novedosos ARM Cortex M3, nunca antes analizados con respecto a los SCA
PA/EMA:
8. Conclusiones y Trabajos Futuros
144
o Un LPC1769, cuya característica principal es su alta capacidad de procesamiento,
con una frecuencia de reloj de 120 MHz, muy superior a lo presentado en la
literatura.
o Un STM32L152, con un diseño específico orientado al ahorro energético.
Paralelamente a la realización de esta investigación, se han llevado a cabo otros
estudios complementarios relativos a distintos aspectos de los ataques EMA/PA. En primer
lugar, se han analizado las trazas EM generadas por los dispositivos, concluyéndose que:
Las trazas EM provenientes de las placas con arquitectura ARM Cortex M3 tienen un
perfil estadístico más variable, con armónicos de dudoso origen, aparentemente debidos a
acoplamientos.
Se pone en evidencia que la arquitectura Cortex M3 tiene un perfil EM más ruidoso, que la
hace, a priori, más segura frente a posibles ataques EMA que las otras arquitecturas
investigadas.
Como novedad, también se ha realizado un análisis comparativo de tres sondas EM de
medida de campo cercano ante un ataque CEMA: EM6995 (monoespira de 1cm), MFA-R
(milimétrica con preamplificador integrado) y Homemade (fabricada a mano con cable
esmaltado):
Las tres sondas tienen prestaciones suficientes para llevar a cabo un ataque EM, aunque
los mejores resultados se obtienen con la sonda milimétrica MFA-R.
Una simple espira fabricada con hilo esmaltado de cobre es suficiente para llevar a cabo
con éxito un ataque CEMA.
La sonda MFA-R es capaz de detectar señales con una mayor precisión, tanto temporal
como espacial, pero tiene el inconveniente de que requiere de un setup más elaborado y su
tiempo de puesta en marcha es más lento, al tener que seleccionar los puntos exactos de
medida.
Respecto al comportamiento de los dispositivos ante los ataques CEMA, objetivo
principal de este trabajo, estas son las conclusiones finales:
Se ha demostrado que los dispositivos ARM Cortex M3 LPC1769 y STM32L152, resultan
ser más difíciles de atacar que los ARM7TDMI-S LPC2124 y C8051F303. Para conseguir
un ataque exitoso requieren de media, en el mejor de los casos, un número de trazas unas
60 veces superior.
8. Conclusiones y Trabajos Futuros
145
Las conclusiones obtenidas con el análisis de las señales EM generadas por los
dispositivos, quedan refrendadas con estos resultados.
No está claro el origen de estas diferencias, puesto que el diseño de los dispositivos no es
público y abierto. Si bien, elementos como una mayor eficiencia y rendimiento, o la
incorporación de elementos más complejos, como un bus multicapa o un nuevo set de
instrucciones, pueden haber sido responsables de ello.
El C8051F303 ha resultado ser el microcontrolador más desfavorable de cara a un ataque
CEMA. La combinación de la arquitectura de 8 bits y la baja frecuencia de operación
influyen de manera determinante.
En cuanto a la comparación entre los dos microcontroladores con arquitectura Cortex M3
y características diferentes, no ha generado resultados concluyentes, si bien el LPC1769
presenta cierta ventaja ante un ataque CEMA. Como consecuencia no se ha podido
determinar qué aspecto resulta ser más crítico en el ataque CEMA, si la frecuencia del
microprocesador o su consumo.
A diferencia de lo publicado en la literatura, en este trabajo ha resultado ser más efectivo el
modelo de consumo HW. De hecho, el HD solo ha conseguido resultados satisfactorios
en el caso de la placa EMA1 de 8 bits, y en este caso se ha mostrado menos robusto y
eficiente.
Otros elementos que se han desarrollado durante este trabajo han sido: aplicación del
análisis Wavelet a las señales EM captadas, propuesta de un nuevo ataque bidimensional
basado en la comparación de señales bidimensionales y preprocesado de las señales EM
mediante su filtrado.
Como novedad en este trabajo:
Se ha analizado por primera vez el comportamiento de la arquitectura ARM
Cortex M3 ante los SCA CEMA y se ha verificado que especificaciones de bajo
consumo y alta velocidad no presentan diferencias significativas.
Se ha realizado un análisis comparativo de cuatro dispositivos representativos
empotrados de bajo consumo, concluyéndose que los equipos modernos
tienen un perfil EM más ruidoso y presentan un comportamiento
notablemente superior ante los ataques CEMA.
Se ha comparado la efectividad relativa de tres sondas EM de campo cercano
ante un ataque CEMA, demostrando experimentalmente que una simple espira
8. Conclusiones y Trabajos Futuros
146
fabricada artesanalmente con hilo esmaltado de cobre obtiene resultados
similares a los de una sonda comercial. No obstante, es recomendable el uso de
sondas de calidad, como la MFA-R, de cabeza preamplificada milimétrica, que
permiten una mayor precisión espacial y temporal.
Se ha construido un test setup de medida específico para la realización de
ataques por canal lateral EM: prácticamente automatizado, estable ante
vibraciones, económico y con un ratio de muestreo superior al utilizado hasta
ahora en la literatura.
Se ha propuesto un nuevo parámetro, denominado Coeficiente de Efectividad
del Ataque, que permite caracterizar a un dispositivo en función de su
vulnerabilidad o resistencia ante un ataque por correlación, ya sea EMA o PA.
En conclusión, la seguridad de los sistemas embebidos modernos ante ataques EM es
superior a la de dispositivos clásicos. Sin embargo, se debe seguir trabajando en este aspecto.
Como se ha demostrado, la realización de un ataque EMA/PA es bastante asequible, no
requiere de un equipo excesivamente caro, se puede aplicar sobre cualquier algoritmo
criptográfico y prácticamente sin necesidad de conocer el diseño interno del dispositivo bajo
ataque.
8.2 Trabajos Futuros
- Analizar la seguridad relativa de dispositivos embebidos con alta capacidad de
procesamiento y capaces de soportar un sistema operativo, tales como los ARM
Cortex A8, A11 etc.
- Comparar los resultados obtenidos con los Intel Quark, competencia directa de los
Cortex M y R, y que presumiblemente saldrán al mercado en Enero de 2014
[IntIdp'13].
- Comprobar de manera fehaciente que los resultados aquí mostrados para el canal
EM tienen su réplica en el canal PA.
- En [Char'05] se aplican las wavelets como filtro para mejorar los ataques DPA.
Para ello utilizan la familia de wavelets madre ‘Symlet’, sin justificar
apropiadamente la decisión, ni indicar detalles acerca del nivel de descomposición
realizado para el filtrado. Se propone analizar el uso de las wavelets como filtro y
justificar su uso y configuración, tal como propone Jesús Rubio en su artículo
8. Conclusiones y Trabajos Futuros
147
[Rub'10], donde utiliza el Coeficiente de Correlación de Pearson junto con las
wavelets.
- Conseguir que el ataque bidimensional propuesto y estudiado en este trabajo
genere resultados satisfactorios, utilizando alguna técnica de comparación
bidimensional no ensayada.
- Analizar en profundidad la repercusión de la temperatura en los ataques CEMA y
en extensión en la captura de trazas.
- Determinar un indicador o métrica de benchmarking, que refleje la seguridad relativa
de los dispositivos ante cualquier tipo de ataque, para que llegue a considerarse
como un factor más a tener en cuenta a la hora de la adquisición, junto a su
rendimiento, consumo, memoria etc. Como ejemplos similares se pueden citar la
etiqueta ecológica de los electrodomésticos o neumáticos, o el consumo medio de
un automóvil.
Anexo 1. AES
149
Anexo 1
AES
El AES: Advanced Encryption Standard o Rijndael41 es un algoritmo de cifrado
simétrico42 de bloques, basado en una red de sustituciones y permutaciones. Se obtuvo como
resultado de un concurso público del Instituto Nacional de Estándares y Tecnología: NIST,
que se realizó desde septiembre de 1997 a octubre de 2000. El 26 de noviembre de 2001
Rijndael fue anunciado como FIPS 197 de los EEUU [Nist'01], aunque no se adoptó como
estándar efectivo hasta Mayo de 2002 [Dae'02], sustituyendo a su exitoso predecesor, el DES:
Data Encryption Standard, activo desde 1977 y que fue roto en 1997 por RSA Laboratorys,
usando la técnica denominada “Fuerza Bruta” con 70.000 computadoras conectadas a Internet
durante aproximadamente 96 días [RSA'97]. Actualmente el AES es uno de los algoritmos de
criptografía simétrica más ampliamente utilizados [[Ska'11], [WikAES'13]].
Las características que hacen del AES uno de los algoritmos más populares son:
Rapidez: tanto en implementaciones Hardware como Software.
Versatilidad y facilidad de implementación en distintas plataformas.
No requiere muchos recursos.
Es de dominio público, y por tanto gratuito, pues está libre de patentes.
41 Derivado del nombre de sus autores: los criptólogos belgas Vincent Rijmen y Joan Daemen. 42 También llamado de clave privada, el cual utiliza la misma clave para encriptar y desencriptar.
Anexo 1. AES
150
Descripción
El algoritmo consiste en una serie de pasos secuenciales, que modifican un bloque de
datos a cifrar de 128 bits, denominado Estado43, con un tamaño de clave de 128, 192 ó 256
bits. Su representación suele hacerse en forma matricial, con un byte en cada elemento y
siempre con cuatro filas, para facilitar su interpretación y los cálculos.
Todos los bytes son interpretados como polinomios pertenecientes a un campo finito
GF(28)44, de forma que un byte genérico B= representaría el
polinomio:
Este dato se debe tener en cuenta a la hora de realizar operaciones como la suma y la
resta, puesto que no se realizan de la misma forma que con los números [Nist'01].
Supongamos que se quiere cifrar el texto siguiente de 16 bytes: “Electromagnetico”
que en hexadecimal equivale a: “45 6C 65 63 74 72 6F 6D 61 67 6E 65 74 69 63 6F”. El
estado quedaría de la siguiente forma:
P0 P1 P2 P3
45 74 61 74
6C 72 67 69
65 6F 6E 63
63 6D 65 6F
Las fases del algoritmo para una longitud de clave de 128 bits son las siguientes45, que
esquemáticamente se pueden representar tal como se muestra en la Figura A1.1:
1. KeyExpansion
2. AddRoundKey
3. Rondas (x 9)
a. SubBytes b. ShiftRows c. MixColumns d. AddRoundKey
43 Es posible utilizar otros tamaños de bloque: 192 ó 256 bits, no obstante, el estándar no lo contempla. 44 GF(28): campo finito o Galois Field que contiene los 256 polinomios irreducibles distintos de grado menor o igual que ocho. 45 Para un tamaño de clave distinto, el número de rondas (Rounds) varía: 128 bits → 9 rondas, 192 bits → 11 rondas y 256 bits → 13 rondas. Al final se ejecuta siempre una ronda final (Final Round).
Anexo 1. AES
151
4. Ronda Final
a. SubBytes b. ShiftRows c. AddRoundKey
Figura A1. 1: Diagrama algoritmo AES
1. KeyExpansion: Se puede decir que es una prefase que se realiza al inicio del
algoritmo, aunque suele ser habitual, por temas de economización de espacio en memoria,
ejecutarla cuando el algoritmo lo requiere (just in time). A partir de la clave original se obtiene
una clave expandida de mayor tamaño, que es la que luego se utiliza en el resto de pasos. Es lo
que se denomina generación de las Claves de Ronda o RoundKeys.
Se parte de una clave de 128 bits en hexadecimal representada de forma matricial del
mismo modo que el estado. Por ejemplo, supongamos que la clave es “Universidad_UC3M”.
En hexadecimal equivaldría a: “55 6E 69 76 65 72 73 69 64 61 64 5F 55 43 33 4D”:
Anexo 1. AES
55 65 64 55 6E 72 61 43 69 73 64 33 76 69 5F 4D
Primero se toma la última columna Wi-1 y se realiza una rotación hacia la izquierda o
RotWord. A continuación se le realiza la operación SubBytes, en la que se sustituyen los bytes
por otros según una tabla de sustitución, LUT o también S-Box. Por último se realiza una
operación Xor entre la primera columna de la clave Wi-4, el resultado obtenido de la operación
SubBytes y la columna Rcon[r] = [2r-1hex; 00; 00; 00], donde r es el número de ronda o
iteración. Se obtiene así, la primera columna de la expansión de la clave: Wi. Véase la Figura
A1.2.
Las siguientes tres columnas de la ronda 1 se obtienen todas realizando
respectivamente una Xor de la cuarta columna anterior Wi-4 con la anterior Wi-1, Figura A1.3.
Anexo 1. AES
Este proceso se repite 9 veces más, es decir el número de rondas del algoritmo,
obteniendo como resultado las RoundKeys: bloques de 128 bytes, que se aplicarán en las
rondas del bloque de cifrado, Figura A1.4.
2. AddRoundKey: Esta operación añade la clave al bloque de datos inicial o estado
inicial, mediante una operación Xor. Consiste en realizar una Xor byte a byte, Figura A1.5.
3. Rondas: Fase compuesta por cuatro pasos intermedios que se repiten 9 veces.
Anexo 1. AES
a) SubBytes Se basa en una sustitución no lineal de cada uno de los bytes del
estado anterior de acuerdo a una Lut o S-Box46, tal como se hizo en la fase KeyExpansion,
Figura A1.6.
b) ShiftRows: Como su nombre indica se trata una transformación que opera sobre
las filas. Realiza un desplazamiento hacia la izquierda de cada fila del estado, un número de
veces determinado. De un byte para la fila dos, de dos bytes para la tres y de tres bytes para la
última fila. La primera fila no se modifica. Véase la Figura A1.7.
46 La S-Box o LUT utilizada proviene de la función inversa alrededor del GF(28) famosa por sus propiedades de no linealidad.
Anexo 1. AES
c) MixColumns Es una transformación de mezclado lineal invertible, que intenta
difuminar el resultado. Opera con las columnas del estado, aplicándoles una transformación
lineal, consistente en una multiplicación por un polinomio fijo A(x). Véase la Figura A1.8.
Consigue que cualquier variación de un bit afecte a todos los resultados.
d) AddRoundKey El estado se combina con los bytes de la clave expandida,
obtenida en el paso 1, usando la operación xor a nivel de byte, Figura A1.9. En esta primera
ronda se utiliza la RoundKey 1, en siguientes rondas se irán cogiendo sucesivamente el resto
de RoundKeys.
Esta fase, es aplicada al estado 8 veces más. En total, dado que la clave es de 128 bits,
9 veces.
Anexo 1. AES
156
4. Final Round → Fase igual a las rondas intermedias, pero sin la etapa MixColumns.
Genera el texto cifrado:
C0 C1 C2 C3
6E 14 0D 5C
E4 8F 1F 80
8A 48 F3 9D
75 E5 32 2C
Cuya representación en ASCII es: “nõèu¶ÅHÕ¾2\ÇØ,”
Anexo 2. Códigos AES Implementados
157
Anexo 2
CÓDIGOS AES IMPLEMENTADOS
En este capítulo se muestran los códigos AES implementados en las placas bajo
estudio. La placa EMA 1, se ha programado en lenguaje ensamblador y el resto en ANSI C.
Para no extender en exceso este capítulo se incluirán solo las rutinas referentes al
algoritmo AES; El resto se obviarán, tales como el código de configuración de la placa, rutina
principal etc. Así mismo, dado que el código en lenguaje ANSI C implementado en las tres
placas es muy similar (únicamente hay variaciones derivadas de la utilización de un entorno de
programación distinto y por la configuración de la placa) solo se mostrará una versión y las
variaciones importantes del código.
Anexo 2. Códigos AES Implementados
158
CÓDIGO EMA 2, 3 y 4: ARM 7 y CORTEX M3 (ANSI C)
// Número de columnas del State
#define Nb 4
// Numero de bits de la clave usada: 128, 192 o 256
#define LengthKey 128
// Numero de Textos de 16 bytes a encriptar en bucle
#define PtextsBucle 1000
// Número de rondas del AES
unsigned int Nr=0;
// Número de palabras de 32 bits de la clave
unsigned int Nk=0;
// Plaintexts a encriptar
unsigned char const Ptexts [PtextsBucle][LengthKey/8] =
0xE4,0x57,0x89,0x74,0x2D,0x8A,0x01,0xFA,0x15,0x4E,0xA0,0x4A,0xA8,0xBD,0x61,0x62,
0xA3,0xBF,0x16,0xCA,0x7A,0x69,0xC8,0x45,0x90,0xEB,0xA8,0x4B,0x33,0x64,0xB4,0xA2,
0xAF,0xE6,0xC1,0x61,0xAC,0x4D,0x7B,0xF9,0xC6,0x40,0xFA,0x20,0x7F,0xF8,0x4B,0x54,
...
// Vector de salida con el texto encriptado
unsigned char out[16];
// Estado que almacena los resultados intermedios
unsigned char state[4][4];
// Rondas de las claves
unsigned char RoundKey[240];
// Clave
unsigned char Key[32] = 0xC8, 0x0A, 0x4A, 0xBF, 0x78, 0xD3, 0xB2, 0x79, 0x98,
0xA0, 0xB6, 0x36, 0xB4, 0x5E, 0x9B, 0xD1;
unsigned char const SBox[256] =
//0 1 2 3 4 5 6 7 8 9 A B C D E F
0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,//0
0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,//1
0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,//2
0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,//3
0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,//4
0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,//5
0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,//6
0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,//7
0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,//8
0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,//9
0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,//A
0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,//B
0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,//C
0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,//D
0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,//E
0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 //F
;
; *********************************************************************************
; KeyExpansion
; Obtiene las RoundKeys
; In: Key -> Clave
; Out: RoundKey -> Claves de las rondas
; *********************************************************************************
void KeyExpansion(void)
unsigned int i,j;
unsigned char temp[4],k;
for(i=0;i<Nk;i++)
RoundKey[i*4]=Key[i*4];
RoundKey[i*4+1]=Key[i*4+1];
RoundKey[i*4+2]=Key[i*4+2];
RoundKey[i*4+3]=Key[i*4+3];
while (i < (Nb * (Nr+1)))
for(j=0;j<4;j++)
temp[j]=RoundKey[(i-1) * 4 + j];
if (i % Nk == 0)
k = temp[0];
temp[0] = temp[1];
temp[1] = temp[2];
temp[2] = temp[3];
temp[3] = k;
Anexo 2. Códigos AES Implementados
159
temp[0]=SBox[temp[0]];
temp[1]=SBox[temp[1]];
temp[2]=SBox[temp[2]];
temp[3]=SBox[temp[3]];
temp[0] = temp[0] ^ Rcon[i/Nk];
else if (Nk > 6 && i % Nk == 4)
temp[0]=SBox[temp[0]];
temp[1]=SBox[temp[1]];
temp[2]=SBox[temp[2]];
temp[3]=SBox[temp[3]];
RoundKey[i*4+0] = RoundKey[(i-Nk)*4+0] ^ temp[0];
RoundKey[i*4+1] = RoundKey[(i-Nk)*4+1] ^ temp[1];
RoundKey[i*4+2] = RoundKey[(i-Nk)*4+2] ^ temp[2];
RoundKey[i*4+3] = RoundKey[(i-Nk)*4+3] ^ temp[3];
i++;
; *********************************************************************************
; AddRoundKey
; Aplica la función AddRoundKey sobre el State
; *********************************************************************************
void AddRoundKey(unsigned char round)
unsigned int i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
state[j][i] ^= RoundKey[round * Nb * 4 + i * Nb + j];
; *********************************************************************************
; SubBytes
; Aplica la función SubBytes sobre el State
; *********************************************************************************
void SubBytes(void)
unsigned int i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
state[i][j] = SBox[state[i][j]];
; *********************************************************************************
; ShiftRows
; Aplica la función ShiftRows sobre el State
; *********************************************************************************
void ShiftRows(void)
unsigned char temp;
temp=state[1][0];
state[1][0]=state[1][1];
state[1][1]=state[1][2];
state[1][2]=state[1][3];
state[1][3]=temp;
temp=state[2][0];
state[2][0]=state[2][2];
state[2][2]=temp;
temp=state[2][1];
state[2][1]=state[2][3];
state[2][3]=temp;
temp=state[3][0];
state[3][0]=state[3][3];
state[3][3]=state[3][2];
state[3][2]=state[3][1];
state[3][1]=temp;
; *********************************************************************************
; xtime
Anexo 2. Códigos AES Implementados
160
; Macro que calcula el producto de x con 02 modulo 1b
; *********************************************************************************
#define xtime(x) ((x<<1) ^ (((x>>7) & 1) * 0x1b))
; *********************************************************************************
; MixColumns
; Aplica la función MixColumns sobre el State
; *********************************************************************************
void MixColumns(void)
unsigned int i;
unsigned char Tmp,Tm,t;
for(i=0;i<4;i++)
t=state[0][i];
Tmp = state[0][i] ^ state[1][i] ^ state[2][i] ^ state[3][i] ;
Tm = state[0][i] ^ state[1][i] ; Tm = xtime(Tm); state[0][i] ^= Tm ^ Tmp ;
Tm = state[1][i] ^ state[2][i] ; Tm = xtime(Tm); state[1][i] ^= Tm ^ Tmp ;
Tm = state[2][i] ^ state[3][i] ; Tm = xtime(Tm); state[2][i] ^= Tm ^ Tmp ;
Tm = state[3][i] ^ t ; Tm = xtime(Tm); state[3][i] ^= Tm ^ Tmp ;
; *********************************************************************************
; Cipher
; Realiza el cifrado del Plaintext almacenado en state. Se debe llamar antes a
; KeyExpansion.
; In: in-> texto a cifrar
; Out: out -> texto cifrado
; *********************************************************************************
void Cipher(void)
unsigned int i,j,round=0;
// Ronda Inicial
AddRoundKey(0);
// Rondas
for(round=1;round<Nr;round++)
SubBytes();
ShiftRows();
MixColumns();
AddRoundKey(round);
// Ronda Final.
SubBytes();
ShiftRows();
AddRoundKey(Nr);
// Copia el state al vector de salida
for(i=0;i<4;i++)
for(j=0;j<4;j++)
out[i*4+j]=state[j][i];
; *********************************************************************************
; DatosState
; Copia el Plaintext a cifrar en el state
; In: TextoIn-> Número de texto a cifrar de Ptexts
; Out: state -> texto a cifrar
; *********************************************************************************
void DatosState(unsigned int TextoIn)
unsigned int i=0,j=0;
Nk=LengthKey/32;
Nr = Nk + 6;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
state[j][i] = Ptexts[TextoIn][j+4*i];
Anexo 2. Códigos AES Implementados
161
La modificación realizada para almacenar únicamente el byte bajo ataque de los textos
a cifrar y optimizar la memoria usada, es la siguiente:
unsigned char const Ptexts [PtextsBucle] =
0xE4,0x57,0x89,0x74,0x2D,0x8A,0x01,0xFA,0x15,0x4E,0xA0,0x4A,0xA8,0xBD,0x61,0x62,
0xA3,0xBF,0x16,0xCA,0x7A,0x69,0xC8,0x45,0x90,0xEB,0xA8,0x4B,0x33,0x64,0xB4,0xA2,
...
void DatosState(unsigned int TextoIn)
unsigned int i=0,j=0;
Nk=LengthKey/32;
Nr = Nk + 6;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
state[j][i] = rand() % 256; // Se generan bytes aleatorios
state[1][1]=Ptexts[TextoIn]; // el byte 6 toma el valor "TextoIn" de Ptexts
Anexo 2. Códigos AES Implementados
162
CÓDIGO EMA 1 C8051F303 (ENSAMBLADOR)
CIFRADO
; Clave
CIPHER_KEY: DB 0C8H, 00AH, 04AH, 0BFH, 078H, 0D3H, 0B2H, 079H, 098H, 0A0H, \
0B6H, 036H, 0B4H, 05EH, 09BH, 0D1H
; Plaintexts
InData: DB 0A3H,0D4H,089H,043H,070H,077H,095H,037H,0C8H,043H,040H,044H,09CH,0B6H,066H,0F4H,\
0C7H,0DDH,01AH,089H,08DH,0C5H,00AH,0D2H,031H,057H,08EH,0ABH,02FH,09DH,09BH,0F6H,\
093H,050H,0C0H,0DAH,0D0H,0EDH,0EAH,04EH,054H,0ADH,00DH,0E4H,0F8H,096H,03AH,015H,\
...
; Tabla Sbox
Sbox:
DB 063H, 07CH, 077H, 07BH, 0F2H, 06BH, 06FH, 0C5H, 030H, 001H, 067H, \ 02BH, 0FEH, 0D7H,
0ABH, 076H, 0CAH, 082H, 0C9H, 07DH, 0FAH, 059H, \
047H, 0F0H, 0ADH, 0D4H, 0A2H, 0AFH, 09CH, 0A4H, 072H, 0C0H, 0B7H, \
0FDH, 093H, 026H, 036H, 03FH, 0F7H, 0CCH, 034H, 0A5H, 0E5H, 0F1H, \
071H, 0D8H, 031H, 015H, 004H, 0C7H, 023H, 0C3H, 018H, 096H, 005H, \
09AH, 007H, 012H, 080H, 0E2H, 0EBH, 027H, 0B2H, 075H, 009H, 083H, \
02CH, 01AH, 01BH, 06EH, 05AH, 0A0H, 052H, 03BH, 0D6H, 0B3H, 029H, \
0E3H, 02FH, 084H, 053H, 0D1H, 000H, 0EDH, 020H, 0FCH, 0B1H, 05BH
DB 06AH, 0CBH, 0BEH, 039H, 04AH, 04CH, 058H, 0CFH, 0D0H, 0EFH, 0AAH, \
0FBH, 043H, 04DH, 033H, 085H, 045H, 0F9H, 002H, 07FH, 050H, 03CH, \
09FH, 0A8H, 051H, 0A3H, 040H, 08FH, 092H, 09DH, 038H, 0F5H, 0BCH, \
0B6H, 0DAH, 021H, 010H, 0FFH, 0F3H, 0D2H, 0CDH, 00CH, 013H, 0ECH, \
05FH, 097H, 044H, 017H, 0C4H, 0A7H, 07EH, 03DH, 064H, 05DH, 019H, \
073H, 060H, 081H, 04FH, 0DCH, 022H, 02AH, 090H, 088H, 046H, 0EEH, \
0B8H, 014H, 0DEH, 05EH, 00BH, 0DBH, 0E0H, 032H, 03AH, 00AH, 049H, \
006H, 024H, 05CH, 0C2H, 0D3H, 0ACH, 062H, 091H, 095H, 0E4H, 079H
DB 0E7H, 0C8H, 037H, 06DH, 08DH, 0D5H, 04EH, 0A9H, 06CH, 056H, 0F4H, \
0EAH, 065H, 07AH, 0AEH, 008H, 0BAH, 078H, 025H, 02EH, 01CH, 0A6H, \
0B4H, 0C6H, 0E8H, 0DDH, 074H, 01FH, 04BH, 0BDH, 08BH, 08AH, 070H, \
03EH, 0B5H, 066H, 048H, 003H, 0F6H, 00EH, 061H, 035H, 057H, 0B9H, \
086H, 0C1H, 01DH, 09EH, 0E1H, 0F8H, 098H, 011H, 069H, 0D9H, 08EH, \
094H, 09BH, 01EH, 087H, 0E9H, 0CEH, 055H, 028H, 0DFH, 08CH, 0A1H, \
089H, 00DH, 0BFH, 0E6H, 042H, 068H, 041H, 099H, 02DH, 00FH, 0B0H, \
054H, 0BBH, 016H
RCON: DB 001H, 002H, 004H, 008H, 010H, 020H, 040H, 080H, 01BH, 036H
; Ronda actual de la clave
ROUNDKEY: DS 16
; Ronda actual cifrado
ROUND: DS 1
; Estado
State: DS 16
;**********************************************************************************
; Cifrado
; Rutina que encripta un mensaje usando AES
;**********************************************************************************
Cifrado:
LCALL StateIn
LCALL KeyRAM
MOV ROUND,#00H
ROUND1:
LCALL AddRoundKey
ROUND2:
LCALL SubBytes
LCALL ShiftRows
LCALL MixColumns
LCALL KeyExpansion
LCALL AddRoundKey
INC ROUND
ROUNDS8:
LCALL SubBytes
LCALL ShiftRows
LCALL MixColumns
LCALL KeyExpansion
LCALL AddRoundKey
INC ROUND
MOV A,ROUND
XRL A,#09H
JNZ ROUNDS8
LCALL SubBytes
LCALL ShiftRows
LCALL KeyExpansion
LCALL AddRoundKey
Anexo 2. Códigos AES Implementados
163
LCALL StateOut
RET
; Fin de Cifrado
;**********************************************************************************
; StateIn
; Copia el texto plano en la matriz State
; In: F0=1 (solo primer uso)
; DPTR-> dirección primer plaintext a cifrar (solo primer uso)
; Out: R7
;**********************************************************************************
StateIn:
JBC F0,IJump ; Salta en el primer cifrado F0: User Flag 0
MOV A,#10H
CLR C
ADD A,DirL
MOV DirL,A
JNC FJump ; Si no hay acarreo (CARRY) salto y no aumento DirH
INC DirH
FJump:
MOV DPH,DirH ; Movemos al DPTR la dirección del Plaintext (Parte Alta)
MOV DPL,DirL ; Movemos al DPTR la dirección del Plaintext (Parte Baja)
IJump:
MOV R1,#State
LCALL ROM2RAM ; Rutina implementada en Expansion de Clave
RET
; Fin de StateIn
;**********************************************************************************
; StateOut
; Copia el texto encriptado de la matriz State al vector de salida
; In: State-> texto encriptado
; Out: EncryptedData
;**********************************************************************************
StateOut:
MOV i,#00H
MOV R1,#State
MOV R0,#EncryptedData
MASDATOS:
MOV A,@R1
MOV @R0,A
INC R1
INC R0
INC i
MOV A,i
XRL A,#10H
JNZ MASDATOS
RET
; Fin de StateOut
;**********************************************************************************
; SubBytes
; Ejecuta la fase Subbytes sobre el State
; In: State-> texto
; Out: State-> texto modificado con Subbytes
;**********************************************************************************
SubBytes:
MOV A,State
MOV DPTR,#Sbox
MOVC A,@A+DPTR
MOV State,A
MOV A,State+01H
MOVC A,@A+DPTR
MOV State+01H,A
MOV A,State+02H
MOVC A,@A+DPTR
MOV State+02H,A
MOV A,State+03H
MOVC A,@A+DPTR
MOV State+03H,A
MOV A,State+04H
MOVC A,@A+DPTR
MOV State+04H,A
MOV A,State+05H
MOVC A,@A+DPTR
MOV State+05H,A
MOV A,State+06H
MOVC A,@A+DPTR
MOV State+06H,A
MOV A,State+07H
MOVC A,@A+DPTR
MOV State+07H,A
MOV A,State+08H
MOVC A,@A+DPTR
MOV State+08H,A
MOV A,State+09H
Anexo 2. Códigos AES Implementados
164
MOVC A,@A+DPTR
MOV State+09H,A
MOV A,State+0AH
MOVC A,@A+DPTR
MOV State+0AH,A
MOV A,State+0BH
MOVC A,@A+DPTR
MOV State+0BH,A
MOV A,State+0CH
MOVC A,@A+DPTR
MOV State+0CH,A
MOV A,State+0DH
MOVC A,@A+DPTR
MOV State+0DH,A
MOV A,State+0EH
MOVC A,@A+DPTR
MOV State+0EH,A
MOV A,State+0FH
MOVC A,@A+DPTR
MOV State+0FH,A
RET
; Fin de SubBytes
;**********************************************************************************
; ShiftRows
; Ejecuta la fase ShiftRows.
; In: State-> texto
; Out: State-> texto modificado con ShiftRows
;**********************************************************************************
ShiftRows:
MOV R7,State+01H
MOV State+01H,State+05H
MOV State+05H,State+09H
MOV State+09H,State+0DH
MOV State+0DH,R7
MOV R7,State+02H
MOV State+02H,State+0AH
MOV State+0AH,R7
MOV R7,State+06H
MOV State+06H,State+0EH
MOV State+0EH,R7
MOV R7,State+0FH
MOV State+0FH,State+0BH
MOV State+0BH,State+07H
MOV State+07H,State+03H
MOV State+03H,R7
RET
; Fin de ShiftRows
;**********************************************************************************
; MixColumns
; Ejecuta la fase MixColumns usando la rutina xtime.
; In: State-> texto
; Out: State-> texto modificado con MixColumns
;**********************************************************************************
MixColumns:
MOV A,State
XRL A,State+01H
MOV aux1,A
MOV A,State+02H
XRL A,State+03H
MOV aux3,A
XRL A,aux1
MOV aux0,A
MOV A,State+02H
XRL A,State+01H
MOV aux2,A
MOV R3,aux1
LCALL xtime
MOV aux1,R7
MOV R3,aux2
LCALL xtime
MOV aux2,R7
MOV R3,aux3
LCALL xtime
MOV aux3,R7
MOV A,aux0
XRL A,aux1
XRL State,A
MOV A,aux0
XRL A,aux2
XRL State+01H,A
MOV A,aux0
XRL A,aux3
XRL State+02H,A
MOV A,State
XRL A,State+01H
Anexo 2. Códigos AES Implementados
165
XRL A,State+02H
XRL A,aux0
MOV State+03H,A
MOV A,State+04H
XRL A,State+05H
MOV aux1,A
MOV A,State+06H
XRL A,State+07H
MOV aux3,A
XRL A,aux1
MOV aux0,A
MOV A,State+06H
XRL A,State+05H
MOV aux2,A
MOV R3,aux1
LCALL xtime
MOV aux1,R7
MOV R3,aux2
LCALL xtime
MOV aux2,R7
MOV R3,aux3
LCALL xtime
MOV aux3,R7
MOV A,aux0
XRL A,aux1
XRL State+04H,A
MOV A,aux0
XRL A,aux2
XRL State+05H,A
MOV A,aux0
XRL A,aux3
XRL State+06H,A
MOV A,State+04H
XRL A,State+05H
XRL A,State+06H
XRL A,aux0
MOV State+07H,A
MOV A,State+08H
XRL A,State+09H
MOV aux1,A
MOV A,State+0AH
XRL A,State+0BH
MOV aux3,A
XRL A,aux1
MOV aux0,A
MOV A,State+0AH
XRL A,State+09H
MOV aux2,A
MOV R3,aux1
LCALL xtime
MOV aux1,R7
MOV R3,aux2
LCALL xtime
MOV aux2,R7
MOV R3,aux3
LCALL xtime
MOV aux3,R7
MOV A,aux0
XRL A,aux1
XRL State+08H,A
MOV A,aux0
XRL A,aux2
XRL State+09H,A
MOV A,aux0
XRL A,aux3
XRL State+0AH,A
MOV A,State+08H
XRL A,State+09H
XRL A,State+0AH
XRL A,aux0
MOV State+0BH,A
MOV A,State+0CH
XRL A,State+0DH
MOV aux1,A
MOV A,State+0EH
XRL A,State+0FH
MOV aux3,A
XRL A,aux1
MOV aux0,A
MOV A,State+0EH
XRL A,State+0DH
MOV aux2,A
MOV R3,aux1
LCALL xtime
MOV aux1,R7
Anexo 2. Códigos AES Implementados
166
MOV R3,aux2
LCALL xtime
MOV aux2,R7
MOV R3,aux3
LCALL xtime
MOV aux3,R7
MOV A,aux0
XRL A,aux1
XRL State+0CH,A
MOV A,aux0
XRL A,aux2
XRL State+0DH,A
MOV A,aux0
XRL A,aux3
XRL State+0EH,A
MOV A,State+0CH
XRL A,State+0DH
XRL A,State+0EH
XRL A,aux0
MOV State+0FH,A
RET
; END OF MixColumns
;**********************************************************************************
; AddRoundKey
; Ejecuta la fase AddRoundKey
; In: State-> texto
; Out: State-> texto modificado con AddRoundKey
;**********************************************************************************
AddRoundKey:
MOV A,ROUNDKEY
XRL State,A
MOV A,ROUNDKEY+01H
XRL State+01H,A
MOV A,ROUNDKEY+02H
XRL State+02H,A
MOV A,ROUNDKEY+03H
XRL State+03H,A
MOV A,ROUNDKEY+04H
XRL State+04H,A
MOV A,ROUNDKEY+05H
XRL State+05H,A
MOV A,ROUNDKEY+06H
XRL State+06H,A
MOV A,ROUNDKEY+07H
XRL State+07H,A
MOV A,ROUNDKEY+08H
XRL State+08H,A
MOV A,ROUNDKEY+09H
XRL State+09H,A
MOV A,ROUNDKEY+0AH
XRL State+0AH,A
MOV A,ROUNDKEY+0BH
XRL State+0BH,A
MOV A,ROUNDKEY+0CH
XRL State+0CH,A
MOV A,ROUNDKEY+0DH
XRL State+0DH,A
MOV A,ROUNDKEY+0EH
XRL State+0EH,A
MOV A,ROUNDKEY+0FH
XRL State+0FH,A
RET
; Fin de AddRoundKey
;**********************************************************************************
; xtime
; Realiza una multiplicación de un polinomio (entrada) por x y hace el
; modulo m(x); m(x) is (x^8 + x^4 + x^3 + x + 1).
; Esto se implementa como un desplazamiento a la izquierda y una XOR con 0x1B
; si el bit desplazado es 1.
; In: R3-> polinomio
; Out: R7
;**********************************************************************************
xtime:
MOV A,R3
ANL A,#80H
JZ NOX8
MOV A,R3
ADD A,R3 ;Rotación a la izquierda tb: CLR C, RLC A
XRL A,#1BH
MOV R7,A
RET
NOX8:
MOV A,R3
ADD A,R3 ;Rotación a la izquierda tb: CLR C, RLC A
MOV R7,A
Anexo 2. Códigos AES Implementados
167
RET
; Fin de xtime
EXPANSIÓN CLAVE
;**********************************************************************************
; KeyRAM
; Pasa la clave de Rom (CIPHER_KEY) a Ram (ROUNDKEY)
; In: Nada
; Out: Clave en variable ROUNDKEY
;**********************************************************************************
KeyRAM:
MOV DPTR,#CIPHER_KEY
MOV R1,#ROUNDKEY
LCALL ROM2RAM
RET
; Fin de KeyRAM
;**********************************************************************************
; ROM2RAM
; Pasa 16 bytes de Rom a Ram
; In: DPTR -> Dirección de los 16 bytes de Rom: Datos origen
; R1 -> Dirección de los 16 bytes de Ram: Datos destino
; Out: Datos ROM apuntados por DPTR guardados en variable RAM a la que apunta R1
; *********************************************************************************
ROM2RAM:
MOV i,#00H
SaltoFor:
MOV A,i
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC i
MOV A,i
XRL A,#10H
JNZ SaltoFor
RET
; Fin de ROM2RAM
; *********************************************************************************
; KEYEXPANSION
; Expande la clave una ronda
; In: Key o RoundKeyX en vector ROUNDKEY
; Round = X-1 -> En Round se introduce el número de ronda empezando por 0 a 9
; Out: RoundKeyX+1 en ROUNDKEY
; *********************************************************************************
KeyExpansion:
MOV TEMPWORD,ROUNDKEY+12
MOV TEMPWORD+1,ROUNDKEY+13
MOV TEMPWORD+2,ROUNDKEY+14
MOV TEMPWORD+3,ROUNDKEY+15
MOV R7,TEMPWORD
MOV TEMPWORD,TEMPWORD+01H
MOV TEMPWORD+01H,TEMPWORD+02H
MOV TEMPWORD+02H,TEMPWORD+03H
MOV TEMPWORD+03H,R7
MOV A,TEMPWORD
MOV DPTR,#Sbox
MOVC A,@A+DPTR
MOV TEMPWORD,A
MOV A,TEMPWORD+01H
MOVC A,@A+DPTR
MOV TEMPWORD+01H,A
MOV A,TEMPWORD+02H
MOVC A,@A+DPTR
MOV TEMPWORD+02H,A
MOV A,TEMPWORD+03H
MOVC A,@A+DPTR
MOV TEMPWORD+03H,A
MOV DPTR,#RCON
MOV A,ROUND ; ROUND EMPIEZA EN 0 Y TERMINA EN 9
MOVC A,@A+DPTR
XRL TEMPWORD,A
MOV A,TEMPWORD
XRL ROUNDKEY,A
MOV A,TEMPWORD+1
XRL ROUNDKEY+1,A
MOV A,TEMPWORD+2
Anexo 2. Códigos AES Implementados
168
XRL ROUNDKEY+2,A
MOV A,TEMPWORD+3
XRL ROUNDKEY+3,A
MOV A,ROUNDKEY
XRL ROUNDKEY+4,A
MOV A,ROUNDKEY+1
XRL ROUNDKEY+5,A
MOV A,ROUNDKEY+2
XRL ROUNDKEY+6,A
MOV A,ROUNDKEY+3
XRL ROUNDKEY+7,A
MOV A,ROUNDKEY+4
XRL ROUNDKEY+8,A
MOV A,ROUNDKEY+5
XRL ROUNDKEY+9,A
MOV A,ROUNDKEY+6
XRL ROUNDKEY+10,A
MOV A,ROUNDKEY+7
XRL ROUNDKEY+11,A
MOV A,ROUNDKEY+8
XRL ROUNDKEY+12,A
MOV A,ROUNDKEY+9
XRL ROUNDKEY+13,A
MOV A,ROUNDKEY+10
XRL ROUNDKEY+14,A
MOV A,ROUNDKEY+11
XRL ROUNDKEY+15,A
RET
; Fin de KeyExpansion
Anexo 3. Resultados Experimentales Completos
169
Anexo 3
RESULTADOS EXPERIMENTALES
COMPLETOS
A continuación se muestran los resultados de los ataques CEMA realizados sobre las
placas bajo estudio cuya seguridad se ha tratado de estudiar en este trabajo utilizando el test
setup desarrollado para ello y tres sondas EM de campo cercano. En este caso solo se han
incluido los ataques que han sido satisfactorios y han proporcionado como resultado el byte 3
de la clave correctamente 0xD3. El resto al no reportar conclusión alguna, no se han incluido.
Para cada ataque, se muestran dos tipos de gráficas. La primera refleja el coeficiente de
correlación obtenido suponiendo la clave correcta para un intervalo de registros alrededor del
máximo. El número de registro indicado en las gráficas, permite conocer el momento en el
que se produce la correlación respecto del inicio de la captura que coincide con el comienzo
de la fase AddRoundkey47 pues la captura se realiza de forma constante a 5
Gmuestras/segundo, o lo que es lo mismo 0.2 nsegundos/registro.
La segunda gráfica presenta la evolución en valor absoluto del coeficiente de
correlación de cada una de las claves posibles, para el registro de la traza que genera un mayor
coeficiente de correlación, en función del número de trazas EM utilizadas para su cálculo. En
47 En el caso de la placa EMA4, se captó sólo la fase Subbytes. Por ello, el número de registro se ha corregido para incluir la fase AddRoundKey previa, de forma que las cuatro placas estén en las mismas condiciones.
Anexo 3. Resultados Experimentales Completos
170
verde se resalta la envolvente de los coeficientes de correlación de las claves incorrectas, en
rojo el coeficiente de correlación de la clave correcta y en azul la diferencia.
EMA 1: C8051F303
EM6995
Figura A3.1: EMA 1 EM1 C.C.-Registros
Figura A3.2: EMA 1 EM1 C.C.-Trazas Registro 56527
Anexo 3. Resultados Experimentales Completos
171
Figura A3.3: EMA 1 EM2 C.C.-Registros
Figura A3.4: EMA 1 EM2 C.C.-Trazas Registro 56527
Figura A3.5: EMA 1 EM3 C.C.-Registros
Anexo 3. Resultados Experimentales Completos
172
Figura A3.6: EMA 1 EM3 C.C.-Trazas Registro 56527
Figura A3.7: EMA 1 EM4 C.C.-Registros
Figura A3.8: EMA 1 EM4 C.C.-Trazas Registro 56499
Anexo 3. Resultados Experimentales Completos
173
MFA-R
Figura A3.9: EMA 1 MFA1 C.C.-Registros
Figura A3.10: EMA 1 MFA1 C.C.-Trazas Registro 55692
Figura A3.11: EMA 1 MFA2 C.C.-Registros
Anexo 3. Resultados Experimentales Completos
174
Figura A3.12: EMA 1 MFA2 C.C.-Trazas Registro 56535
Figura A3.13: EMA 1 MFA3 C.C.-Registros
Figura A3.14: EMA 1 MFA3 C.C.-Trazas Registro 56537
Anexo 3. Resultados Experimentales Completos
175
Figura A3.15: EMA 1 MFA4 C.C.-Registros
Figura A3.16: EMA 1 MFA4 C.C.-Trazas Registro 56540
HOMEMADE
Figura A3.17: EMA 1 HO1 C.C.-Registros
Anexo 3. Resultados Experimentales Completos
176
Figura A3.18: EMA 1 HO1 C.C.-Trazas Registro 56534
Figura A3.19: EMA 1 HO2 C.C.-Registros
Figura A3.20: EMA 1 HO2 C.C.-Trazas Registro 56524
Anexo 3. Resultados Experimentales Completos
177
Figura A3.21: EMA 1 HO3 C.C.-Registros
Figura A3.22: EMA 1 HO3 C.C.-Trazas Registro 55683
Anexo 3. Resultados Experimentales Completos
178
EMA 2: ARM7
EM6995
Figura A3.23: EMA 2 EM1 C.C.-Registros
Figura A3.24: EMA 2 EM1 C.C.-Trazas Registro 75445
Anexo 3. Resultados Experimentales Completos
179
Figura A3.25: EMA 2 EM2 C.C.-Registros
Figura A3.26: EMA 2 EM2 C.C.-Trazas Registro 75328
Figura A3.27: EMA 2 EM3 C.C.-Registros
Anexo 3. Resultados Experimentales Completos
180
Figura A3.28: EMA 2 EM3 C.C.-Trazas Registro 75338
Figura A3.29: EMA 2 EM4 C.C.-Registros
Figura A3.30: EMA 2 EM4 C.C.-Trazas Registro 75250
Anexo 3. Resultados Experimentales Completos
181
MFA-R
Figura A3.31: EMA 2 MFA1 C.C.-Registros
Figura A3.32: EMA 2 MFA1 C.C.-Trazas Registro 75354
Figura A3.33: EMA 2 MFA2 C.C.-Registros
Anexo 3. Resultados Experimentales Completos
182
Figura A3.34: EMA 2 MFA2 C.C.-Trazas Registro 75341
Figura A3.35: EMA 2 MFA3 C.C.-Registros
Figura A3.36: EMA 2 MFA3 C.C.-Trazas Registro 75448
Anexo 3. Resultados Experimentales Completos
183
Figura A3.37: EMA 2 MFA4 C.C.-Registros
Figura A3.38: EMA 2 MFA4 C.C.-Trazas Registro 75443
HOMEMADE
Figura A3.39: EMA 2 HO1 C.C.-Registros
Anexo 3. Resultados Experimentales Completos
184
Figura A3.40: EMA 2 HO1 C.C.-Trazas Registro 75272
Figura A3.41: EMA 2 HO2 C.C.-Registros
Figura A3.42: EMA 2 HO2 C.C.-Trazas Registro 75445
Anexo 3. Resultados Experimentales Completos
185
Figura A3.43: EMA 2 HO3 C.C.-Registros
Figura A3.44: EMA 2 HO3 C.C.-Trazas Registro 75274
Figura A3.45: EMA 2 HO4 C.C.-Registros
Anexo 3. Resultados Experimentales Completos
187
EMA 3: LPC1769
EM6995
Figura A3.47: EMA 3 EM3 C.C.-Registros
Figura A3.48: EMA 3 EM3 C.C.-Trazas Registro 56294
Anexo 3. Resultados Experimentales Completos
188
MFA-R
Figura A3.49: EMA 3 MFA2 C.C.-Registros
Figura A3.50: EMA 3 MFA2 C.C.-Trazas Registro 56293
Figura A3.51: EMA 3 MFA4 C.C.-Registros
Anexo 3. Resultados Experimentales Completos
189
Figura A3.52: EMA 3 MFA4 C.C.-Trazas Registro 56494
HOMEMADE
Figura A3.53: EMA 3 HO1 C.C.-Registros
Figura A3.54: EMA 3 HO1 C.C.-Trazas Registro 56295
Anexo 3. Resultados Experimentales Completos
190
Figura A3.55: EMA 3 HO2 C.C.-Registros
Figura A3.56: EMA 3 HO2 C.C.-Trazas Registro 56297
Figura A3.57: EMA 3 HO4 C.C.-Registros
Anexo 3. Resultados Experimentales Completos
192
EMA 4: STM32
EM6995
Figura A3.59: EMA 4 EM3 C.C-Registros
Figura A3.60: EMA 4 EM3 C.C.-Trazas Registro 203736
Anexo 3. Resultados Experimentales Completos
193
MFA-R
Figura A3.61: EMA 4 MFA2 C.C-Registros
Figura A3.62: EMA 4 MFR2 C.C.-Trazas Registro 203469
Figura A3.63: EMA 4 MFR3 C.C-Registros
Anexo 3. Resultados Experimentales Completos
194
Figura A3.64: EMA 4 MFR3 C.C.-Trazas Registro 203472
Figura A3.65: EMA 4 MFR4 C.C-Registros
Figura A3.66: EMA 4 MFR4 C.C.-Trazas Registro 203478
Anexo 3. Resultados Experimentales Completos
195
HOMEMADE
Figura A3.67: EMA 4 HO1 C.C-Registros
Figura A3.68: EMA 4 HO1 C.C.-Trazas Registro 203785
Figura A3.69: EMA 4 HO3 C.C-Registros
Anexo 3. Resultados Experimentales Completos
196
Figura A3.70: EMA 4 HO3 C.C.-Trazas Registro 203477
Bibliografía
197
BIBLIOGRAFÍA
[Add'09] P. S. Addison, J. Walker, R. C. Guido: “Time-Frequency Analysis of
Biosignals”. In IEEE Engineering in Medicine and Biology Magazine, 2009.
[Agr'02] D. Agrawal, B. Archambeault, J. R. Rao, P. Rohatgi: “The EM Side-Channel(s):
Attacks and Assessment Methodologies”. In proceedings of CHES 2002, LNCS
2523, pp. 29-45, Springer-Verlag, 2002.
[Agr'03] D. Agrawal, J. Rao, P. Rohatgi: “Multi-channel Attacks”. In proceedings of CHES
2003, LNCS 2779, pp. 2-16, Springer-Verlag, 2003.
[Agr'05] D. Agrawal, J. Rao, P. Rohatgi, K. Schramm: “Template as Master Keys”. In
proceedings of CHES 2005, LNCS 3659, pp. 15-29, Springer-Verlag, 2005.
[Aig'00] M. Aigner, E. Oswald: “Power Analysis Tutorial”. Institute for Applied Information
Processing and Communication, Technical Report, University of Technology Graz,
2000.
[Akk'00] M.L. Akkar, R. Bevan, P. Dischamp, D. Moyart: “Power Analysis, What is now
Possible…”. In proceedings of ASIACRYPT 2000, LNCS 1976, pp. 489-502,
Springer-Verlag, 2000.
[Akk'01] M.L. Akkar, C. Giraud: “An Implementation of DES and AES, Secure against
Some Attacks”. In proceedings of CHES 2001, LNCS 2162, pp. 309-318, 2001.
[AlMa'09] J. M. Algaba, R. Martínez: “Electromagnetic Analysis – EMA I y II”. Tesis de
Máster, Dpto. Tecnología Electrónica, Universidad Carlos III de Madrid, 2009.
[Arc'06] C. Archambeau, E. Peeters, F.-X. Standaert, J.-J. Quisquater: “Template
Attacks in Principal Subspaces”. In proceedings of CHES 2006, LNCS 4249, pp.
1-14. Springer, Heidelberg, 2006.
Bibliografía
198
[ARM7'13] ARM: “ARM7 Processor Family”. http://www.arm.com/products/processors
/classic/arm7/index [Último acceso: 20/03/2013].
[Ato'12] Atollic: “Atollic TrueSTUDIO”. http://www.atollic.com/index.php
/truestudio [Último acceso: 05/07/2013].
[Ben'03] L. Benini, A. Macii, E. Macii, E. Omerbegovic, M. Poncino, F. Pro: “Energy-
Aware Design Techniques for Differential Power Analysis Protection”. In
proceedings of DAC’03, 2003.
[Bev'03] R. Bevan, E. Knudsen: “Ways to Enhance DPA”. In proceedings of ICISC 2002,
LNCS 2587, pp. 327-342, Springer-Verlag, 2003.
[Bir'09] A. Biryukov, D. Khovratovich: “Related-key Cryptanalysis of the Full AES-192
and AES-256”. In proceedings of ASIACRYPT 2009, LNCS 5912, pp. 1-18, 2009.
[Bir'10] A. Biryukov, O. Dunkelman, N. Keller, D. Khovratovich, A. Shamir: “Key
Recovery Attacks of Practical Complexity on AES-256 Variants With Up To
10 Rounds”. In proceedings of EUROCRYPT 2010, LNCS 6110, pp. 299-319,
2010.
[Bog'07] A. Bogdanov: “Improved Side-Channel Collision Attack on AES”. Selected
Areas in Cryptography, LNCS 4876, pp. 84-95, 2007.
[Bri'04] E. Brier, C. Clavier, F. Olivier: “Correlation Power Analysis with a Leakage
Model”. In proceedings of CHES 2004, LNCS 3156, pp. 16-29, Springer-Verlag,
2004.
[Bro'09] J. Brouchier, T. Kean, C. Marsh, D. Naccache: “Temperature Attacks”. In
Security and Privacy IEEE, Vol. 7-2, pp. 79-82, ISSN: 1540-7993, IEEE
Computer Society.
[Bru'03] D. Brumley, D. Boneh: “Remote Timing Attacks Are Practical”. In proceedings of
Usenix Security Symp., p. 1, 2003.
[Buc'01] J. J. Buchholz: “Matlab Implementation of the Advanced Encryption
Standard”. http://buchholz.hs-bremen.de.
[Can'05] C. Canovas, J. Clédière: “What do S-boxes Say in Differential Side Channel
Attacks?”. Cryptology ePrint Archive, Report 20085/311, 2005.
[Car'04] V. Carlier, H. Chabanne, E. Dottax, H. Pelletier: “Electromagnetic Side-
Channels of an FPGA Implementation of AES”, Cryptology ePrint Archive,
Report: 2004/145, http://eprint.iacr.org/, 2004. [Último acceso: 21/01/2013].
Bibliografía
199
[Car'05] V. Carlier, H. Chabanne, E. Dottax, H. Pelletier: “Generalizing Square Attack
Using Side-Channel of an AES Implementation on an FPGA”. IEEE Field
Programmable Logic and Applications, 2005.
[CC'12] Common Criteria v3.1 Release 4 CCMB-2012-09-001 http://www.commo
criteriaportal.org/cc/ [Último acceso: 17/09/2013].
[CCN-Tem'06] Centro Criptológico Nacional: “Tempest” https://www.ccncert.cni.es/publico
/serieCCN-STIC401/es/t/tempest.htm [Último acceso: 19/07/2013].
[CCN-NTem'12] Centro Criptológico Nacional: “Normativa TEMPEST” https://www.oc.
ccn.cni.es/index.php?option=com_content&view=article&id=68&Itemid=12
7&lang=es [Último acceso: 19/07/2013].
[Cha'99] S. Chari, C.S. Jutla, J.R. Rao, P. Rohatgi: “Towards Sound Approaches to
Counteract Power-Analysis Attacks”. In proceedings of CRYPTO 99, LNCS 1666,
pp. 398-412, Springer-Verlag, 1999.
[Cha'02] S. Chari, J. Rao, P. Rohatgi: “Template Attacks”. In proceedings of CHES 2002,
LNCS 2523, pp. 13-28, Springer-Verlag, 2002.
[Char'05] X. Charvet, H. Pelletier: “Improving the DPA Attack using Wavelet
Transform”. In NIST Physical Security Testing Workshop, 2005.
[Chat'10] K. Chatzikokolakis, T. Chothia, A. Guha: “Statistical Measurement of
Information Leakage”. In TACAS10, pp. 390-404, 2010.
[Chot'11] T. Chothia, A. Guha: “A Statistical Test for Information Leaks Using
Continuous Mutual Information”. In CSF11, pp. 177-190, 2011.
[Cla'00] C. Clavier, J.-S. Coron, N. Dabbous: “Differential Power Analysis in the
Presence of Hardware Countermeasures”. In proceedings of CHES 2000, LNCS
1965, pp. 252-263, Springer-Verlag, 2000.
[Cor'99] J.S. Coron: “Resistance against Differential Power Analysis for Elliptic Curve
Cryptosystems”. In proceedings of CHES 1999, LNCS 1717, pp. 292-302,
Springer-Verlag, 1999.
[Cor'00] J.S. Coron, P. Kocher, D. Naccache: “Statistics and Secret Leakage”. In
proceedings of Financial Cryptography, LNCS 1962, pp. 157-173, Springer-Verlag,
2000.
Bibliografía
200
[Cro'09] S.A. Crosby, D.S. Wallach, R.H. Riedi: “Opportunities and Limits of Remote
Timing Attacks”. In proceedings of ACM Trans. Information and System Security, vol.
12-3, article 17, 2009.
[Dae'99] J. Daemen, V. Rijmen: “AES Proposal: Rijndael”, 1999. http://citeseerx.ist.
psu.edu/viewdoc/download?doi=10.1.1.36.640&rep=rep1&type=pdf [Último
acceso: 01/03/2013].
[Dae'02] J. Daemen, V. Rijmen: “The Design of Rijndael. AES — the Advanced
Encryption Standard”. Springer, 2002.
[Din'09] G. L. Ding, J. Chu, L. Yuan, Q. Zhao: “Correlation Electromagnetic Analysis
for Cryptographic Device”. In proceedings of PACCS’09, pp. 388-391, 2009.
[Dvam'08] L. Batina, T. Eisenbarth, B. Gierlichs, T. Kasper, F. Koeune, K. Lemke-Rust,
F. Macé, E. Oswald, C. Petit, S. Tillich: “Theoretical Models for Side-Channel
Attacks”. UCL Crypto Group, 2008. http://www.ecrypt.eu.org/ecrypt1
/documents/D.VAM.15.pdf [Último acceso: 20/02/13].
[Ecl'04] Eclipse – The Eclipse Foundation open source community.
http://www.eclipse.org [Último acceso: 02/08/13].
[Edi'09] R. Ediss: “Probing the Magnetic Field Probe”. Philips Semiconductors UK, 2009.
http://www.complianceclub.com/archive /old_archive/030718.htm [Último
acceso: 22/07/13].
[EM'07] Electro-Metrics: “EM-6992 Set of E & H Probes, 100 Khz to 1000 Mhz”.
http://www.electro-metrics.com/product/em-6992/207 [Último acceso:
23/04/13].
[Fah'99] P. Fahn, P. Pearson: “IPA: A new class of Power Attacks”. In proceedings of
CHES 1999, LNCS 1717, pp. 173-186, Springer-Verlag, 1999.
[FTDI'10] FTDI Chip: “TTL-232R USB – TTL Level Serial Converter”.
http://www.ftdichip.com/Products/EvaluationKits/TTL-232R.htm [Último
acceso: 23/04/13].
[Gan'01] K. Gandolfi, C. Mourtel, F. Olivier: “Electromagnetic Analysis: Concrete
results”. In proceedings of CHES 2001, LNCS 2162, pp. 251-261, Springer-Verlag,
2001.
Bibliografía
201
[Geb'03] C.H. Gebotys, R.J. Gebotys: “Secure Elliptic Curve Implementation: an
Analysis of resistance to power-attacks in a DSP processor”. In proceedings of
CHES 2003, LNCS 2523, pp. 114-128, 2003.
[Geb'05a] C.H. Gebotys, C.C. Tiu, X. Chen: “A Countermeasure for EM Attack of a
Wireless PDA”. In proceedings of ITCC 05, Vol. 1, pp. 544-549, 2005.
[Geb'05b] C.H. Gebotys, C.C. Tiu, S. Ho: “EM Analysis of Rijndael and ECC on a
Wireless Java-based PDA”. In proceedings of CHES 2005, LNCS 3659, 2005.
[Geb'06] C.H. Gebotys: “A Table Masking Countermeasure for Low-Energy Secure
Embedded Systems”. IEEE Transactions on VLSI Systems, Vol. 14, N7, pp. 740-
753, 2006.
[Geb'08a] C.H. Gebotys, B.A. White: "EM Analysis of a Wireless Java based PDA". In
ACM Trans. on Embedded Computing Systems, Vol. 7 Issue 4 Nº 44, 2008.
[Geb'08b] C.H. Gebotys, B.A. White “EM alignment using phase for secure embedded
systems”. Springer Science+Business Media, LLC, 2008.
[Gen'04] R. Gennaro, A. Lysyanskaya, T. Malkin, S. Micali, T. Rabin: “Algorithmic
Tamper-Proof Security: Theoretical Foundations for Security Against
Hardware Tampering”. In proceedings of TCC 2004, LNCS 2951, pp. 258-277,
2004.
[Gie'04] B. Gierlichs, K. Lemke-Rust, C. Paar: “Templates vs. Stochastic Methods”. In
proceedings of CHES 2006, LCNS 4249, pp. 15-29, Springer-Verlag, 2006.
[Gol'02] J. Dj. Golié: “Multiplicative Masking and Power Analysis of AES”. In proceedings
of CHES 2002, LNCS 2523, pp. 198-212, Springer-Verlag, 2002.
[Goo'11a] G. Goodwill, B. Jun, J. Jaffe, P. Rohatgi: “A testing methodology for side-
channel resistance validation”. In NIST Non-Invasive Attack Testing Workshop,
2011.
[Goo'11b] G. Goodwill: “Defending against side-channel attacks”. The Electrochemical
Society: ESC, 2011. http://www.eetimes.com/design/military-aerospace-design
/4396658/Defending-against-side-channel-attacks-Part-I [Último acceso:
11/03/2013].
[Gou'99] L. Goubin, J. Patarin: “DES and Differential Power Analysis – The
Duplication Method”. In proceedings of CHES 1999, LNCS 1717, pp. 158-172,
Springer-Verlag, 1999.
Bibliografía
202
[Gui'04] S. Guilley, P. Hoogvorst, R. Pacalet: “Differential Power Analysis Model and
Some Results”. In proceedings of CARDIS 2004, pp. 127-142, 2004.
[Ha'05] J. Ha, C. Kim, S. Moon, I. Park, H. Yoo: “Differential Power Analysis on
Block Cipher ARIA”. In proceedings of HPCC 2005, LNCS 3726, pp. 541-548,
2005.
[Hay'12] Y. Hayashi, N. Homma, T. Mizuki, T. Aoki, H. Sone: “Transient IEMI Threats
for Cryptographic Devices”. In IEEE transactions on Electromagnetic Compatibility,
2012.
[Hit'09] Hitex: “The Insider’s Guide to the STM32 ARM Based microcontroller v.1.8”.
Hitex (UK) Ltd., 2009. ISBN: 0-9549988 8.
[Hod'11] P. Hodgers, K.H. Boey, M. O'Neill: “Variable Window Power Spectral Density
Attack”. In WIFS'2011, 2011.
[Hom'06] N. Homma, S. Nagashima, T. Sugawara, T. Aoki, A. Satoh: “A High-
Resolution Phase-Based Waveform Matching and Its Application to Side-
Channel Attacks”. In proceedings of CHES 2006, LNCS 4249, pp. 187-200,
2006.
[Hor'12] Y. Hori1, T. Katashita, A. Sasaki, A. Satoh: “Electromagnetic Side-channel
Attack against 28-nm FPGA Device”. In proceedings of WISA 2012, 2012.
[Hos'11] G. Hospodar, E. De Mulder, B. Gierlichs, I. Verbauwhede, J. Vandewalle:
“Least Squares Support Vector Machines For Side-Channel Analysis”. In
proceedings of COSADE 2011, 2011.
[Hut'12] M. Hutter, M. Kirschbaum, T. Plos, J.-M. Schmidt, S. Mangard: “Exploiting
the Difference of Side-Channel Leakages”. In proceedings of COSADE 2012,
LNCS 7275, pp. 1-16, Springer-Verlag, 2012.
[Hutt'93] D.P. Huttenlocher, G.A. Klanderman, W.J. Rucklidge: “Comparing images
using the Hausdorff distance”. IEEE Transactions on Pattern Analysis and Machine
Intelligence, Vol. 15-9, pp. 850-863, 1993.
[IntIdp'13] IntelPR: “Krzanich Announces New Lower-Power Product Family”. Intel
Developer Forum IPD2013, San Francisco, 10/09/2013. https://intel-
newsroom.jive-mobile.com:443/#jive-document?content=%2Fapi%2Fcore%2
Fv2%2Fposts%2F6662 [Último acceso: 12/09/2013].
Bibliografía
203
[Ito'02] K. Itoh, M. Takenaka, and N. Torii: “DPA countermeasure based on the
masking method”. In ICIS2001, LCNS 2288, pp. 440-456, Springer-Verlag,
2002.
[Jaf'06] J. Jaffe: “More Differential Power Analysis: Selected DPA Attacks”. In
ECRYPT 06, 2006.
[Jaf'11] J. Jaffe, P. Rohatgi: “Efficient Side-Channel Testing for Public Key Algorithm:
RSA Case Study”. In NIST Non-Invasive Attack Testing Workshop, 2011.
[Joh'99] Fred Johnson: “Simple “Homemade” Sensors Solve Tough EMI Problems”.
Electronic Design, pp. 109-114, 1999.
[Joy'05] M. Joye, P. Paillier, B. Schoenmarkers: “On Second-Order Differential Power
Analysis”. In proceedings of CHES 2005, LNCS 3659, pp. 293-308, Springer-
Verlag, 2005.
[Kai'10] G. Kaiser: “A Friendly Guide to Wavelets”. Springer, Birkhauser, 2010. ISBN:
978-0-8176-8110-4.
[Kam'11] K. Gupta, S. Silakari: “ECC over RSA for Asymmetric Encryption: A Review”.
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 3, No. 2, 2011.
[Kei'04] KEIL: “Ulink Debug Adapter” http://www.keil.com/ ulink1/ [Último acceso:
08/07/2013].
[Kei'08] KEIL: “µVision IDE”. http://www.keil.com/uvision/ [Último acceso:
08/07/2013].
[Kel'98] J. Kelsey, B. Schneier, D. Wagner, C. Hall: “Side Channel Cryptanalysis of
Product Ciphers”. In proceedings of ESORICS 98, LNCS 1485, pp. 97-110, 1998.
[Ken'12] G. Kenworthy, P. Rohatgi: “Mobile Device Security: The case for side channel
resistance”. In proceedings of MoST2012, 2012.
[Koc'96] P. Kocher: “Timing Attacks on Implementations of Diffie-Hellman”. In
proceedings of CRYPTO 1996, LNCS 1109, pp. 104-113, 1996.
[Koc'99] P. Kocher, J. Jaffe, B. Jun: “Differential Power Analysis”. In proceedings of
CRYPTO 1999, LNCS 1666, pp. 388-397, Springer-Verlag, 1999.
[Koc'04] P. Kocher, R. Lee, G. McGraw, A. Raghunathan, S. Ravi: “Security as a New
Dimension in Embedded System Design”. In DAC 2004, 2004.
Bibliografía
204
[Koe'05] F. Koeune, F.–X. Standaert: “A Tutorial on Physical Security and Side-Channel
Attacks”. In FOSAD 2004/2005, LNCS 3655, pp. 78-108, Springer-Verlag,
2005.
[Köp'07] B. Köpf, D. Basin: “An Information-Theoretic Model for Adaptive Side-
Channel Attacks”. In proceedings of CCS’07, 2007.
[Kuh'02] M.G. Kuhn: “Optical Time-domain Eavesdropping Risks of CRT Displays”. In
proceedings of the 2002 IEEE Symposium on Security and Privacy, pp. 3–18, 2002.
[LanMFA'10] Langer EMV-Technik Gmbh: “Near Field Probe set MFA 01”.
http://www.langer-emv.de/en/products/disturbance-emission/near-field-
probes/mfa-01/ [Último acceso: 23/04/2013].
[LanPA'08] Langer EMV-Technik Gmbh: “Preamplifier PA”. http://www.langer-
emv.de/fileadmin/website/dokumente/produkt_ details/PA-0508pe.pdf
[Último acceso: 23/04/2013].
[Le'06] T.-H. Le, J. Clédière, C. Canovas, B. Robisson, C. Servière, J.-L. Lacoume: “A
proposition for Correlation Power Analysis enhancement”. In proceedings of
CHES 2006, LNCS 4249, pp. 174-186, Springer-Verlag, 2006.
[Le’07] T.-H. Le, J. Clédière, C. Servière, and J.-L. Lacoume: “Noise Reduction in Side
Channel Attack Using Fourth-Order Cumulant”. In proceedings of TIFS 2007,
vol. 2, no. 4, pp. 710–720, 2007.
[Le'08] T.-H. Le, C. Canovas, J. Clédière: “An overview of Side Channel Analysis
Attacks”. In proceedings of ASIACCS 2008, 2008.
[Lev'04] B.N. Levine, M.K. Reiter, C. Wang, M. Wright: “Timing Attacks in Low-
Latency Mix Systems”. In proceedings of FC 2004, LNCS 3110, pp.251-265, 2004.
[Li'10] H. Li, K. Wu, F. Yu: “Enhanced correlation power analysis attack against
trusted systems”. Security and Communication Networks 2011, 4:3-10, 2011.
[Lou'02] J. Loughry, D. Umphress: “Information Leakage from Optical Emanations”.
ACM Transactions on Information and System Security, Vol. 5, pp. 262-289, 2002.
[Lum'13] R. Lumbiarres-López, M. López-García, E. F. Cantó-Navarro: “Ataques por
canal lateral sobre el algoritmo de encriptación AES implementado en
MicroBlaze”. JCRA'2013, 2013.
Bibliografía
205
[Mae'00] R. D. Maesschalck, D. Jouan-Rimbaud, D.L. Massart: “The Mahalanobis
distance Tutorial”. Chemometrics and Intelligent Laboratory Systems, Vol. 50,
Issue 1, pp. 1-18, 2000.
[Mah'36] P.C. Mahalanobis: “On the generalized distance in statistics”. In proceedings of the
National Institute of Science of India, 12, pp. 49–55, 1936.
[Man'03] S. Mangard: “A Simple Power-Analysis (SPA) Attack on Implementations of
the AES Key Expansion”. In proceedings of ICISC 2002, LNCS 2587, pp. 343–
358, 2003.
[Man'05a] S. Mangard, N. Pramstaller, E. Oswald: “Successfully Attacking Masked AES
Hardware Implementations”. In proceedings of CHES 2005, LNCS 3659, pp.
157–171, 2005.
[Man'05b] S. Mangard, T. Popp, B.M. Gammel: “Side-Channel Leakage of Masked
CMOS Gates”. In proceedings of Topics in Cryptology – CT – RSA 2005, LNCS
3376, pp. 351-365, 2005.
[Man'06] S. Mangard, K. Schramm: “Pinpointing the Side-Channel Leakage of Masked
AES Hardware Implementations”. In proceedings of CHES 2006, LNCS 4249,
pp. 76-90, Springer-Verlag, 2006.
[Man'07] S. Mangard, E. Oswald, T. Popp: “Power Analysis Attacks – Revealing the
Secrets of Smart Cards”. Springer Science + Business Media, 2007. ISBN-13: 978-0-
387-30857-9.
[Mat'10] E. Mateos, C.H. Gebotys: “A New Correlation Frequency Analysis of the Side
Channel”. In proceedings of WESS’10, 2010.
[Math'13] L. Mather, E. Oswald, J. Bandenburg, M. Wójcik: “A Comparison of Statistical
Techniques for Detecting Side-Channel Information Leakage in Cryptographic
Devices”. Cryptology ePrint archive, report: 2013/298, 2013. http://eprint.iacr.org
/2013/298.pdf [Último acceso: 12/09/2013].
[MathFFT'10] The MathWorks, Inc: “FFT Discrete Fourier transform”. Matlab 2010a Help,
2010.
[MathGui'10] The MathWorks, Inc: “Graphical User Interfaces in MATLAB”
http://www.mathworks.es/discovery/matlab-gui.html [Último acceso:
03/05/2013].
Bibliografía
206
[MathIns'10] The MathWorks, Inc: “Instrument Control Toolbox” http://mathworks.es
/products/instrument/ [Último acceso: 03/05/2013].
[MathMat'10] The MathWorks, Inc: “MatLab R2010” http://www.mathworks.es
/products/matlab/ [Último acceso: 07/05/2013].
[MathWav'10] The MathWorks, Inc: “Wavelet Toolbox” http://www.mathworks.es
/products/wavelet/ [Último acceso: 10/07/2013].
[MaxDSM'13] Maxim: “DeepCover Secure Microcontroller Max32590” http://www.
maximintegrated.com/datasheet /index.mvp/id/ 7538.
[May'00] R. Mayer-Sommer: “Smartly Analysing the Simplicity and the Power of Simple
Power Analysis on Smartcards”. In proceedings of CHES 2000, LNCS 1965, pp.
78-92, Springer-Verlag, 2000.
[Mes'99] T.S. Messerges, E.A. Dabbish, R.H. Sloan: “Investigation of Power Analysis
Attacks on Smartcards”. In Usenix Workshop on Smartcard Technology, 1999.
[Mes'00a] T.S. Messerges: “Using Second-Order Power Analysis to Attack DPA
Resistant Software”. In proceedings of CHES 2000, LNCS 1965, pp. 238-251,
Springer-Verlag, 2000.
[Mes'00b] T.S. Messerges: “Securing the AES Finalists against Power Analysis Attacks”.
In proceedings of Fast Software Encryption Workshop 2000, Springer-Verlag, 2000.
[Mes'01] Thomas S. Messerges: “Securing the Rijndael finalists against Power Analysis
Attacks”. In proceedings of Fast Software Encryption Workshop, LNCS 1978, pp.
150–164, Springer-Verlag, 2001.
[Mes'02] T.S. Messerges, E.A. Dabbish, R.H. Sloan: “Examining Smart-Card Security
under the Threat of Power Analysis Attacks”. IEEE Transactions on Computers,
Vol. 51, N5, pp. 541-552, 2002.
[Mey'10] O. Meynard, S. Guilley, J.-L. Danger, L. Sauvage: “Far Correlation-based EMA
with a Precharacterized Leakage Model”. In EDDA 2010, 2010.
[Mey'11] O. Meynard, D. Réal, S. Guilley, F. Flament, J.-L. Danger, F. Valette:
“Characterization of the Electromagnetic Side Channel in Frequency Domain”.
Information Security and Cryptology, LNCS 6584, pp. 471-486, Springer-Verlag,
2011.
[Mic'04] S. Micali, L. Reyzin: “Physically Observable Cryptography”. In proceedings of
TCC 2004, LNCS 2951, pp. 278-296, 2004.
Bibliografía
207
[Mis'10] M. Misiti, Y. Misiti, G. Oppenheim, J.-M. Poggi: “Wavelet Toolbox 4; User’s
Guide” The MathWorks, Inc., 2010.
[Mor'10] A. Moradi, O. Mischke, T. Eisenbarth: “Correlation-Enhanced Power Analysis
Collision Attack”. In proceedings of CHES 2010, LNCS 6225, pp. 125-139,
Springer-Verlag, 2010.
[Mul'05] E.D. Mulder, P. Buysschaert, S. B. Ors, P. Delmotte, B. Preneel, G.
Vandenbosch, I. Verbauwhede: “Electromagnetic Analysis Attack on an
FPGA Implementation of an Elliptic Curve Cryptosystem”. In proceedings of
EUROCON 2005, Vol. 2, pp. 1879-1882, 2005.
[NILab'03] National Instruments: “LabVIEW User Manual”. Part Number 320999E-01,
2003. www.ni.com/pdf/manuals/320999e.pdf [Último acceso: 07/05/2012].
[NILab'07] National Instruments: “Labview 8.5” http://www.ni.com/labview/esa/
[Último acceso: 07/05/2012].
[NILab'09a] National Instruments: “Introducción a Labview – Curso Práctico 6 horas”.
http://www.ni.com/academic/labview_training/esa/ [Último acceso:
07/05/2012].
[NILab'09b] National Instruments: “LabVIEW Help for step-by-step instructions”.
www.ni.com/pdf/manuals/323563b.pdf [Último acceso: 07/05/2012].
[NILab'09c] National Instruments: “Tektronix DPO MSO 2000 4000 Series Oscilloscope
Certified LabVIEW Plug and Play (project-style) Instrument Driver”.
http://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=6
E23DB10D9F C2B05E04400144FB7D21D [Último acceso: 07/05/2012]
[Nist'99] National Institute of Standards and Technology: “FIPS 46-3 Data Encryption
Standard (DES)”, 1999. http://csrc.nist.gov/publications/fips/fips46-3/fips46
-3.pdf [Último acceso: 21/01/2013].
[Nist'01] National Institute of Standards and Technology: “FIPS 197 Advanced
Encryption Standard (AES)”, 2001. http://csrc.nist.gov/publications/fips
/fips197/fips-197.pdf [Último acceso: 21/01/2013].
[Nist'11] National Institute of Standards and Technology: “Non-Invasive Attack Testing
Workshop”. http://csrc.nist.gov/news_events/non-invasive-attack-testing-
workshop, 2011. [Último acceso: 12/09/2013].
Bibliografía
208
[Nist'13] National Institute of Standards and Technology: “Advanced Encryption
Standard Algorithm Validation List”, 2013. http://csrc.nist.gov/groups/STM
/cavp/documents/aes/aesval.html [Último acceso: 06/03/2013].
[NSA'03] NSA: “NSA Tempest Documents”, 2003. http://www.cryptome.org/nsa-
tempest.htm. [Último acceso: 06/03/2013]
[NXP'08] NXP Semiconductors: “UM10114: LPC21xx and LPC22xx User manual”.
Rev. 03 - 2 April 2008. www.nxp.com/documents/user_manual
/UM10114.pdf [Último acceso: 07/05/2012].
[NXP'10] NXP Semiconductors: “UM10360: LPC17xx User manual User manual”. Rev.
2 - 19 August 2010. www.nxp.com/documents/user_manual /UM10360.pdf
[Último acceso: 07/05/2012].
[NXP'11] NXP Semiconductors: “LPCXpresso” http://www.nxp.com/techzones/
microcontrollers-techzone/tools-ecosystem/lpcxpresso.html [Último acceso:
05/07/2013].
[Ors'04] S.B. Örs, F. Gürkaynak, E. Oswald, B. Preneel: “Power-Analysis Attack on an
ASIC AES implementation”. In proceedings of ITCC 04, Vol. 2, pp. 546-552,
2004.
[Ost'03] T. Ostermann, B. Deutschmann: “Characterization of the EME of Integrated
Circuits with the Help of the IEC Standard 61967”. In proceedings of ETW'03,
2003.
[Osv'06] D.A. Osvik, A. Shamir, E. Tromer: “Cache Attacks and Countermeasures: The
Case of AES”. Topics in Cryptology—CTRSA 2006, LNCS 3860, pp. 1–20,
Springer, 2006.
[Osw'07] E. Oswald, S. Mangard: “Template Attacks on Masking—Resistance Is Futile”.
In proceedings of CT-RSA 2007, LNCS 4377, pp. 243–256, 2007.
[Par'13] P. Park: “Security Attacks vs. Countermeasures”. Samsung Electronics Co.,
Ltd. Technical Paper. http://techonline.com/electrical-engineers/education-
training/tech-papers/4423661/Security-Attacks-vs-Countermeasures [Último
acceso: 04/11/13].
[Pee'07] E. Peeters, F.-X. Standaert, J.-J. Quisquater: “Power and Electromagnetic
Analysis: Improved Models, Consequences and Comparisons”. In Integration, the
VLSI Journal, Vol. 40, pp. 52-60, 2007.
Bibliografía
209
[Pol'01] R. Polikar: “The Engineer’s Ultimate Guide to Wavelet Analysis – The Wavelet
Tutorial”. NDSL Scout Report for Math, Engineering and Technology, 2001.
http://Users.rowan.edu/~polikar/Wavelets/ WTutorial.html [Último acceso:
23/07/13].
[Pom'10] Pomona Electronics: “Model 2249 Cable Assembly with BNC Male on Each
End” http://www.pomonaelectronics.com/pdf/d2249_100.pdf.
[Pop'07] T. Popp, E. Oswald, S. Mangard: “Power Analysis Attacks and
Countermeasures”. IEEE Design and Test of Computers, IEEE, 2007.
[Pra'04] N. Pramstaller, F.K. Gürkaynak, S. Haene, H. Kaeslin, N. Felber, W. Fichtner:
“Towards an AES Cryto-chip Resistant to Differential Power Analysis”. In
proceedings of ESSCIRC 2004, pp. 307-310, 2004.
[Qui'01] J.-J. Quisquater, D. Samyde: “Electromagnetic analysis (EMA): Measures and
Countermeasures for Smart Cards”. In E-smart 2001, LNCS 2140, pp. 200-210,
Springer-Verlag, 2001.
[Qui'02a] J.-J. Quisquater, D. Samyde: “Automatic Code Recognition for Smartcards
using Kohonen Neural Network” In proceedings of CARDIS 02, Vol. 5, Springer-
Verlag, 2002.
[Qui'02b] J.-J. Quisquater, F. Koeune: “State-of-the-Art regarding Side Channel Attacks”.
http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/doc/1047_Side_Chan
nel _report.pdf [Último acceso: 21/01/2013].
[R'10] The R Project for Statistical Computing: “R”. http://www.r-project.org/
[Último acceso: 07/05/2013].
[Rab'03] J.M. Rabaey, Chandrakasan, B. Nikolic: “Digital Integrated Circuits – A Design
Perspective”. Electronic and VLSI Series, Prentice Hall, 2ª Ed., 2003.
[Rau’03] C. Rauscher: “Fundamentos del Análisis de Espectro”. Rohde&Schwarz, 2003.
ISBN: 3939837032.
[Rav'04] S. Ravi, A. Raghunathan, P. Kocher, S. Hattangady: “Security in Embedded
Systems: Design Challenges”. ACM Transactions on Embedded Computing Systems,
Vol. 3-3, pp. 461-491, 2004.
[Rea'09] D. Réal, F. Valette, M. Drissi: “Enhancing Correlation Electromagnetic Attack
Using Planar Near-Field Cartography”. In Proceedings of the DATE 09, pp. 628-
633, 2009.
Bibliografía
210
[Rec'04] C. Rechberger, E. Oswald: “Practical Template Attacks”. In proceedings of WISA
2004, LNCS 3325, 2004.
[Rid'99] F. P. Ridao, J. M. Carrasco, E. Galván, L. G. Franquelo: “Implementation of
low cost current probes for conducted EMI interference measure in Power
Systems”. In proceedings of EPE’99, 1999.
[RS'04] Rohde&Schwarz: “ESCI EMI Test Receiver”. http://www.rohde-
schwarz.com/en/product/esci-productstartpage_63493 -11628.html [Último
acceso: 08/07/2013].
[RSA'97] RSA Data Security Inc: “Government Encryption Standard Takes a Fall”. RSA
Data Press Relace, 1997.
[Rub'10] J. Rubio, J. E. Posada, J. A. Garcia-Souto: “Digital Signal Processing for the
Detection and Location of Acoustic and Electric Signals from Partial
Discharges”. In proceedings of WCE 2010, Vol II, ISBN: 978-988-18210-7-2,
2010.
[Sad'06] S. Sadasivan: “An Introduction to the ARM Cortex-M3 Processor”.
http://www.arm.com/files/pdf/IntroToCortex-M3.pdf [Último acceso:
01/08/2013].
[Sau'10] L. Sauvage, O. Meynard, S. Guilley, J-L. Danger: “ElectroMagnetic Attacks
Case Studies on Non-Protected and Protected Cryptographic Hardware
Accelerators”. In 20109 IEEE EMC Society Symposium, 2010.
[Scc'09] “The Side Channel Cryptanalysis Lounge – What is already Known?”.
Disponible en: http://www.emsec.rub.de/research/projects/sclounge/.
[Último acceso: 21/01/2013].
[Sch'10] O. Schimmel, P. Duplys, E. Böhl, J. Hayek, W.Rosenstiel: “Correlation Power
Analysis in Frequency Domain”. In COSADE 2010, 2010.
[Schi'05] W. Schindler, K. Lemke, C. Paar: “A Stochastic Model for Differential Side-
Channel Cryptanalysis”. In proceedings of CHES 2005, LNCS 3659, pp. 30-46,
Springer-Verlag, 2005.
[Schr'03] K. Schramm, T. Wollinger, C. Paar: “A New Class of Collision-Attack and its
Application to DES”. In proceedings of FSE 2003, LNCS 2887, pp. 206-222,
Springer-Verlag, 2003.
Bibliografía
211
[Schr'04] K. Schramm, G. Leander, P. Felke, C. Paar: “A Collision-Attack on AES –
Combining Side Channel and Differential Attack”. In proceedings of CHES 2004,
LNCS 3156, pp. 163-175, Springer-Verlag, 2004.
[Schu'04] A. Schuster, E. Owald: “Differential Power Analysis of an AES
Implementation”. SCA-Lab Technical Report Series, TR 2004/06/25, 2004.
[Sha'04] A. Shamir, E. Tramer: “Acoustic cryptanalysis on nosy people and noisy
machines”. Eurocrypt 2004 rump session, 2004.
[Ska'11] S. Skalicky, B. Cui: “AES Side Channel Attacks”. Rochester Department of
Computer Science, Institute of Technology, 2011. http://www.cs.rit.edu/~hpb
/Lectures/20112 /S_T/Src/36/AES_sidechannel_IEEE2.pdf [Último acceso:
27/02/13].
[SL'06] Silicon Laboratories Inc.: “USB Debugger Adapter”
http://www.silabs.com/products/mcu/Pages/USBDebug.aspx [Último
acceso: 05/07/2012].
[SL'07] Silicon Laboratories Inc.: Advanced Encryption Standard (AN324SW) v1.0,
2007. http://ww.silabs.com/Support%20Documents /Software/an324sw.zip
[Último acceso: 17/06/2013].
[SL'08] Silicon Laboratories Inc.: “C8051F300/1/2/3/4/5 - Mixed Signal ISP Flash
MCU Family”. Rev. 2.9 12/08, 2008. www.silabs.com/Support%20Documents
/TechnicalDocs/C8051F30x.pdf [Último acceso: 07/05/2012].
[SL'09] Silicon Laboratories Inc.: “Silicon Labs IDE” http://www.silabs.com
/products/mcu/pages/siliconlaboratorieside.aspx [Último acceso:
05/07/2012].
[Smi'98] D.C. Smith: “Signal and Noise Measurement Techniques Using Magnetic Field
Probes”. IEEE, 1998. [Último acceso: 27/02/13].
[Smi'99] D.C. Smith: “Using a Paper Clip to Measure Signals and Noise”.
www.emcesd.com/tt080699.htm. [Último acceso: 27/02/13].
[Smi'00] D.C. Smith: “An easy to build shielded magnetic loop probe”.
http://www.emcesd.com/tt120100.htm. [Último acceso: 27/02/13].
[Sou'10] Y. Souissi, J.-L. Danger, S. Mekki, S. Guilley, M. Nassar: “Techniques for
Electromagnetic Attacks Enhancement”. In proceedings of DTIS 2010, pp. 1-6,
2010.
Bibliografía
212
[ST'01] ST Microelectronics: “M74HC14 HEX SCHMITT INVERTER”.
http://www.st.com/web/catalog/sense_power_FM140/SC1799/PF69690
[Último acceso: 17/05/2013].
[ST'11] ST Microelectronics: “RM0038 Reference manual: STM32L151xx and
STM32L152xx advanced ARM-based 32-bit MCUs”. Doc ID 15965 Rev. 4 -
February 2011. www.st.com/st-web-ui/static/active/cn/resource/technical
/document/reference_manual/CD00240193.pdf [Último acceso:
07/05/2012].
[Sta'04a] F.–X. Standaert, S.B. Ors, B. Preneel: “Power analysis attacks against FPGA
implementations of the DES”. In proceedings of FPL 2004, LNCS 3203, pp. 84-
94, Springer-Verlag, 2004.
[Sta'04b] F.–X. Standaert, S.B. Ors, B. Preneel: “Power Analysis of an FPGA –
Implementations of Rijndael: Is Pipelining a DPA Countermeasure?”. In
proceedings of CHES 2004, LNCS 3156, pp. 30-44, Springer-Verlag, 2004.
[Sta'06] F.–X. Standaert, E. Peeters, F. Macé, J.-J. Quisquater: “Updates on the Security
of FPGAs Against Power Analysis Attacks”. In proceedings of ARC 2006, LNCS
3985, pp. 335-346, Springer-Verlag, 2006.
[Sta'09a] F.–X. Standaert: “Introduction to Side-Channel Attacks”. In Secure Integrated
Circuits and Systems, pp. 27–44, Springer, 2009.
[Sta'09b] F.-X. Standaert, T.G. Malkin, M. Yung: “A Unified Framework for the
Analysis of Side-Channel Key Recovery Attacks”. International Association of
Cryptographic Research, Cryptology ePrint Archive, Report 2006/139, 2006.
[Sze'07] G. J. Székely, M. L. Rizzo, N. K. Bakirov: “Measuring and testing dependence
by correlation of distances”. Annals of Statistics, Vol. 35-6, 2007.
[Tek'03] Tektronix: “Manual del usuario de los osciloscopios de las series DPO4000 y
MSO4000”. http://www2.tek.com/cmswpt/madownload.lotr?ct=MA&cs=
mur&ci=16601&lc=ES.
[Tek'09] Tektronix: “Tekvisa connectivity software” http://www.tek.com/
oscilloscope/tds7054-software/tekvisa-connectivity-software-v400 [Último
acceso: 07/05/13].
Bibliografía
213
[Tiu'05] C.C. Tiu: “A new Frequency-Based Channel Attack for Embedded Systems”.
Master Thesis, Department of Electrical and Computer Engineering,
University of Waterloo, Ontario, Canada, 2005.
[Tor'98] C. Torrence, G. P. Compo: “A Practical Guide to Wavelet Analysis”. Bulletin of
the American Meteorological Society, Vol. 79, pp. 61-78, 1998.
[UNE'07] UNE: “UNE-EN 61000-4-3 Ensayos de inmunidad a los campos
electromagnéticos, radiados y de radiofrecuencia” http://www.aenor.es/aenor
/normas/normas/fichanorma.asp?tipo=N&codigo=N0046990&pdf= [Último
acceso: 07/05/13].
[Vua'09] M. Vuagnoux, S. Pasini: “Compromising Electromagnetic Emanations of
Wired and Wireless Keyboards”. In proceedings of USENIX Security Symposium
2009, 2009.
[Wad'04] J. Waddle, D. Wagner: “Towards Efficient Second-Order Power Analysis”. In
proceedings of CHES 2004, LNCS 3156, pp. 1-15, Springer-Verlag, 2004.
[WikAES'13] Enciclopedia libre Wikipedia: “Advanced Encryption Standard”.
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard [Último acceso:
20/02/13].
[Ye'12] X. Ye, T. Eisenbarth: “Wide Collisions In Practice”. In Applied Cryptography and
Network Security, LNCS 7341, pp. 329-343, Springer-Verlag, 2012.
[Yiu'10] J. Yiu: “The Definitive Guide to the ARM Cortex-M3 Second Edition”. Elsevier
Inc., 2010. ISBN: 978-1-85617-963-8.
[Yoo'04] H. Yoo, C. Kim, J. Ha, S. Moon, I. Park: “Side Channel Cryptanalysis on
SEED”. In proceedings of WISA 2004, LNCS 3325, pp. 411-424, Springer-Verlag,
2004.
[Zho'05] Y. Zhou, D. Feng: “Side-Channel Attacks: Ten Years after its publication and
the impacts on Cryptographic Module Security Testing”. Cryptology ePrint
Archive, Report 2005/388. 2005.