Estoy trabajando en un proyecto de Android para la escuela y se supone que debo hacer un DHKE (Diffie Hellman Key Exchange). Todo funciona bien, el problema es que lleva mucho tiempo (realmente mucho) generar DHParameters. Básicamente, en mi código, esta es la parte que consume más tiempo (y batería):
KeyPairGenerator kpgDH = KeyPairGenerator.getInstance("DH");
kpgDH.initialize(512);
KeyPair kpDH = kpgDH.generateKeyPair();
Como puede ver, la longitud de la clave es de solo 512 bits, por lo que no es larga, y todavía toma al menos 30-40 segundos (el mejor de los casos), pero puede llegar hasta los 400 segundos. Y lo he probado en varios teléfonos: Samsung galaxy s2 (quad core), samsung galaxy s4 (quad core), samsung galaxy note 10.1 (quad core). ¿Alguien sabe una alternativa para generar más rápidamente las p y g para el Diffie Hellman para acelerar el proceso?