0Pricing
Cryptology Academy · Lección

Matemáticas del cifrado y descifrado RSA

Aplique la exponenciación modular para cifrar y descifrar un mensaje.

Matemáticas del cifrado y descifrado RSA es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Bienvenida

Ahora que hemos generado las claves RSA, las aplicaremos. El cifrado y el descifrado son exponenciaciones modulares: fáciles de calcular, pero inviables de invertir sin la clave privada.

Cifrado RSA de libro de texto

Cifre el mensaje M (como entero) con la clave pública (e, n): C = M^e mod n Ejemplo: M=42, e=17, n=3233 C = 42^17 mod 3233 Python: C = pow(42, 17, 3233) = 2557

Descifrado RSA de libro de texto

Descifre el texto cifrado C con la clave privada (d, n): M = C^d mod n C=2557, d=2753, n=3233 M = 2557^2753 mod 3233 Python: M = pow(2557, 2753, 3233) = 42 ✓

Por qué funciona: el teorema de Euler

C^d mod n = (M^e)^d mod n = M^(ed) mod n. Dado que ed ≡ 1 (mod φ(n)), M^(ed) = M^(1+k×φ(n)) = M × (M^φ(n))^k ≡ M × 1^k = M.

Algoritmo de elevar al cuadrado y multiplicar

El cálculo ingenuo de M^e requeriría e multiplicaciones. Elevar al cuadrado y multiplicar reduce esta cantidad a O(log e) multiplicaciones: pow(base, exp, mod) en Python lo hace automáticamente.

Limitación del tamaño del mensaje

El RSA de libro de texto requiere M < n. En RSA-2048, M puede tener como máximo 256 bytes. Esto es adecuado para cifrar una clave AES corta, pero no para cifrar directamente archivos grandes.

Por qué el RSA de libro de texto es inseguro

Problemas del RSA sin relleno: 1. El mismo M siempre produce el mismo C (determinista) 2. M pequeño con e pequeño: C = M^e literalmente (sin reducción modular) 3. Multiplicativo: Enc(M1)×Enc(M2) = Enc(M1×M2) Los esquemas de relleno resuelven todos estos problemas.

Cifrado RSA en Python (OAEP)

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes ciphertext = public_key.encrypt( b'Secret message', padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) )

Descifrado RSA en Python

plaintext = private_key.decrypt( ciphertext, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) print(plaintext) # b'Secret message'

Patrón híbrido RSA + AES

# Real-world pattern: aes_key = os.urandom(32) # Random 256-bit AES key encrypted_key = rsa_encrypt(aes_key, recipient_pub) # RSA ciphertext = aes_gcm_encrypt(aes_key, plaintext) # AES # Send: encrypted_key + ciphertext

Rendimiento de RSA

Cifrado RSA-2048 (público): aproximadamente 0.1 ms. Descifrado RSA-2048 (privado): aproximadamente 1 ms. AES-256-GCM: aproximadamente 100 MB/s. El cifrado híbrido combina la velocidad del intercambio de claves RSA con el rendimiento de AES para los datos.

Comprobación rápida

Usando RSA de libro de texto con e=3 y n=33, ¿cuál es el cifrado de M=5?

Repaso

Las matemáticas del cifrado y descifrado RSA ya están claras. A continuación, veremos cómo RSA protege HTTPS, SSH y la firma de código en el mundo real.

Preguntas frecuentes

¿La lección «Matemáticas del cifrado y descifrado RSA» es gratis?

Sí — el texto completo de «Matemáticas del cifrado y descifrado RSA» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Matemáticas del cifrado y descifrado RSA»?

Aplique la exponenciación modular para cifrar y descifrar un mensaje. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Matemáticas del cifrado y descifrado RSA»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Conceptos de criptografía de clave pública
  2. Generación de claves RSA paso a paso
  3. Matemáticas del cifrado y descifrado RSA
  4. Casos de uso de RSA en el mundo real y tamaños de clave
← Volver a Cryptology Academy