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

This question already has an answer here:

I've been reading "SQRL Secure QR Login" at Gibson's website, and I'm wondering if there is a way to generate an RSA private/public key-pair based on some cryptographically secure input, so that if the input stays the same we keep getting the same key pair on the output.

The linked web-site uses elliptic curve cryptography to achieve this property. Is it not possible with RSA?

share|improve this question

marked as duplicate by Maarten Bodewes, Gilles, e-sushi, otus, DrLecter Jun 23 '14 at 8:10

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

ecliptic $\mapsto$ elliptic $\:$ ? $\;\;\;$ – Ricky Demer Oct 3 '13 at 3:53
up vote 3 down vote accepted

Of course it's possible; all you need is take your cryptographically secure input, feed it as the key to a CSRNG, and then use the CSRNG output as the source of randomness to an RSA key generation algorithm. For a concrete example, there are several such key generation methods in FIPS 186-3, with the cryptographically secure input being the 'seed' (and you would fix all the other various parameters).

This is easy; however this is not cheap. RSA key generation involves testing various large numbers for primality; depending on the hardware you have (and the RSA key size you are attempting to build), this can take multiple seconds. Depending on the your requirements, this can be a deal breaker. In contrast, the key generation method for elliptic curves is cheap; that is undoubtedly why the guys on the web-site selected it.

share|improve this answer

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