Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
power_analysis — Prueba de concepto que demuestra un ataque de canal lateral mediante análisis de potencia contra una implementación vulnerable de RSA en Arduino (Atmega328P), con configuración de hardware detallada y metodología de medición. | Kitploit
Herramientas/GitHubGitHub/lord-feistel/power_analysis
Seguridad de Sistemas EmbebidosCriptografíaSeguridad de HardwarePapers e InvestigaciónAprendizaje y Educación
GitHublord-feistel/power_analysis

power_analysis

Prueba de concepto que demuestra un ataque de canal lateral mediante análisis de potencia contra una implementación vulnerable de RSA en Arduino (Atmega328P), con configuración de hardware detallada y metodología de medición.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
32467hace 2 añosRevisado por Kitploit

Ataque de análisis de potencia sobre RSA

Índice

  • Introducción
  • Ataques de análisis de potencia
  • RSA: Una breve introducción
  • Ejemplo de RSA
  • Equipo
  • Medición de potencia: una breve introducción
    • Ley de Ohm
    • Ley de Voltaje de Kirchhoff (LVK)
    • Divisor de voltaje
    • Resistencia shunt
  • Ejemplo de medición de potencia
  • Exponenciación rápida
  • Exponenciación rápida en Arduino (Atmega328P)
  • Resultados
  • Conclusión
  • Referencias

Introducción

Recientemente, observé gente implementando criptografía para Arduino por sí mismos, como se indica en este tema en StackOverflow:

https://stackoverflow.com/questions/39189065/rsa-encryption-decryption-functions-for-arduino

Se pueden encontrar varios por internet, algunos por cierto están en bibliotecas bien conocidas.

Decidí hacer esta pequeña PoC (Prueba de concepto) para mostrar por qué es importante no solo no inventar tu propio algoritmo criptográfico, sino también utilizar una implementación robusta de dichos algoritmos.

Esta PoC realiza un ataque de canal lateral (ataque de análisis de potencia) contra una mala implementación de una rutina auxiliar utilizada en la implementación de RSA (exponenciación rápida).

Un ataque de canal lateral es un método para comprometer un sistema criptográfico explotando la fuga de información indirecta en lugar de atacar directamente el algoritmo o protocolo criptográfico en sí.

Este tipo de fuga puede originarse de diversas fuentes como información de tiempos, consumo de potencia, emisiones electromagnéticas o incluso sonido.

Tales ataques pueden ser muy efectivos para comprometer sistemas criptográficos como RSA sin requerir que el atacante resuelva los problemas matemáticos subyacentes que garantizan la seguridad del esquema criptográfico (Kocher, Jaffe, & Jun, 1999).

Este documento realizará un ataque de análisis de potencia sobre una vulnerabilidad conocida en una implementación del algoritmo RSA en un firmware para Arduino (Atmega328P).

Nota: Lo hice rápido, por favor perdón por los errores ortográficos/gramaticales que eventualmente encontrarás.

Ataques de análisis de potencia

Los ataques de análisis de potencia implican medir el consumo de potencia de un dispositivo durante operaciones criptográficas.

El Análisis Diferencial de Potencia (DPA) implica el análisis estadístico de patrones de consumo de potencia a través de múltiples operaciones criptográficas para extraer secretos, siendo más sofisticado que el Análisis Simple de Potencia (SPA), que correlaciona directamente las fluctuaciones de potencia con operaciones criptográficas específicas para deducir secretos.

El Análisis Diferencial de Potencia (DPA) y el Análisis Simple de Potencia (SPA) pueden usarse para extraer claves privadas analizando patrones en el consumo de potencia durante los cómputos RSA.

Estos ataques pueden revelar la clave privada identificando patrones de uso de potencia distintivos asociados con diferentes bits de la clave (Kocher, Jaffe, & Jun, 1999).

RSA: Una breve introducción

