我想在公共可访问的服务,amazon,bittorrent,ipfs等上存储一个大文件。 我想要加密这个文件。 我知道通常的做法是使用复杂的密码对称地加密文件,然后使用收件人公钥加密密码,但我有一个用例,我需要将密钥传递给每个收件人,所以当密码泄露给公众我知道谁做到了。
所以我想到的是使用AES CBC加密整个文件然后将其拆分为块并仅非对称地加密第一个块。
这个想法有什么逻辑错误吗?应该是第一个块的最小大小(以字节为单位或整个文件的百分比),因此可以安全地说,如果不解密第一个块,则无法解密剩余的块。
感谢您的回答 我将详细介绍用例。
我打算让用户使用我的平台在分散存储上放置(销售)文件(我无法控制节点 - 假设它是全局ipfs)。为了符合规定文件必须加密,我必须有办法阻止访问它。 因为如前所述,我无法从所有节点中删除文件,我认为不对称地加密文件,但这需要为每个收件人准备一份单独的副本,并且需要花费很多时间。
这就是我想出的只加密文件的一部分的想法,而且这将由重新加密代理完成,因此卖方只需要准备重新加密密钥和过多的数据量在网络上将是最小的(每个买家只有一个分片)。
当有关当局接近我说我正在分享非法内容时,我可以告诉他们文件是加密的,而且下载它的唯一人就是这些公钥所有者。
答案 0 :(得分:1)
显然有些事情被误解了
有一个用例我需要将密钥传递给每个收件人,所以当密码泄露给公众时,我知道是谁做的。
让我们假设文件是使用单个symetric加密密钥(ypur情况下的密码)加密的。您可以使用收件人加密密码'个人公钥,但一旦密码被释放,您无法找出谁泄露/释放它。
将其拆分为块并仅非对称地加密第一个块
没有任何意义/理由(至少我没有找到任何理由为什么这会帮助你实现规定的用例)
注意:使用混合加密的原因是非对称加密(RSA)仅可加密有限数量的数据(例如对称加密密钥)
答案 1 :(得分:1)
通过经典密码术无法解决您的问题
当我们看一下你的问题时,人们可能会认为你的用例在密码学中经常出现:机密性,但它不是
加密环境中的机密性意味着:帮助n方保守秘密
这意味着,所有原始的n方都有共同的利益来保守这个秘密...
在你的情况下,你怀疑至少有一方没有分享这种兴趣...这是经典的加密尝试无法解决你的问题......
付费电视公司很难学到这一点......他们的解决方案似乎是更快地替换内容密钥,而不是一组胭脂演员可以共享实时解密所需的密钥,并通过加密内容密钥来管理对内容密钥的访问。组密钥,它们在所有合法客户端上进行分区和分发......只有"工作" (对于大型动态内容流,而不是静态文件,请阅读"不是真的,如果你投入足够的精力和#34;)您的用例听起来更像是数字水印和指纹识别