【发布时间】:2019-12-25 12:25:53
【问题描述】:
我想开发一个使用 RSA 加密数据的 Android 应用。但是,在手机丢失的情况下,如何将 RSA 密钥对恢复到新手机以处理加密数据?我可以在新手机中重新生成相同的 RSA 密钥对吗?
【问题讨论】:
-
如果答案让你满意,你觉得它有用吗?
标签: android encryption cryptography rsa
我想开发一个使用 RSA 加密数据的 Android 应用。但是,在手机丢失的情况下,如何将 RSA 密钥对恢复到新手机以处理加密数据?我可以在新手机中重新生成相同的 RSA 密钥对吗?
【问题讨论】:
标签: android encryption cryptography rsa
对于这种情况,您需要实现一个导出选项。您还可以像在 OpenSSL 中一样加密从密码生成的私钥。
如果 RSA-keygen 是随机的并且必须是随机的,则无法重新生成。否则,这将是不安全的,因为我们假设攻击者也知道您的 keygen 方法。
您似乎将加密数据存储在可以恢复的地方。你也可以在那里存储加密的私钥。
请记住,RSA 不适用于加密。它会很慢。对于文件加密,您需要一个好的密码和一个像 PBKDF2 和 Argon2 这样的密钥生成算法。所以你只需要记住你的密码来解密。然后,您可以将 AES-GCM 与生成的密钥一起使用。 AES-GCM 提供机密性、完整性和身份验证。
一个好的做法是使用成熟的格式OpenPGP message format,它也支持基于密码的密钥加密。通过这种方式,您不需要滚动自己的密码学,也不应该这样做。使用该格式将防止您自己的设计错误。这种格式的好处是可以使用外部工具进行解密。
【讨论】: