有没有一种方法可以使用AES SH-256进行时间锁数据加密?

时间:2019-04-14 17:44:47

标签: c# encryption cryptography aes bitcoin

是否可以使用 Timelock 功能加密文件中的数据? Timelock 功能将充当网守,因此解密将不会继续进行,并且直到将来特定(灵活)的DateTimeOffset才会显示数据?

用户将需要等到将来的某个日期,然后程序将通过签署微交易( Timelock 通过DateTimeOffset自动解密以及区块链上的交易解锁)自动解密自身。

要求:

  • 理想情况下, Timelock DateTimeOffset /交易解锁应来自外部来源(比特币区块链)。
  • TimeLock 功能不应是简单的 if / else 子句,该子句在进行反编译时很容易被破坏。
  • 程序反编译也不应显示解密密钥。

我正在考虑使用:

  

我可以通过以下方式使用比特币区块链锁定和解锁资金操作吗?   签名作为机制来加密/解密文件数据?

谢谢!

1 个答案:

答案 0 :(得分:3)

简短的回答是“否”,而不是您尝试这样做的方式。

一旦密文存在,它就不会改变。这只是一条数据。您无法制作在给定时间更改的数据。您可以制作一个根据时间而有所不同的程序,但是如果运行该程序的人可以通过控制时钟或修改程序的执行时间来给它一个不同的时间,那就不好了。

密码学是基于知识的。如果某人无法解密某些东西,那是因为他们缺乏知识,即解密密钥的知识。有人如何在给定的时间学习解密密钥?

唯一的解决方案是密钥托管:将密钥提供给受信任的第三方,并指示仅在给定时间释放密钥。

有一种方法可以在没有受信任的第三方的情况下进行时间锁定,但是从本质上讲,这是非常近似的。您无法设定将在确切日期解锁的时间锁定。您可以设置时间锁,如果幸运的话,可以在给定的十年内解锁。这是通过提供一些可以从中计算出解密密钥的数据而实现的,但是具有很高的计算成本。显然,解锁所需的时间取决于攻击者愿意购买多快的计算机。

有关更多信息,请参见Time capsule cryptography?Time Based encryption