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