java - Android 上 Java BigInteger 对于加密计算密集型应用程序的性能

标签 java android cryptography biginteger gmp

我正在开发一个计算密集型的 Android 加密应用程序。 我必须处理大小在 80 到 1024 位之间的正整数。 我需要模幂和复合性测试。 我意识到唯一的选择(如果我只想用 Java 编写代码)是使用 BigInteger 类。 在性能方面还有更好的解决方案吗? 例如,我考虑使用 GNU MP Bignum 库和 JNI 用 C 语言编写应用程序。 从性能角度来看,这值得吗? 这是否需要仅用于应用程序入口点的 JNI 粘合代码,还是存在其他问题?

最佳答案

Android 使用 OpenSSL 的 BN API 来实现其 BigInteger 算术的一部分,因此它应该相当快。要查找慢速方法,请查看 Android's BigInteger documentation对于任何附有“实现说明”的内容。

正如其他人所指出的:不要实现自己的加密原语,因为你会遇到麻烦。例如,GMP 会泄露计时信息。

关于java - Android 上 Java BigInteger 对于加密计算密集型应用程序的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20115961/

相关文章:

java - 在groovy中使用正则表达式进行模式匹配

java - 通过邮件发送图像

java - 在 Android 中阅读谷歌图书

java - 将 AES Java 解密代码移植到 Node.js

java - 使用 passPhrase 、saltValue、passwordIterations、initVector、keySize 进行 sha1 加密

java - Java类中RSA加密的问题

java - 将图像存储在数据库与文件系统中

android - Intraweb HTML5 应用程序、git 和数据库——它们融合了吗?

android - Gradle改造未能解决

android - 将内容分享到 LinkedIn 时出错