Ieri nella mia classe abbiamo imparato come inviare un messaggio da Alice a Bob con gli obiettivi raggiunti di riservatezza, integrità e autenticità. Per ottenere prestazioni migliori, utilizziamo un metodo ibrido con una chiave simmetrica e asimmetrica.
Le chiavi private di Alice e Bob sono firmate da un'autorità di certificazione (CA) - > autenticità
L'obiettivo di integrità è assicurato grazie all'hash:
h = hash(M)
La riservatezza viene utilizzata grazie all'utilizzo di una chiave simmetrica noto ad Alice e Bob che è stato scambiato grazie alle loro chiavi asimmetriche.
Il risultato è il seguente messaggio - che Alice invia a Bob:
# public keys
K_A_E = public_key_Alice
K_B_E = public_key_Bob
K_B_E and K_A_E are signed by a CA.
# private keys
K_A_D = private_key_Alice
M = "our secret message"
h = hash(M)
K_AB = the_symmetric_key
this results in the message:
{K_AB}**K_B_E {{h}**K_A_D, M}**K_AB
Non capisco perché sia necessario avviare il messaggio con {K_AB}**K_B_E
.
* Perché è necessario anteporre la chiave simmetrica K_AB
all'inizio del messaggio?
* Questa chiave simmetrica è aggiunta a ogni messaggio inviato tra Alice e Bob?
* Il nostro docente ha affermato che questo metodo di crittografia viene utilizzato in OpenPGP. Quindi OpenPGP crea una nuova chiave simmetrica per ogni messaggio?