3
这是我用来生成密钥对DH代码:DH密钥对生成时间在Android
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DH");
keyGen.initialize(1024, new SecureRandom());
KeyPair ackp = keyGen.generateKeyPair();
(不包括所需要的try/catch语句,当然)。
我已经做了反复运行这样的代码,并用128步改变密钥大小(从128特别斜坡最高达1024。1024一些测试将所需的大小。
首先,运行无论如何,创建密钥(1024位)所需的时间平均为:683027毫秒,其总和为约11分钟创建密钥
问题是:
- 其他人是否得到相同的结果?
- 是否有一些优化运行,以实现更低的时间?
- 什么是高波动依赖? (即用于生成1024位密钥可能需要18秒至30分钟...)
测试已经在Nexus-One手机上提前对脱落一些轻运行
感谢“问题”
问候
如果生成密钥像这样,它不会让你的数据比纯文本更安全。 – Behrooz 2012-12-16 15:46:21
我知道它有点晚了,但是因为Behrooz指出的原因,我有一个倒退。随机性对于安全至关重要,如果你想要安全,重用不是一种选择。与时机的实际问题可能指向您的Android设备如何收集熵的一些问题,这听起来像与我的平台的问题。 – 2013-02-04 00:59:58
我认为前两个评论是不正确的。参数* p *和* g *在Diffie-Hellman中完全公开;它们用于在调用'generateKeyPair'时生成私有信息。您可以在[Wikipedia](http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange#Public_Key)以及“知名组织”列表中看到此内容,这些列表是“推荐值* p *和* g *,例如, [RFC2539](http://tools.ietf.org/html/rfc2539#appendix-A)和[RFC3526](http://tools.ietf.org/html/rfc3526)。 – 2013-07-01 16:20:18