首页 > 解决方案 > 在 Android 中为 diffie-hellman 生成密钥需要太长时间

问题描述

目前我正在尝试为 Android 中的应用程序实现 diffie-hellman 密钥交换。但是,我遇到了一个问题。我读到 diffie-hellman 的推荐密钥大小是 2048,但是当我尝试在 android 模拟器中使用 java.security.KeyPairGenerator 生成密钥时,该过程永远不会完成。我等了 15 分钟,在日志中我唯一能看到的是“生成安全素数。这可能需要很长时间。” 信息。我等了15分钟,然后放弃了。随后我尝试生成长度为 1024 的密钥,它在 7 到 39 秒的范围内完成,这仍然很长但更合理。难道我做错了什么?

这是我的代码:

val keyPair = KeyPairGenerator.getInstance("dh")
keyPair.initialize(2048)

val generatedPair = serverKeyPair.generateKeyPair()
val privateKey = generatedPair.private
val publicKey = generatedPair.public

System.err.println("pu: ${publicKey.encoded}")
System.err.println("pr: ${privateKey.encoded}")

标签: androidkotlindiffie-hellman

解决方案


推荐阅读