To communicate over a public channel, it seems often that 2 parties first use some
asymmetric-encryption way to exchange a
symmetric key. And then use the symmetric key for subsequent communication. The details are:
- Bob generates a public/private key pair.
- Bob upload his public key to a key server.
- Alice download Bob's public key from the key server.
- Alice chooses a symmetric key, uses Bob's public key to encrypt the symmetric key, and sends it to Bob.
- Bob decrypts Alice's symmetric key.
- Bob and Alice communicate with the symmetric key.
In step 4, it seems only Alice can decide the symmetric key. And it must be Alice to send it to Bob. Because if Bob chose and sent the symmetric key to Alice, any eavesdropper can decrypt it.
Is this right?