如果您考虑使用被动对手并使用CPA强密码(如AES),则仅对所有文件使用一个密钥就足够了。假设对手知道你使用的密码,甚至知道明文,他也无法以不可忽略的概率重建密钥。 这里 是更详细的答案。
如果您还考虑使用活动对手(可以替换密文),则应使用经过身份验证的加密。但据我所知,这不是你的情况。
所以我希望有一个密钥并使用我自己的算法来计算密钥中每个文件的单独密钥。这是好主意吗?
一般来说,开发自己的算法或方案是个坏主意。您可以轻松地在算法或实现中发现一些看不见的错误,并且您的数据将容易受到攻击。最好使用众所周知的算法和实现,并由许多人进行同行评审,并证明是安全的。