是否可以使用加密创建“时间胶囊”?


14

我想创建一个数字时间胶囊,它将在一段时间内保持不可读状态,然后变得可读。我不想依靠任何外部服务,例如,将密钥保密,然后在需要的时间将其公开。这可能吗?如果不是,是否有某种可能的证明?

一种策略将基于对未来计算能力的预测,但这是不可靠的,并且会假设将多少资源应用于任务。


1
如果可以确保设备未被篡改,则可以使用(轻度)具有已知半衰期的放射性组件,因此只有在放射性充分下降后才能授予访问权限。
拉斐尔

Answers:


5

这个问题被称为定时释放加密。有关一些参考/介绍,请参见:

我们的动机是“定时释放加密”的概念,其目标是对消息进行加密,以便在经过预定时间之前,任何人甚至发件人都无法解密消息。目标是“向未来发送信息” ...


7
您至少可以总结一下论文吗?
svick

5
论文对这两种“自然”方法进行了深入研究:要么使用受信任的第三方,要么要求接收器执行并行度不高且大约需要正确时间的计算。
a3nm '04

1

我提出了部分答案,但并非严格地说是针对所述问题的答案。我怀疑这可能会尽可能接近,但我不确定。

首先,我们使用解密所需的密钥对胶囊进行编码。

我不知道如何绕过某种拥有密钥的权限,但是可以分配该功能。如果我们将密钥分解为n个片段,那么我们可以要求n个权威机构持有该片段。然后可以在适当的时候全部发布其作品,以实现密钥的重建。

此解决方案容易受到n个授权机构中的任何一个不可用的影响,但是使用n个编码中的m-out-of-n,我们可以将文件分发给n个授权机构,而只要求m即可发布它们。

即使在这种情况下,一定数量的具有正确时钟的授权机构也必须提供正确的密钥管理服务。是否可以削弱上述假设,而不是上面建议的n分之一?


1

我认为这是一种可行的方法:

使用首选的加密方案并使用随机生成的密码短语生成一组密钥。诀窍在于密码短语。密钥是已知的,但是我们将使用密码短语创建时间胶囊。

选择一个密码短语,这样,如果我们从中创建一个加盐的哈希,使用当今的计算能力,在已知盐和哈希值的情况下,计算密码短语将花费大约“ n”年的时间。如果我们要创建一个20年的胶囊,请从现在起20年后估算我们的计算能力,并创建一个哈希,该哈希将由用户或超级计算机在20年内计算一个月,具体取决于胶囊的目标。如图所示,对于一个20年的时间胶囊,megacorp将在15年内将其解密,或者将在20年内由用户解密。

使用具有随机密码短语的密钥加密数据,存储密钥和散列的密码短语,而不存储实际的密码短语。现在保存数据,并且在将来的某个时候,您将有望拥有恢复数据的计算能力!


0

我不是密码学家,而只是一名工程师,所以我的解决方案比物理方案更具计算性,但无论如何,让我尝试一下。我提出以下程序:

  1. 生成非对称密钥对
  2. 使用公钥加密明文消息
  3. 将私钥存储在微控制器的易失性存储器中,并使其仅在经过一定时间后才输出密钥。
  4. 销毁所有其他私钥副本
  5. 将密文和微控制器捆绑在一起,然后等待。

于是出现了一个显而易见的问题:当您仅将纯文本消息存储在芯片中时,为什么还要担心加密?对此的答案是,这样,明文可以任意长,而不会影响芯片的存储容量,因为仅固定长度的密钥存储在此处。另外,您可以保留公共密钥的副本,稍后再使用它生成更多消息,然后将其同时解锁。就是这样。

为了使其更加安全,您可以将光传感器安装到芯片上,然后将组件封装在防光的外壳中(或将开关安装在门上,或使用其他防篡改机制),然后将传感器暴露在光线下将触发密钥擦除。这是为了防止使用诸如蚀刻的侵入性方法来获取密钥。某些芯片的硅层结构也使得通过在内存上方放置其他必不可少的电路来掩盖单个位,几乎不可能进行侵入式读取。


如果有内部时钟,则有人可能会加快或删除它。无论如何,这是不好的。
Evil

@Evil我想到了这一点,这真的不是问题,因为芯片在变得不稳定之前只能超频很多,因此这样做可能会丢失密钥。例如,大多数8位AVR将以高达20 MHz的速度运行,可以超频至约25 MHz,但在此之上,发生崩溃的机会会大大增加。
programagor

1
您正在重新发明防篡改的硬件 ……要做好,尤其是长期使用,很难完成。
DW
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.