这是我用来生成 DH 密钥对的代码:
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DH");
keyGen.initialize(1024, new SecureRandom());
KeyPair ackp = keyGen.generateKeyPair();
(当然,没有必要的 try/catch)。
我已经完成了一些迭代运行此类代码并改变密钥大小的测试(特别是从 128 以 128 步上升到 1024。1024 将是所需的大小。
首先,运行每个大小生成 10 次以使结果的标准偏差最小,这会产生很大的结果波动,平均而言,创建密钥(1024 位)所需的时间是:683027ms,四舍五入创建密钥需要11 分钟。
问题是:
- 其他人得到相同的结果吗?
- 是否需要进行一些优化以缩短时间?
- 高波动取决于什么?(即生成 1024 位密钥可能需要 18 秒到 30 分钟...)
已在 Nexus-One 手机上运行测试
提前感谢您对“问题”有所了解
问候