【发布时间】:2012-10-14 20:43:32
【问题描述】:
我编写了一个应用程序,它通过 OpenSSL 1.0.1c 生成 ECDSA 公钥/私钥对。 据我了解,OpenSSL 在 Linux 上使用 /dev/random,但 Android 没有 /dev/random,这意味着我可能会提供加密弱密钥对。
这两个我都看过
https://security.stackexchange.com/questions/2152/do-mobile-oss-provide-crypto-quality-randomness
还有这个问题
并且两者都为使用java.security.SecureRandom 提供了足够的建议,但是我在本机端生成这些密钥对,因此欢迎使用本机。我可以将参数从 Java 传递到我的本机代码,因此很容易传递随机字节,但是如果有办法完全在本机端完成,我会选择它。
那么,Android 上有 /dev/random 的替代品吗?
【问题讨论】:
-
我的 C 标签足够了,因为我使用 C 和 OpenSSL 在本机端生成这些密钥对。我还在问题标题中说明了 JNI。
-
如果可以使用例如,为什么要恢复到 OpenSSL/JNI充气城堡? ECDSA 密钥对生成应该非常快,并且
SecureRandom已正确播种(如果您在生成随机数之前未播种)。 -
我使用 SpongyCastle,我可以告诉你,它很慢。我需要 JNI 来提高速度。
标签: android random cryptography