Criptografía RSA

La criptografía (la manera en la que mantenemos seguros los mensajes) utiliza matemáticas y números primos en particular.

En esencia, es mucho más fácil multiplicar números primos que calcular qué primos se multiplicaron para formar un número.

Ejemplo: ¿Cuánto es 101 × 131?

Al poco tiempo podemos obtener la respuesta de 13231.

Pero ¿qué pasaría si la pregunta fuera "¿Cuáles son los factores primos de 13231?"

¡Podríamos estar trabajando mucho tiempo en esa pregunta!

Lo mismo se aplica a las computadoras pero los números involucrados son mucho más grandes.

un perrito con un mensaje

RSA

El algoritmo RSA (que lleva el nombre de sus creadores Rivest, Shamir y Adleman) se basa en esa idea.

Es un algoritmo de cifrado de clave pública/clave privada que utiliza números primos como este:

La clave pública codifica fuertemente el mensaje.

Pero sólo la clave privada puede decodificarla fácilmente.

Puedes probarlo en RSA Interactivo

Paso a paso

Sigamos los pasos reales usando algunos números pequeños (pero cuando se usan para comunicaciones seguras, los números tienen cientos de dígitos).

Crear claves

Ya tenemos nuestras claves:

Codificar el mensaje

Nuestro mensaje es realmente simple: hi (hola en inglés)

Decodificar el mensaje

¡Vaya, funciona!

 

 *Unicode es un estándar para convertir caracteres (letras, números, puntuación, etc.) en números. En Unicode a=97, b=98, etc. Podrías usar cualquier sistema que desees, como a=1, b=2, etc.

 

¡Refuerza tu aprendizaje resolviendo los siguientes retos sobre este tema! (Nota: están en inglés).

25398, 25399, 25400, 25401, 25402