El criptosistema RSA permite no sólo garantizar la confidencialidad de la comunicación entre dos partes, cifrando en origen el mensaje que se va a transmitir por un canal inseguro y descifrándolo en recepción, sino que también proporciona otros servicios o funciones de seguridad de la información, como son la autenticación de origen , la integridad o el no-repudio (mediante la firma digital). Veamos cómo se emplearía RSA para garantizar estos servicios.


CIFRADO

Suponemos que A quiere enviar un mensaje M confidencialmente a B a través de un medio de transmisión inseguro. Estos son los pasos que tiene que seguir:
1.-Obtiene la clave pública del destinatario B, (eB,nB)
2.-Representa el texto en claro que quiere transmitir como un entero positivo M < n
3.-Computa el mensaje cifrado: C=(M)eB mod nB
4.-Finalmente transmite el criptomensaje C por el canal inseguro

DESCIFRADO

Cuando B reciba el mensaje cifrado C, hace lo siguiente:
1) Usa su clave privada (dB, nB) para computar M = (C)dB mod nB
2) Recupera el texto original a partir de su entero representante M


Seguridad

La seguridad del criptosistema RSA está basado en dos problemas matemáticos: el problema de factorizar números grandes y el problema RSA. El descifrado completo de un texto cifrado con RSA es computacionalmente intratable, no se ha encontrado un algoritmo eficiente todavía para ambos problemas. Proveyendo la seguridad contra el descifrado parcial podría requerir la adición de una seguridad padding scheme. El problema del RSA se define como la tarea de tomar raíces e-ésimas módulo a componer n: recuperando un valor m tal que me≡c (mod n), donde (e, n) es una clave pública RSA y c es el texto cifrado con RSA. Actualmente la aproximación para solventar el problema del RSA es el factor del módulo n. Con la capacidad para recuperar factores primos, un atacante puede calcular el exponente secreto d desde una clave pública (e, n), entonces descifra c usando el procedimiento estándar. Para conseguir esto, un atacante debe factorizar n en p y q, y calcular (p-1)(q-1) con lo que le permite determinar d y e. No se ha encontrado ningún método en tiempo polinómico para la factorización de enteros largos. Ver factorización de enteros para la discusión de este problema.