Dado el paso P = ras_encrypt(Bob's public key, K + S)
, realmente no hay una manera de que Alice niegue que conocía a K, y por lo tanto sabía (o podría haber conocido) el contenido de M, y por lo tanto no puede negar plausiblemente que ella Envié el mensaje M a Bob. Alguna otra persona que sabe que K podría crear H, y Alice podría haber sido engañada para que creara S de H. Sin embargo, el paso que genera P requiere que Alicia conozca a K, por lo que no puede negar plausiblemente que pueda leer M ', lo que para todos los propósitos prácticos significa que ella sabe lo que estaba en M y, por lo tanto, envió M a Bob (y él tiene pruebas de que lo hizo).
Sin embargo, podemos considerar una variación en el protocolo propuesto, lo que significaría que Bob sabe que Alice reenvió el mensaje, pero no prueba que Alice supiera el contenido del mensaje que reenvió. La solución alternativa, utilizando cualquier criptosistema de clave pública (PKCS) apropiado, es:
- Alice elige una clave aleatoria K y cifra el mensaje M utilizando esta clave K.
M' = AES(K, M)
- Alicia hace clic en la clave pública de K y Bob.
H = SHA(K + Bob's Public Key)
- Alice encripta K (más material extra arbitrario si la clave se considera demasiado corta) usando la clave pública de Bob:
K' = PKCS(Bob's public key, K)
- Alice cifra H usando su clave privada.
S = PKCS(Alice's private key, H)
- Alice cifra K 'y S usando la clave pública de Bob.
P = PKCS(Bob's public key, K' + S)
- Alice envía P, M 'a Bob.
Cuando Bob recibe P, M ', él:
- Utiliza su clave privada para descifrar P y obtener K ', S.
- Utiliza la clave pública de Alicia para descifrar S y obtener H.
- Utiliza su clave privada para descifrar K 'y obtener K.
- Utiliza su clave pública y K para validar H.
- Usa K para descifrar M 'y obtener M.
Alice ahora puede negar la creación del mensaje porque podría haber sido engañada por Mallory (la maliciosa) para tomar M ', H y K' y producir S y luego P, y enviar P y M 'a Bob, sin realmente saber K o lo que hay en M. Requeriría cierta credibilidad para haber sido engañado de esa manera, pero la negabilidad puede requerir la apariencia de crédula.
Si Eve (el que escucha) intercepta P y M ', ella no puede hacer nada. Ella no puede descifrar P porque no tiene la clave privada de Bob. Por lo tanto, ella no puede recuperar K 'o S, y por lo tanto no puede obtener el K o M original.
Claramente, SHA y AES pueden ser cualquier algoritmo hash seguro acordado y algoritmo de clave simétrica (privada).
¿O me he equivocado en alguna parte?