Ciberseguridad Featured Interactivo

RSA en C

Implementación matemática de RSA en C usando GMP.

Publicado el 18 de abril de 2026

Tecnologías utilizadas

  • C
  • GMP
  • Criptografía

Laboratorio visual

Prueba criptografica

RSA / GMP

m^e mod n -> c -> c^d mod n
01

Primos base

p = 61 / q = 53

02

Modulo publico

n = 3233

03

Clave publica

e = 17

04

Clave privada

d = 2753

Mensaje 65
Cifrado 2790
Descifrado 65
Validacion 65 == pow(pow(65, e, n), d, n)
Implementación matemática de RSA en C usando GMP.

Contexto y problema

Implementar criptografía asimétrica desde fundamentos matemáticos en C, controlando precisión de enteros grandes y seguridad en memoria.

Enfoque y solución

Se desarrolló un módulo RSA en C usando GMP para generación de claves, cifrado y descifrado con exponenciación modular eficiente.

Laboratorio interactivo

Simulador RSA

Demostración operativa de generación de claves, cifrado y descifrado con enteros pequeños para visualizar el flujo matemático completo.

Usa primos pequeños para seguir el flujo sin perder legibilidad.
La separación entre p y q evita claves triviales en esta demostración.
Debe ser coprimo con phi(n) para que exista inverso modular.
El mensaje debe quedar dentro del espacio modular: `0 ≤ m < n`.
n = p × q3233
phi(n)3120
Clave pública17
Clave privada2753

Generación de claves

A partir de `p` y `q` se calcula `n`, luego `phi(n)`, y finalmente el inverso modular de `e` para obtener `d`.

d ≡ e^-1 mod phi(n) = 2753

Cifrado

El mensaje se cifra con la clave pública usando exponenciación modular rápida.

c = m^e mod n = 2790

Descifrado

La clave privada recupera el mensaje original dentro del mismo dominio modular.

m = c^d mod n = 65

Validación

La demostración confirma que el mensaje original y el descifrado coinciden bajo la configuración actual.

65 = 65

Esta simulación usa números acotados para fines pedagógicos. El proyecto real en C se apoya en GMP para trabajar con enteros grandes.

El algoritmo

La demostración interactiva del flujo RSA aparece antes de este contenido para separar la evidencia operativa del detalle narrativo.

En el caso de estudio completo, la implementación en C se apoya en GMP para trabajar con enteros grandes, mientras que la simulación visual usa números pequeños para hacer trazable cada paso del algoritmo.

El valor técnico de este proyecto está en conectar la matemática, la implementación y la posibilidad de verificar el comportamiento de cifrado y descifrado en una interfaz controlada.

Resultados y aprendizaje

Se obtuvo una implementación funcional de RSA con pruebas de cifrado/descifrado y una base sólida para demostraciones interactivas.