Cómo el cifrado RSA mantiene seguras sus transacciones en Internet

12

El cifrado RSA es la columna vertebral de la comunicación segura por Internet. Es un tipo de criptografía de clave pública que protege los correos electrónicos, las transacciones digitales y los datos confidenciales que fluyen a través de las redes. El algoritmo lleva el nombre de sus creadores: Ronald L. Rivest, Adi Shamir y Leonard M. Adleman. Desarrollaron el sistema mientras enseñaban en el Instituto de Tecnología de Massachusetts.

La seguridad de RSA se basa en un obstáculo matemático simple que es fácil de crear pero casi imposible de revertir. Un usuario comienza eligiendo dos números primos grandes, p y q. Estos números son tan grandes que multiplicarlos para obtener n es trivial, pero factorizar n nuevamente en p y q es computacionalmente prohibitivo.

Piénselo de esta manera: multiplicar dos números enormes lleva una fracción de segundo. ¿Estás tratando de averiguar qué dos números se multiplicaron para obtener ese resultado? Eso podría llevar miles de millones de años con la tecnología actual.

A partir de 2015, los estándares de seguridad del gobierno de EE. UU. requieren que el módulo n sea de al menos 2048 bits. En términos decimales, esto significa que p y q tienen alrededor de 308 dígitos cada uno, lo que crea un número de 617 dígitos para n. Los números más grandes que hemos factorizado con éxito son sólo la mitad de ese tamaño. La dificultad de factorizar aproximadamente se duplica por cada tres dígitos adicionales en el módulo. Este crecimiento exponencial de la complejidad garantiza que las claves de 617 dígitos permanezcan a salvo de ataques de fuerza bruta durante décadas.

La mecánica de la generación de claves

Una vez seleccionados p y q, el sistema genera una clave pública y una privada. El usuario elige un número entero e menor que n. Este número debe ser primo relativo al producto de (p – 1) y (q – 1). En términos sencillos, e no comparte factores comunes con ese producto aparte de 1.

Esta elección específica garantiza la existencia de otro número d. Cuando multiplicas e por d y divides por el mínimo común múltiplo de (p – 1) y (q – 1), el resto es 1.

Encontrar d es fácil si conoces p y q. El algoritmo euclidiano lo calcula en momentos. Pero si no conoces p y q, encontrar d a partir de e es tan difícil como factorizar n. Esa dificultad es la base entera de la criptoseguridad de RSA.

La seguridad de RSA no es mágica; son matemáticas. Específicamente, es la asimetría entre la multiplicación fácil y la factorización imposible.

Claves públicas frente a claves privadas

Las etiquetas d y e describen funciones, no roles estrictos. Las llaves son intercambiables. Esta flexibilidad permite que RSA tenga dos propósitos distintos: secreto y autenticación.

Para crear un canal secreto, el usuario A publica e y n en un directorio público. El usuario A mantiene d en secreto. Cuando alguien quiere enviar un mensaje privado a A, convierte el mensaje en números menores que n y lo cifra usando e y n. Sólo A puede descifrarlo porque sólo A contiene d. La suposición (y una fuerte evidencia) sostiene que nadie más puede descifrar el mensaje sin factorizar n.

La autenticación funciona de manera diferente. El usuario A publica d y n y mantiene e en secreto. El usuario B quiere verificar que está hablando con A. B envía un mensaje de desafío a A. Si A devuelve la versión cifrada usando e, B puede descifrarla usando el código público d. Si el mensaje descifrado coincide con el desafío, B sabe que el remitente posee e. Como sólo A tiene e, se verifica la identidad.

Firmas digitales y hash

La firma digital añade una capa de complejidad. Requiere una función hash criptosegura. Esta es una función pública que comprime cualquier mensaje en un resumen más pequeño. Cada parte del resumen depende de cada parte del mensaje original. Cambie un bit en el mensaje original y aproximadamente la mitad de los bits del resumen se invertirán.

Un hash criptoseguro hace que sea computacionalmente inviable encontrar un mensaje que produzca un resumen preasignado específico. También dificulta encontrar un mensaje diferente con el mismo resumen que uno conocido.

Para firmar un mensaje, A cifra el resumen con su secreto e y lo adjunta al mensaje. No es necesario que el mensaje en sí sea secreto. Cualquiera puede utilizar la clave pública de A d para descifrar la firma y recuperar el resumen. Luego calculan el resumen del mensaje recibido de forma independiente. Si los dos resúmenes coinciden, la firma es válida. Sólo A podría haber cifrado el resumen porque sólo A conoce e.

La realidad híbrida

Esta seguridad tiene un costo. El cifrado asimétrico implica muchos más cálculos que el cifrado simétrico (de una sola clave). Esta alta demanda de procesamiento reduce drásticamente el rendimiento. Durante unos 20 años, los algoritmos de una sola clave han logrado rendimientos entre 1.000 y 10.000 veces superiores a los de dos claves para niveles de seguridad comparables.

Debido a que RSA es lento, rara vez se utiliza para cifrar grandes cantidades de datos directamente. En cambio, impulsa sistemas híbridos. RSA maneja el trabajo pesado de autenticación y firmas digitales. También intercambia de forma segura una clave de sesión generada aleatoriamente. Una vez que se comparte esa clave, el sistema cambia a un algoritmo de clave única para la transmisión de alta velocidad de los datos reales. Cuando finaliza la sesión, la clave se descarta.

Esta combinación nos brinda lo mejor de ambos mundos. Obtenemos el intercambio seguro de claves de criptografía de clave pública con la velocidad del cifrado simétrico para la mayor parte de nuestros datos.

Las matemáticas se mantienen. Las llaves permanecen seguras. Pero a medida que aumenta la potencia informática, la definición de “grande” cambia. Lo que hoy es inquebrantable podría tener solución mañana. Seguimos construyendo números primos más grandes. Seguimos esperando que la brecha entre la multiplicación fácil y la factorización estricta siga siendo lo suficientemente amplia como para proteger nuestras vidas digitales.