是否有任何加密方案/协议可以让我加密文件,使其公开可用,但确保只能在特定日期后解密?
我认为如果没有受信任的权威(公证人),这几乎是不可能的。或者有什么办法吗?
我受到“安全触发器”的启发,这是一种在特定事件发生后解密数据的方案。但是这个“触发事件”只有作者自己知道。
相比之下,我对一种加密方案感兴趣,该方案可以在公开的特定日期(或之后)解密数据。
是否有任何加密方案/协议可以让我加密文件,使其公开可用,但确保只能在特定日期后解密?
我认为如果没有受信任的权威(公证人),这几乎是不可能的。或者有什么办法吗?
我受到“安全触发器”的启发,这是一种在特定事件发生后解密数据的方案。但是这个“触发事件”只有作者自己知道。
相比之下,我对一种加密方案感兴趣,该方案可以在公开的特定日期(或之后)解密数据。
时间是相对的。密码学生活在抽象计算机的空灵世界中:有些机器可以进行操作。更大的机器可以更快地完成操作。没有你可以强制执行的时钟;物理时间没有意义。换句话说,如果攻击者想要更早地获取您的文件,他只需购买一台速度更快的计算机。
现在还是可以努力的。您可能对时间锁定谜题感兴趣。这个想法是能够制作一个易于构建但打开成本很高的问题实例,其中成本是可配置的。Rivest、Shamir 和 Wagner 找到的解决方案(据我所知,这是迄今为止已知的唯一实用的时间锁定谜题)的工作方式如下:
棘手的一点是,总的来说,计算y的成本与w成正比:它是一系列w模平方。如果w在数十亿或更多的范围内,那么这将是昂贵的。但是,当p和q因子已知时,可以计算e模p-1和q-1,这会短很多,并且可以在几毫秒内完成y的计算。
当然,这并不能保证在特定日期发布;相反,它保证了解开谜题的最小努力。努力和日期之间的转换取决于攻击者的努力程度......
上面表达的时间锁谜题有一些很好的特点,特别是不受并行性的影响。如果您尝试破解一个这样的难题并且您有两台计算机,那么您将不会比使用单台计算机更快。
在有点类似的情况下,这个时间锁难题用于Makwa 密码散列函数,是正在进行的PHC的候选者。在密码散列中,您需要可配置的打开工作(尽管在更短的时间范围内,通常不到一秒)。
如果您不想让第三方参与,您(加密文件的一方)可以简单地在目标日期释放密钥以解密文件。
我已经看到为视频游戏发布做到了这一点。客户可以提前下载游戏的加密副本。然后,当发布时间到来时,游戏公司就简单地发布密钥。这样,人们可以在游戏发布后立即开始玩,而无需等待下载。
小心地将广播解密密钥的宇宙飞船放置在黑洞周围的轨道上。重力的拉动会将消息延迟到适当的时间。
或者你可以像普通人一样,将关键的广播宇宙飞船放置在距离目标观众适当光年的地方。
使用秘密共享将私有加密密钥分成 N 个部分,参数化以允许用 K 个或更多部分重建密钥,其中K <= N
. 最好使用 CRM,如下页所述:
http://en.wikipedia.org/wiki/Secret_sharing
然后将每个部分发送到同意在未来给定日期发布的独立服务。
最多K-1
的服务可以通过提前发布来“缺陷”而不影响方案。
最多N-K
的服务可能无法完全发布,也不会影响方案。