I'm not sure what SSL uses to share the symmetric key to both end users, i.e. at the beginning of the communication. Is it RSA? Or El-Gamal? Or something else?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
Well, what SSL uses to negotiate the symmetric keys depends on the ciphersuite that both sides agree upon. By far, the most common method is that the client picks a random value (the premaster secret), and encrypts it with the server's RSA public key. However, it is not that unusual for the ciphersuite to specify that the client and the server agree upon a premaster secret using the Diffie-Hellman algorithm (or the Elliptic Curve version), with the DH exchange generally (but not always) being protected via some sort of signature operation.
El-Gamal isn't generally used; in fact, I don't believe that there's a standard ciphersuite that specifies it.
Which scheme is used for exchanging keys indicated in the messages and Server_Hello Client_Hello. Also some details may be contained in message Extension. Exact details are contained in RFC 5246. Here's TLS 1.2!