过渡到新的加密算法

时间:2014-12-03 01:40:41

标签: ios objective-c encryption cryptography migration

如何将加密数据转换为iOS应用中的新加密算法/设置?我并没有问到如何使用代码完成此操作,这是一个概念性问题

目前有数千人使用我的iOS应用加密他们的数据。我发现了当前加密方法的问题。为了解决这些问题,我需要实现改进的加密系统(详见下文)并将当前用户转移到新系统。

我不确定如何在不提示用户输入私钥,解密和重新加密新系统的情况下将用户迁移到新系统。理想情况下,这种转变将尽可能无缝且不可见。如果转换无效,我担心用户会丢失数据或感到沮丧。

旧加密方法

  • AES 256位
  • CBC模式

新加密方法

  • AES 256位
  • CBC模式
  • 使用PBKDF2进行密码拉伸
  • 密码腌制
  • Random IV
  • Hash HMAC

关于如何在这两个AES加密系统之间进行转换的任何想法?

1 个答案:

答案 0 :(得分:3)

当前的加密密钥是否良好?如果是这样,你可以保留它们并用新的键偏差功能包装它们。这允许用户更改其密码而无需重新加密数据。如果密钥太弱,则必须解密并重新加密数据。

我看到“密码腌制”和“哈希HMAC”,您应该更多地考虑PBKDF2从用户提供的密码/密码短语创建加密密钥。使用校准功能选择轮数。

如果你正在考虑你有一个版本指标,如果是这样的话,你可以使用新的密钥方案版本加密新数据并具有向后兼容性。

我想知道Base64编码在加密方面做了什么,而不是通过无法处理8位字节(如JSON和XML)的接口传输加密数据。