1. Generación de claves:
* se seleccionan dos grandes números primos (P y Q): Estos se mantienen en secreto.
* se calcula el módulo (n): n =p * q. Este es el componente de la clave pública y se hace público.
* La función total de Euler (φ (n)) se calcula: φ (n) =(P-1) (Q-1). Esto representa el número de enteros menores que N que son relativamente primos para n. Se mantiene en secreto.
* se elige el exponente público (e): Este es un pequeño número relativamente primo a φ (n) (lo que significa que su mayor divisor común es 1). Se hace público como parte de la clave pública.
* se calcula el exponente privado (d): Este es el inverso multiplicativo de E Modulo φ (N). En otras palabras, d * e ≡ 1 (mod φ (n)). Esto se mantiene en secreto y forma la clave privada.
2. Cifrado:
* El remitente usa la clave pública * (n, e) del destinatario para cifrar el mensaje (texto sin formato, m).
* El texto cifrado (c) se calcula como:c ≡ m
3. Descifrado:
* El destinatario usa su * clave privada * (d) para descifrar el texto cifrado (c).
* El mensaje original (m) se recupera como:m ≡ c
¿Por qué es esto seguro?
* Dificultad computacional de factoring: La seguridad depende del hecho de que es computacionalmente inviable factorizar el gran módulo (N) en sus factores primos (P y Q) en una cantidad razonable de tiempo, incluso con computadoras potentes. Si un atacante pudiera factorizar N, podría calcular φ (n) y posteriormente derivar la clave privada (d). El tamaño de N (a menudo 2048 bits o más) hace que el factoring sea prácticamente imposible.
* Naturaleza asimétrica: RSA utiliza un sistema clave asimétrico. La clave pública puede distribuirse ampliamente sin comprometer la seguridad de la clave privada. Esto permite que cualquiera cifre mensajes para un destinatario, pero solo el destinatario con la clave privada puede descifrarlos.
* Propiedades matemáticas: Las propiedades matemáticas de la aritmética modular y el teorema de Euler garantizan que el proceso de descifrado recuperará correctamente el mensaje original.
Asegurar la seguridad en la práctica:
* Gestión de claves: La generación segura y el almacenamiento de claves privadas son primordiales. Las claves privadas comprometidas niegan completamente la seguridad.
* Longitud de la tecla: El uso de tamaños clave suficientemente grandes (por ejemplo, 2048 bits o más) es crucial para resistir los ataques de factorización.
* Esquemas de relleno: Las implementaciones modernas de RSA utilizan esquemas de acolchado (como OAEP) para mitigar varios ataques, incluidos los ataques de texto cifado elegido. Estos esquemas agregan aleatoriedad al mensaje antes del cifrado, lo que dificulta la explotación de vulnerabilidades en el algoritmo RSA básico.
* Implementación del protocolo: El RSA a menudo se usa dentro de protocolos criptográficos más grandes (como TLS/SSL para la comunicación web segura) que abordan otros aspectos de la seguridad, como la autenticación y la integridad.
En resumen, la seguridad de RSA se basa en la dificultad computacional de factorizar grandes números y el uso de claves asimétricas. Sin embargo, la gestión de clave adecuada, las longitudes de llave suficientes y el uso de esquemas de relleno seguros son esenciales para su implementación efectiva y segura.