在Android设备上本地存储公钥

时间:2017-11-07 23:59:43

标签: java android encryption encryption-asymmetric

我想在我的应用程序中使用A对称加密 该应用程序基本上拍照并将其发送到服务器,我还没有编写任何代码,我只是将其作为POC进行处理。
我遇到了一个我以前解决过的问题,但现在又让我感到困惑 就像我说的,我想使用非对称加密,其中私钥位于我的服务器上,公钥存储在本地并随每个Android应用程序“运送”(包括在其资源中的I.E.)。我想将公钥与ByteOutputStreamEncryptedOutputStream一起使用,并将已加密的信息发送到服务器以便在现场进行解密。
我的问题基本上是加密我发送到服务器的数据的过程有多安全?显然我明白没有完全安全的东西,但这是一个很好的做法,是否有某种行业标准?

1 个答案:

答案 0 :(得分:-1)

来自this answer的关于非对称加密的copypaste。

目前最大的破损RSA密钥是768位模数,需要付出巨大的努力(四年,真的是大脑)。虽然鼓励使用更大的密钥,但1024位密钥被认为可用于短期安全性。 2048位密钥是合适的。使用两倍大的密钥意味着签名或解密工作量增加8倍,因此您不希望过度使用它。有关RSA密钥长度如何与安全性相关的调查,请访问此站点。

超过256位曲线的ECDSA已经实现了'#34;牢不可破的"安全级别(即与具有128位密钥的AES或针对冲突的SHA-256大致相同的级别)。注意,素数场上有椭圆曲线,二进制场上有曲线;哪种类型最有效取决于所涉及的硬件(对于类似大小的曲线,PC将更喜欢主场上的曲线,但是专用硬件将更容易使用二进制字段构建;更新的Intel和AMD处理器上的CLMUL指令可能会改变)。