Il passo spiegato nel documento è corretto. La confusione che probabilmente stai affrontando è con il passaggio chiave di scambio, credo.
Lascia che ti spieghi ulteriormente.
Sia A il mittente e B, il destinatario.
- A genera il messaggio - M
- A genera una chiave di sessione pseudocasuale - K
Key for symmetric encryption
- A crittografa il messaggio M con la chiave di sessione K - E (K, M)
Message encrypted with symmetric encryption
- A crittografa la chiave di sessione K con la chiave pubblica di B - E (KBPUB, K)
K encrypted with public key of B so that B can retrieve K with it's private key.
-
A aggiunge i risultati dei passaggi 3 e 4 e li invia a B - E (K, M) || E (KBPUB, K)
-
B riceve E (K, M) || E (KBPUB, K)
- B recupera K da E (KBPUB, K) - > K = E [KBPRIV, E (KBPUB, K)]
Retrieving K by decrypting it with private key of B.
- B usa K per recuperare M da E (K, M) - > M = D [K, E (K, M)]
Decrypting the symmetrically encrypted message.
La tua confusione è nel 3 ° e 4 ° passaggio. L'ordine del 3 ° e 4 ° passaggio non ha importanza, come si vede da quanto sopra.