我正在为学校开发一个Android项目,我应该做一个DHKE(Diffie Hellman密钥交换)。一切运作良好,问题是生成DHParameters需要花费大量时间(实际上很多)。基本上,在我的代码中,这是消耗最多时间(和电池)的部分:
KeyPairGenerator kpgDH = KeyPairGenerator.getInstance("DH");
kpgDH.initialize(512);
KeyPair kpDH = kpgDH.generateKeyPair();
正如您所看到的,密钥长度仅为512位,因此它不长,并且仍然需要至少30-40秒(最佳情况),但最长可达400秒。我在几款手机上测试过它:三星galaxy s2(四核),三星galaxy s4(四核),三星galaxy note 10.1(四核)。 有没有人知道另一种方法可以更快地生成Diffie Hellman的p和g,以加速这个过程?