是否存在一种方案可以在指定时间解锁压缩文件?
刚才在解压一个 zip 的时候在想,压缩文件可以添加密码,可以防止非法获得文件的人解压。
但是如果里面放了一些存在实效性的内容,过了某个日期后,是否被无关人获得便无所谓了;或者说就是希望在某个时间后,文件可自动解锁
不纠结于 zip 、rar 等格式,只解决“指定时间后”便可以通畅访问文件。
刚才在解压一个 zip 的时候在想,压缩文件可以添加密码,可以防止非法获得文件的人解压。
但是如果里面放了一些存在实效性的内容,过了某个日期后,是否被无关人获得便无所谓了;或者说就是希望在某个时间后,文件可自动解锁
不纠结于 zip 、rar 等格式,只解决“指定时间后”便可以通畅访问文件。
那么看起来这个功能等价于
到了指定时间服务器直接返回密码
或许就不存在这种方案吧,是悖论。
做不到的根本原因应该是虚拟物体无法感知时间流逝, 导致用时间约束一个文件的行为变得不可能
文件就如同数字一样是个虚拟的概念, 不受时间的约束
其中有个答案提到了这么一篇文章: https://www.gwern.net/Self-decrypting%20files
文章比较长,只看了个大概,有不少相关的论文对这个问题做过研究。
主要的思路可能还是从密码学角度对复杂问题的计算耗时进行估计,然后通过对这个复杂问题的难度进行控制,从而控制时间。
其中提到了一些尝试利用区块链与智能合约的技术,一个是区块链类似的链式 hash 对数据进行加密,以防止被分布式破解,这块没太看懂,可能理解有误。
一个是利用智能合约从经济惩罚的角度进行,通过在多个持有私钥的人存储一定加密货币到智能合约,如果有人提前泄漏则除了这个私钥存入的货币被销毁,其他人的原路返回,在时间到期之后所有人需要公开私钥以赎回货币并可以附带一些奖励,如果到期不公开则存入的货币将被销毁。
因为上面的文章太长,而且提到了很多东西,如果理解有误欢迎指出。有时间了再仔细看一遍。
我也是想到了这个,这个概念可以叫「密码学时间胶囊( Time Capsule Crypto-Puzzle )」,实际上 RSA 算法的发明者之一就在 1999 年发布了这样一个时间胶囊:
https://people.csail.mit.edu/rivest/lcs35-puzzle-description.txt
最后在 20 年后的 2019 被人解开:
https://en.wikipedia.org/wiki/LCS35
要加密的区域,有个解密服务进程一直运行(也可以做成 cron 任务),定时检测那个云服务器上的 Web 输出的哈希值, 与自己预设的时间密钥运算后的哈希值一致,则自动进行解密。