Riepilogo rapido
Parametri generati dall'iniziatore :
1) Iinitiator , Identity Key (keypair) dell'iniziatore;
2) Einitiator , una coppia di chiavi a curva ellittica effimera (cioè temporanea).
Parametri generati dal destinatario :
3) Irecipient , la chiave di identità del destinatario (keypair);
4) Srecipient , la chiave pre firmata del destinatario (keypair);
5) Orecipient , la chiave pre-chiave del destinatario (coppia di tasti).
ECDH (Ka, Kb) è la procedura Elliptic Curve Diffie Hellman tra due feste, A con una keypair Ka e B con una keypair Kb.
|| è l'operatore di concatenazione.
La formula
master_secret = ECDH(Iinitiator, Srecipient) || ECDH(Einitiator, Irecipient) || ECDH(Einitiator, Srecipient) || ECDH(Einitiator, Orecipient)
significa che il protocollo ECDH viene eseguito quattro volte, usando come keypairs:
1) Iinitiator e Srecipient;
2) Einitiator and Irecipient;
3) Einitiator and Srecipient;
4) Einitiator and Orecipient,
, rispettivamente. Come puoi vedere, ogni volta vengono utilizzati due keypair, ognuno dei quali appartiene a una parte diversa, il che significa che tutte quelle operazioni ECDH(. , .)
sono valide.
Ciascuna operazione genera un segreto condiviso senza rivelarlo direttamente a chiunque altro stia ascoltando sul canale, grazie alle proprietà del protocollo Diffie-Hellman.
I risultati sono concatenati, formando così il segreto principale.