Firmando en el sistema RSA.
Posibilidad de autentificación en el sistema RSA.

A quiere enviar a B el mensaje M y B quiere estar seguro de que el mensaje M proviene de A

Llamamos EB al algoritmo de enciframiento de mensajes para B (conocido por todos), es decir EB aplicado al mensaje M consiste en:

1. mirar código de B , que es (e,n)
2. formar M'=M^e (mod n)

Podemos escribir EB(M)=M'


Llamamos DB al algoritmo de desciframiento que usa B para los mensajes que le llegan a él (sólo conocido por B). Es decir DB aplicado a M' consiste en:

1. B recuerda su descodificador secreto d
2. B calcula M=M'^d (mod n)

Podemos escribir M=DB(M')



Observación:
Para cualquier mensaje H se verifica

DB(EB(H))=H=EB(DB(H))

es decir DB y EB son algoritmos inversos.


Proceso que sigue A para "firmar" su mensaje M para B.

1. A codifica M primero con su propio algoritmo (secreto) de desciframiento para los mensajes que le viene a él, es decir A forma DA(M). Observación: sólo A puede construir DA(M) a partir de M,

pero cualquiera que conociera DA(M) podría recuperar M aplicándole EA, es decir EA(DA(M))=M
Por eso, como A quiere que sólo B pueda conocer DA(M),

2. A codifica ahora DA(M) con el algoritmo de enciframiento de mensajes para B (público), es decir obtiene EB(DA(M)).
Observación: sólo B puede recuperar DA(M) a partir de EB(DA(M)).

3. A envía a B por canal público EB(DA(M)) y B recibe este mensaje.

4. B trata primero el mensaje EB(DA(M)) que ha recibido con su propio algoritmo de desciframiento DB (que sólo él conoce) y obtiene
DB(EB(DA(M)))=DA(M)

5. A continuación trata este resultado DA(M) con el algoritmo (público) EA de enciframiento  de mensajes para A. Obtiene así

EA(DA(M))=M
es decir recupera el mensaje M sin encriptar.

B puede estar ahora seguro
de que el mensaje proviene de A.