Obiettivo
Voglio che Alice e Bob comunichino un messaggio senza che le loro risposte si influenzino a vicenda. Più formalmente:
- Alice vuole inviare un messaggio a Bob,
a
. - Bob vuole inviare un messaggio ad Alice,
b
. - Ma Alice non deve sapere
b
prima di inviarea
- E Bob non deve sapere
a
prima di inviareb
.
Tentativo
Stavo pensando che potrei avere:
- Alice invia un messaggio crittografato,
f(a, p1) = a'
e un hash con il messaggio originale e la chiave privata,h(a, p1)
. - Bob invia anche un messaggio crittografato,
f(b, p2) = b'
e hash,h(b, p2)
. - Alice e Bob si scambiano le chiavi private dopo aver ricevuto i loro messaggi
- Decodificano i messaggi ricevuti e verificano le corrispondenze hash
C'è qualche problema con questo metodo? Sarebbe possibile per Alice costruire un p'
che fa sì che il messaggio venga decodificato come qualcosa diverso da a
e tuttavia soddisfi ancora la funzione di hashing? (supponendo crittograficamente sicuro f
e h
)
Esistono metodi più comunemente accettati per farlo?