RSA (Rivest-Shamir-Adleman) es un algoritmo de cifrado de clave pública ampliamente utilizado, nombrado en honor a sus inventores: Ron Rivest, Adi Shamir y Leonard Adleman, quienes lo introdujeron en 1977 (Paar & Pelzl, 2010).

Sigue siendo uno de los métodos más seguros para transmitir datos de forma segura a través de internet.

Uno de los fundamentos de la seguridad de RSA reside en la dificultad de factorizar números compuestos grandes en sus factores primos (Menezes, van Oorschot, & Vanstone, 1996).

Este problema, conocido como el problema de factorización, implica encontrar los números primos que multiplicados forman un número grande dado.

El cifrado RSA se basa en la suposición de que este problema de factorización es computacionalmente lo suficientemente difícil como para hacer poco práctico romper el cifrado factorizando el módulo en sus factores primos (Menezes, van Oorschot, & Vanstone, 1996).

Ejemplo de RSA

La Figura 1 ilustra el proceso de cifrado y descifrado RSA utilizando un ejemplo simple.

Ejemplo RSA

Figura 1 - Ejemplo de RSA.

Tenga en cuenta que en este caso, 3 y 33 son públicos. El número 7 en el ejemplo es la clave privada.

La función Phi (N), la función totiente de Euler, calcula todos los números coprimos en el intervalo de 1 a 33.

El valor 33 se obtiene de la multiplicación de P y Q; en este caso, 11 multiplicado por 3.

El resultado de la función Phi se obtiene multiplicando (P - 1) por (Q - 1); en este caso, 10 multiplicado por 2.

La operación e<sup>-1</sup> mod 20 denota la operación de inverso modular (Menezes, van Oorschot, & Vanstone, 1996).

Nota: Si desea profundizar en RSA, lo cual no es necesario para entender este documento. Hay una introducción rápida a estas operaciones básicas de teoría de números dentro de este repositorio en el archivo number_theory.md. La explicación puede mejorar su comprensión de las operaciones RSA.

Equipo

El experimento utilizó un osciloscopio DS1102 (presentado en la Figura 2) fabricado por Rigol.

El manual del osciloscopio se puede encontrar en las referencias (RIGOL Technologies, Inc., 2017).

También se utilizó una fuente de alimentación genérica (presentada en la Figura 3).

osciloscopio

Figura 2 - Osciloscopio utilizado en el experimento.

fuente_de_alimentacion

Figura 3 - Fuente de alimentación utilizada en el experimento.

Medición de potencia: una breve introducción

Ley de Ohm

La Ley de Ohm es un principio fundamental en el campo de la ingeniería eléctrica y la física.

Establece que la corriente que fluye a través de un conductor entre dos puntos es directamente proporcional al voltaje a través de los dos puntos e inversamente proporcional a la resistencia entre ellos (Boylestad, 2015).

La Figura 4 muestra un circuito y la Ley de Ohm.

ley_de_ohm

Figura 4 - Ilustración de la Ley de Ohm.

La Ley de Ohm implica que si aumenta el voltaje a través de un conductor, la corriente también aumentará, siempre que la resistencia permanezca constante (Johnson & Hilburn, 2013). La Figura 5 presenta un ejemplo de aplicación de la Ley de Ohm cuyo objetivo es encontrar la corriente en el circuito.

ejemplo_ohm

Figura 5 - Ejemplo de la Ley de Ohm.

Ley de Kirchhoff y

La Ley de Voltaje de Kirchhoff (LVK) es un principio fundamental en la ingeniería eléctrica y la física (Boylestad, 2015).

Establece que la suma de todas las diferencias de potencial eléctrico (voltajes) alrededor de cualquier red o lazo cerrado es cero (Boylestad, 2015).

La Figura 6 ilustra la Ley de Voltaje de Kirchhoff.

ley_de_kirchhoff

Figura 6 - Ilustración de la Ley de Kirchhoff.

Hay un ejemplo de la aplicación de la Ley de Kirchhoff en la Figura 7 para encontrar la corriente a través de las resistencias R1 y R2.

ejemplo_kirchhoff

Descargar herramienta