Contenido del curso
Conceptos Criptográficos
Criptografía Simétrica
- 9

Cifrado por bloques vs flujo en criptografía
06:17 min - 10

"Funcionamiento del Estándar de Cifrado Avanzado AES"
07:05 min - 11

Cifrado y Descifrado de Archivos con AES en Línea de Comandos
12:36 min - 12

Funciones de Hash y su Importancia en Criptografía
04:35 min - 13

Funciones de Hash y HMAC en Línea de Comandos con OpenSSL
10:40 min
Criptografía Asimétrica
- 14

Aritmética Modular en Criptografía: Fundamentos y Aplicaciones
05:22 min - 15

Intercambio de Llaves en Criptografía Moderna
05:50 min - 16

Criptografía Asimétrica: Algoritmo Diffie-Hellman y su Aplicación
03:53 min - 17

Implementación de Diffie-Hellman en Línea de Comandos
12:42 min - 18

Cómo RSA cifra y firma mensajes
Viendo ahora - 19

Implementación de RSA en Línea de Comandos para Firmado de Documentos
17:39 min - 20

Criptografía de curvas elípticas en la práctica
04:44 min - 21

Firma Digital con Algoritmos de Curvas Elípticas (ECDSA)
05:36 min
Criptografía Moderna
Cómo RSA cifra y firma mensajes
Resumen
El algoritmo RSA es uno de los pilares de la criptografía asimétrica y se usa tanto para encriptar mensajes como para crear firmas digitales. A diferencia de Diffie-Hellman, que solo sirve para intercambiar llaves, RSA cubre confidencialidad e identidad en un mismo esquema. Si te interesa entender cómo proteger información y validar quién la envió, aquí tienes la explicación.
Por qué RSA usa grupos multiplicativos y números primos
RSA se construye sobre la teoría de grupos, específicamente sobre el grupo multiplicativo de los enteros bajo módulo N. Un grupo necesita que todos sus elementos tengan un inverso, exista un elemento de identidad y que las operaciones siempre devuelvan un resultado dentro del mismo grupo.
Si tomas el módulo 4, el conjunto válido se reduce al 1 y al 3. El cero no tiene inverso multiplicativo y el 2 comparte un divisor común con 4, así que tampoco califica. En cambio, con módulo 5 (un primo) obtienes los enteros del 1 al 4, todos con inverso. Por eso RSA exige que N sea un número primo, y además muy grande.
¿Por qué RSA usa números primos grandes? Porque al usar un primo como módulo, todos los enteros menores que él son coprimos y tienen inverso multiplicativo, lo que garantiza que el grupo funcione y que el problema sea computacionalmente difícil de romper.
Cómo encripta RSA un mensaje paso a paso
RSA está basado en el logaritmo discreto. La idea es tomar un mensaje X, elevarlo a un exponente E y aplicar módulo N. El resultado es un mensaje cifrado Y.
- La llave pública está formada por el exponente E y el módulo N.
- La llave privada es un número secreto D, inverso de E en módulo N.
- Al cifrar con E y descifrar con D, las operaciones se cancelan y recuperas X.
Esto convierte a RSA en una trapdoor function: una función trampa fácil de calcular en un sentido, pero prácticamente imposible de revertir sin conocer D. La propiedad que sostiene todo es que E y D son congruentes en módulo N, es decir, su producto da 1 dentro del grupo.
Qué papel juega la cardinalidad del grupo
La cardinalidad indica cuántos elementos pertenecen al grupo. Cuando N es primo, calcularla es directo: son todos los enteros desde 1 hasta N-1. Esa cantidad define el espacio donde vive D, y por eso mantenerla difícil de calcular (usando primos enormes) es lo que da seguridad al criptosistema.
¿Qué es una función trampa en criptografía? Es una función fácil de calcular en una dirección pero muy difícil de invertir, salvo que poseas información secreta. En RSA, esa información es la llave privada D.
Por qué necesitamos firmas digitales si ya tenemos encripción
Las firmas RSA básicas tienen un problema: son maleables. Alguien podría modificar un mensaje cifrado para que al desencriptar produzca un resultado distinto, abriendo la puerta a ataques de intermediario donde un atacante manipula lo que recibe Bob de parte de Alice.
La solución es invertir el uso de las llaves. En lugar de cifrar con la llave pública, firmas con tu llave privada y cualquiera puede verificar la firma con tu llave pública.
Cómo se construye una firma digital con RSA
El flujo es así:
- Tomas el mensaje M y lo pasas por una función de hash, que devuelve un número de longitud fija y resistente a colisiones (por ejemplo, 256 bytes).
- Tratas ese hash como un número, lo elevas a tu exponente privado y aplicas módulo N.
- El resultado es la firma, vinculada matemáticamente a tu llave pública.
Para verificar, quien recibe el mensaje aplica la función de verificación con tu llave pública. Si el hash que se recupera coincide con el hash del documento original, la firma es válida y proviene de quien controla la llave privada asociada.
Usar el hash en vez del mensaje completo es clave: además de identificar el documento, garantiza que el valor a firmar quepa dentro del espacio numérico que maneja RSA.
Dónde se aplica la firma digital en el mundo real
La firma electrónica aparece en muchos contextos del desarrollo de software y la vida cotidiana:
- Autenticación contra servidores remotos al iniciar sesión vía SSH.
- Librerías como PGP, que integran RSA como uno de sus algoritmos de firmado.
- Validación de documentos legales y contratos digitales.
- Verificación de actualizaciones de software para confirmar que vienen del proveedor original.
Una propiedad central que aporta la firma es el no repudio: como solo el dueño de la llave privada pudo generar esa firma, no puede negar después haberla emitido. Esa garantía criptográfica es lo que vuelve a RSA tan útil para sistemas donde la identidad importa tanto como la confidencialidad.
¿Conoces otros casos donde uses firma electrónica en tu trabajo o vida diaria? Cuéntalo en los comentarios para seguir sumando ejemplos.