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?
2 Answers
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.
-
$\begingroup$ DSA is based on El-Gamal, so you could use DSA certificates. But you're right, no one does. $\endgroup$ Dec 14, 2011 at 1:44
-
$\begingroup$ El Gamal is in fact used by PGP and GPG, sometimes in preference to RSA, as El Gamal is unencumbered by patents I believe (sorry can't find references to prove this). $\endgroup$ Jan 16, 2014 at 19:48
-
$\begingroup$ @bobjandal The question (and the answer) is about SSL, not other crypto protocols like OpenPGP. $\endgroup$ Jan 17, 2014 at 22:28
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!