Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
up vote 7 down vote accepted

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.

share|improve this answer
DSA is based on El-Gamal, so you could use DSA certificates. But you're right, no one does. – Marsh Ray Dec 14 '11 at 1:44
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). – bobjandal Jan 16 '14 at 19:48
@bobjandal The question (and the answer) is about SSL, not other crypto protocols like OpenPGP. – Paŭlo Ebermann Jan 17 '14 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!

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.