in reply to Generate RSA keypair in perl efficently with custom PRNG

The fact that you calling random_seed with the same data, doesn't mean that you will get the same random data. If you look onto Crypt::OpenSSL::Random documentation, it doesn't claim that with the same seed it will produce the same pseudo random sequence. This example demonstrates the opposite, every time you run it it will produce different result:

use 5.012; use warnings; use Crypt::OpenSSL::Random; use MIME::Base64; Crypt::OpenSSL::Random::random_seed("This is not a random seed"); my $random_bytes = Crypt::OpenSSL::Random::random_bytes(20); say encode_base64($random_bytes);

Update:

Crypt::OpenSSL::RSA has new_key_from_parameters method, which generates keypair from the provided parameters. So the only problem you need to solve is to generate key parameters from the password. Have a look onto next_prime from Math::Primality package for generating big primes from the password.

PS: I assume that you know what are you doing

Replies are listed 'Best First'.
Re^2: Generate RSA keypair in perl efficently with custom PRNG
by sebastiannielsen (Initiate) on Feb 19, 2011 at 09:59 UTC
    But isn't using Math::Primality a slow method of generating keys?

    Isn't there any way to supply own random data to a *Efficient* key generating process, that generates a keypair fast and efficiently?

    I tried with a another key generating process but it took about 1 minute to generate a 256 bit RSA keypair. Thats too slow. I need a fast and efficient method.

      You can use also Math::GMPz, which uses GMP library:

      use 5.012; use warnings; use Math::GMPz qw(:mpz ); use Digest::SHA qw(sha512_hex); my $sha = sha512_hex('password'); my $op = Rmpz_init_set_str($sha, 16); my $rop = Rmpz_init2(512); Rmpz_nextprime($rop, $op); say Rmpz_get_str($rop, 16);
      it takes less than a second on my notebook.