在我的Android应用程序中,我需要安全地存储RSA,ECDH,AES和其他密钥。它们将使用用户输入的密码进行加密/解密。我的选择是:android keystore,bouncy castle UBER keystore,加密并存储在共享首选项中。 Android密钥存储不是一个选项,因为它不使用自定义密码加密密钥。 UBER似乎是一个很好的解决方案,但是我在将密钥存储在那里时遇到了一些问题,所以我只想用AES GCM加密它们并加入共享首选项,这会不那么安全吗?或者甚至更安全,因为AES GCM优于充气城堡使用的Twofish?
答案 0 :(得分:0)
在GCM模式下使用AES-256加密然后存储在共享首选项中应该没问题。 AES-256是NSA Suite B规范的一部分,与对称加密一样好。 (https://en.wikipedia.org/wiki/NSA_Suite_B_Cryptography)该链接记录了这样一个事实,即美国国家安全局希望尽快发布新的套件建议,以解决对加密的量子攻击 - 但在近(3-5)年内这种攻击几乎不可行术语