2013-03-04 63 views
2

我存储一些敏感数据。数据被分成几部分,我希望对每个部分都有单独的接口。假设我有1000个文件。我想通过相同的对称加密算法来加密每个文件。 我猜想,黑客拥有1000个密码时,打破密钥比他只有一个密码更容易,所以我认为我应该为每个文件使用单独的密钥。 我的问题是如下:单独的数据加密

我应该为每个文件使用单独的密钥吗?

如果我应该存在1000个密钥存在问题。所以我想要一个秘密密钥,并使用一些我自己的算法从密钥中为每个文件计算单独的密钥。这是个好主意吗?

回答

3

如果您考虑被动对手,并使用CPA强密码(如AES),则仅对所有文件使用一个密钥就足够了。假设攻击者知道你使用的密码,甚至知道明文,他不能以不可忽略的概率重建密钥。 Here是更详细的答案。

如果你也考虑活跃的对手(它可以代替密文),你应该使用Authenticated Encryption。但据我了解,这不是你的情况。

所以我想有一个秘密密钥,并使用一些我自己的算法来计算每个文件从密钥的单独密钥。这是个好主意吗?

一般来说,开发你自己的算法或方案是个坏主意。你可以很容易地在算法或实现中发现一些看不见的错误,并且你的数据会很脆弱。最好使用众所周知的算法和实现,由许多人进行同行评审,并证明是安全的。