确保文件只能在特定日期之后才能解密

信息安全 加密 协议
2021-08-28 06:22:53

是否有任何加密方案/协议可以让我加密文件,使其公开可用,但确保只能在特定日期后解密?

我认为如果没有受信任的权威(公证人),这几乎是不可能的。或者有什么办法吗?

我受到“安全触发器”的启发,这是一种在特定事件发生后解密数据的方案。但是这个“触发事件”只有作者自己知道。

相比之下,我对一种加密方案感兴趣,该方案可以在公开的特定日期(或之后)解密数据。

4个回答

时间是相对的。密码学生活在抽象计算机的空灵世界中:有些机器可以进行操作。更大的机器可以更快地完成操作。没有你可以强制执行的时钟;物理时间没有意义。换句话说,如果攻击者想要更早地获取您的文件,他只需购买一台速度更快的计算机。

现在还是可以努力的。您可能对时间锁定谜题感兴趣。这个想法是能够制作一个易于构建但打开成本很高的问题实例,其中成本是可配置的。Rivest、Shamir 和 Wagner 找到的解决方案(据我所知,这是迄今为止已知的唯一实用的时间锁定谜题)的工作方式如下:

  • 生成随机 RSA 模数n = pq,其中pq是大素数(并且p = 3 mod 4 和q = 3 mod 4)。
  • 生成一个随机的xn
  • 对于某个整数w,定义e = 2 w,并计算y = x e mod n
  • 用一些散列函数对y进行散列,产生一个字符串K,您可以将其用作密钥来加密您想要时间锁定的文件。
  • 发布xnw和加密文件。丢弃pqyK

棘手的一点是,总的来说,计算y的成本与w成正比:它是一系列w模平方。如果w在数十亿或更多的范围内,那么这将是昂贵的。但是,当pq因子已知时,可以计算ep-1q-1,这会短很多,并且可以在几毫秒内完成y的计算。

当然,这并不能保证在特定日期发布相反,它保证了解开谜题的最小努力。努力和日期之间的转换取决于攻击者的努力程度......

上面表达的时间锁谜题有一些很好的特点,特别是不受并行性的影响。如果您尝试破解一个这样的难题并且您有两台计算机,那么您将不会比使用单台计算机更快。

在有点类似的情况下,这个时间锁难题用于Makwa 密码散列函数,是正在进行的PHC的候选者。在密码散列中,您需要可配置的打开工作(尽管在更短的时间范围内,通常不到一秒)。

如果您不想让第三方参与,您(加密文件的一方)可以简单地在目标日期释放密钥以解密文件。

我已经看到为视频游戏发布做到了这一点。客户可以提前下载游戏的加密副本。然后,当发布时间到来时,游戏公司就简单地发布密钥。这样,人们可以在游戏发布后立即开始玩,而无需等待下载。

小心地将广播解密密钥的宇宙飞船放置在黑洞周围的轨道上。重力的拉动会将消息延迟到适当的时间。

或者你可以像普通人一样,将关键的广播宇宙飞船放置在距离目标观众适当光年的地方。

使用秘密共享将私有加密密钥分成 N 个部分,参数化以允许用 K 个或更多部分重建密钥,其中K <= N. 最好使用 CRM,如下页所述:

http://en.wikipedia.org/wiki/Secret_sharing

然后将每个部分发送到同意在未来给定日期发布的独立服务。

最多K-1的服务可以通过提前发布来“缺陷”而不影响方案。

最多N-K的服务可能无法完全发布,也不会影响方案。