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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ECC_Attacks — Ataques conocidos contra la criptografía de curva elíptica | Kitploit
Herramientas/GitHubGitHub/elikaski/ecc_attacks
Análisis de VulnerabilidadesCriptografíaAprendizaje y Educación
GitHubelikaski/ecc_attacks

ECC_Attacks

Ataques conocidos contra la criptografía de curva elíptica

Ver Repositorio
6134314hace 1 añoRevisado por Kitploit

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

Ataques conocidos a la criptografía de curvas elípticas

  • Introducción
  • Introducción a las curvas elípticas
  • Curvas elípticas en el contexto de la criptografía
  • Ataques ECC

Ataques ECDH

  • El orden del generador es demasiado pequeño
  • El orden del generador es un número liso
  • El orden del generador es casi un número liso y la clave privada es pequeña
  • No verificar que un punto esté en la curva
  • La curva es singular
  • La curva es supersingular
  • La curva es anómala

Ataques ECDSA

  • No aplicar hash al mensaje antes de firmarlo
  • Reutilizar el mismo valor de k en diferentes firmas
  • Generar valores de k de forma insegura
  • No verificar que el generador sea válido

Conclusión

  • Resumen de ataques ECDH
  • Resumen de ataques ECDSA
  • Protección contra estos ataques
  • Referencias

Introducción

En los últimos años, el enfoque de la criptografía de curvas elípticas se ha vuelto popular debido a su alta eficiencia y fuerte seguridad. El propósito de este artículo es presentar este tema de una manera relativamente más clara de lo que existe hoy en internet.

En este artículo presentaré qué son las curvas elípticas, las operaciones básicas que se pueden realizar sobre ellas y cómo se pueden utilizar en el contexto criptográfico. La mayor parte de este artículo consiste en ejemplos de ataques conocidos a implementaciones incorrectas o usos indebidos de las mismas. A lo largo del artículo intento separar la explicación en una parte intuitiva y de alto nivel, y una parte matemática que entra en más detalle. Se invita al lector a centrarse en la parte que le interese en cada lugar y a omitir las partes que le interesen menos.

¡Feliz lectura!

Introducción a las curvas elípticas

Una curva elíptica

En general, una curva elíptica es un tipo de línea curva. Un ejemplo de ello es la parábola, cuya ecuación es de la forma $𝑦 = 𝑎𝑥^2 + 𝑏𝑥 + 𝑐$ y se ve así:

Parábola

En el contexto de la criptografía, es habitual usar curvas elípticas cuya ecuación es de la forma

$𝑦^2 = 𝑥^3 + 𝑎𝑥 + 𝑏$

Por ejemplo, una curva elíptica correspondiente a la ecuación $𝑦^2 = 𝑥^3 − 3𝑥 + 3$ se ve así:

Curva elíptica simple

La ecuación de la curva define la relación entre la coordenada 𝑥 de un punto de la curva y su coordenada 𝑦. En un contexto criptográfico, restringimos 𝑥, 𝑦, 𝑎, 𝑏 a números enteros y restringimos los cálculos al módulo de algún número primo grande. Así, la ecuación de la curva elíptica es:

$𝑦^2 = 𝑥^3 + 𝑎𝑥 + 𝑏\ \ \ \ (mod\ 𝑝)$.

Esto significa que tenemos un número finito de puntos en la curva. En lenguaje matemático, se dice que la curva está definida sobre un cuerpo finito de orden 𝑝. Como resultado, ahora no necesariamente toda coordenada 𝑥 tendrá un punto correspondiente en la curva, porque puede que la coordenada 𝑦 correspondiente no sea un número entero.

Puntos en la curva

El conjunto de puntos de la curva consiste en pares de enteros (𝑥, 𝑦) que satisfacen la ecuación de la curva. Además de estos puntos, se define otro punto especial llamado "Infinito", denotado por 𝒪. En lenguaje matemático, este punto es el elemento neutro del conjunto de puntos de la curva respecto a la operación de suma, que definiremos en la siguiente sección. El número de puntos de la curva (incluido el punto 𝒪) se denomina "orden de la curva".

Otra observación es que las curvas elípticas son simétricas respecto al eje X. Esto significa que si el punto 𝑃 = (𝑥, 𝑦) está en la curva, entonces el punto −𝑃 = (𝑥, −𝑦) también está en la curva. De hecho, se considera que estos puntos son "inversos" entre sí (de ahí la notación −𝑃 para el segundo punto), y el resultado de la operación de suma entre ellos se define como el elemento neutro 𝒪.

Un teorema llamado teorema de Hasse proporciona una estimación de #𝐸, el orden de la curva, y es del orden de magnitud de Θ(𝑝). Más precisamente:

$𝑝 + 1 − 2\sqrt𝑝 ≤ 𝐸 ≤ 𝑝 + 1 + 2\sqrt𝑝$

Suma de puntos

Dados dos puntos de la curva, es posible definir una operación de suma entre ellos, cuyo resultado es un tercer punto que también está en la curva. Para encontrar este punto geométricamente, trazamos una línea entre los dos puntos dados y la continuamos hasta que interseque la curva en un tercer punto. Este punto se refleja con respecto al eje 𝑋, y el punto resultante se define como el resultado de la suma.

Aquí hay un diagrama que muestra cómo, dados los puntos 𝑃 y 𝑄, se puede encontrar el punto 𝑃 ​​+ 𝑄:

Suma de puntos

Una pregunta que puede surgir de esta descripción es: ¿qué ocurre si la línea trazada entre los dos puntos no vuelve a intersecar la curva? En este caso se dice que la línea interseca la curva en el "infinito", y el resultado de la suma es el punto 𝒪. Nótese que este caso ocurre si la línea trazada es vertical, es decir, estamos intentando sumar un punto 𝑃 con su punto inverso, −𝑃:

Suma de puntos en el infinito

De esto se derivan dos identidades básicas. Para todo punto 𝑃 se cumple que:

𝑃 + 𝒪 = 𝑃
𝑃 + (−𝑃) = 𝒪

Otra pregunta que surge de la descripción geométrica es: ¿cómo sumamos un punto consigo mismo? Vimos que para sumar dos puntos distintos 𝑃 y 𝑄, trazamos una línea entre ellos y observamos el punto de intersección de su prolongación con la curva. Intuitivamente, dejaremos 𝑃 constante y observaremos la línea que se crea a medida que movemos 𝑄 "cada vez más cerca" de 𝑃, hasta que 𝑄 se fusione con 𝑃. Lo que obtendremos es una línea cada vez más "tangente" a la curva en el punto 𝑃, y esa es exactamente la línea que consideraremos cuando queramos sumar 𝑃 consigo mismo:

Multiplicación de puntos

Para sumar un punto 𝑃 consigo mismo, trazamos una tangente a la curva en el punto 𝑃 y la continuamos hasta que interseque la curva en un segundo punto. Este punto se refleja con respecto al eje 𝑋, y el punto resultante se define como el resultado de la suma. Es habitual denotar el resultado de la suma como 𝑃 + 𝑃 = 2𝑃. Nuevamente, si la tangente no interseca la curva en un segundo punto, se dice que interseca la curva en el "infinito", y el resultado de la suma en este caso es el punto 𝒪.

Estas descripciones geométricas visuales ilustran muy bien y nos ayudan a entender cómo funciona la suma de puntos. Pero, ¿cómo la calculamos realmente? ¡Ecuaciones matemáticas, por supuesto!

Descargar herramienta