Take the 2-minute tour ×
Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. It's 100% free, no registration required.

I know we could possibly be using DH key exchange, that would enable PFS. However, what if we make modifications on our SSL 3.0 handshake such that the only cipher we use is RSA for the achieving PFS? Is it possible to modify SSL handshakes to enable PFS while still using RSA during the handshake?

share|improve this question
1) If you invent your own ciphersuite, you could use ephemeral RSA. But creating a new RSA key is much more expensive than generating a DH key. So you might want to reuse it across connections and only rotate every minute. 2) You could use the plain RSA suite to achieve a limited form of forward secrecy if you frequently obtain a new certificate. Might be expensive depending on the CA. –  CodesInChaos Dec 10 '13 at 9:02
@CodesInChaos How is plain RSA susceptible to no-PFS whereas ephemeral RSA does provide PFS? I am using RSA , and only RSA at the handshake during TLS/SSL 3.0, so does that mean one party needs to have an ephemeral key for this to succeed? Why do you doing its much more expensive, in what sense? –  Bob White Dec 10 '13 at 20:19
To achieve forward secrecy you need to throw away the keys you used in the handshake so your future self won't be able to decrypt the handshake anymore. Both sides need to use an ephemeral key (With RSA key-exchange the client's ephemeral key is a symmetric secret). As long as the server keeps its RSA key used in a plain RSA key-exchange, you haven't achieved forward secrecy. –  CodesInChaos Dec 11 '13 at 8:30
Creating a new DH key is cheap: One modular exponentiation with fixed base (or the even cheaper elliptic curve equivalent). With RSA you need to create two large primes. Creating an RSA key costs only a fraction of a second, but you don't want to create a new one for each and every connection. –  CodesInChaos Dec 11 '13 at 8:36

Your Answer


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

Browse other questions tagged or ask your own question.