This is the code that I'm using to generate a DH keypair:
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DH");
keyGen.initialize(1024, new SecureRandom());
KeyPair ackp = keyGen.generateKeyPair();
(without the needed try/catch, of course).
I've done some tests running such code iteratively and varying the key size (in particular ramping up from 128 with a 128 step up to 1024. 1024 would be the desired size.
First of all, running each size generation 10 times to have some minimal std deviation on the results gives HIGH fluctuation of results, on average, anyway, the time needed for creating the keys (1024 bit) is: 683027ms, which rounds up to around 11 minutes for creating a key.
The questions are:
- Is anyone else getting the same results?
- Is there some optimization to be run in order to achieve lower times?
- What is the high fluctuation dependent of? (i.e. for generating a 1024bit key it can take from 18 seconds to 30 minutes...)
Tests have been run on a Nexus-One phone
Thanks in advance for shedding some light on the "issue"
Regards