2013-03-04 29 views
2

我存儲一些敏感數據。數據被分成幾部分,我希望對每個部分都有單獨的接口。假設我有1000個文件。我想通過相同的對稱加密算法來加密每個文件。 我猜想,黑客擁有1000個密碼時,打破密鑰比他只有一個密碼更容易,所以我認爲我應該爲每個文件使用單獨的密鑰。 我的問題是如下:單獨的數據加密

我應該爲每個文件使用單獨的密鑰嗎?

如果我應該存在1000個密鑰存在問題。所以我想要一個祕密密鑰,並使用一些我自己的算法從密鑰中爲每個文件計算單獨的密鑰。這是個好主意嗎?

回答

3

如果您考慮被動對手,並使用CPA強密碼(如AES),則僅對所有文件使用一個密鑰就足夠了。假設攻擊者知道你使用的密碼,甚至知道明文,他不能以不可忽略的概率重建密鑰。 Here是更詳細的答案。

如果你也考慮活躍的對手(它可以代替密文),你應該使用Authenticated Encryption。但據我瞭解,這不是你的情況。

所以我想有一個祕密密鑰,並使用一些我自己的算法來計算每個文件從密鑰的單獨密鑰。這是個好主意嗎?

一般來說,開發你自己的算法或方案是個壞主意。你可以很容易地在算法或實現中發現一些看不見的錯誤,並且你的數據會很脆弱。最好使用衆所周知的算法和實現,由許多人進行同行評審,並證明是安全的。