Objetivo
Quiero que Alice y Bob comuniquen un mensaje sin que sus respuestas se influyan entre sí. Más formalmente:
- Alice quiere enviarle un mensaje a Bob,
a
. - Bob quiere enviarle un mensaje a Alice,
b
. - Pero Alice no debe saber
b
antes de enviara
- Y Bob no debe saber
a
antes de enviarb
.
Intento
Estaba pensando que podría tener:
- Alicia envía un mensaje cifrado,
f(a, p1) = a'
, y un hash con el mensaje original y la clave privada,h(a, p1)
. - Bob también envía un mensaje cifrado,
f(b, p2) = b'
y hash,h(b, p2)
. - Alice y Bob intercambian claves privadas una vez que han recibido sus mensajes
- Descifran los mensajes recibidos y verifican las coincidencias de hash
¿Hay algún problema con este método? ¿Sería factible para Alice construir un p'
que haga que el mensaje se descifre como algo distinto de a
y que aún satisfaga la función de hashing? (asumiendo que criptográficamente es seguro f
y h
)
¿Hay formas más comunes de hacer esto?