基于 GPU 加密的时光机

146 天前
 iqoo

发送者对消息加密后,任何人都无法立即解密,必须经过预定的时间才能解开,从而将消息发送到未来。

之前分享过一个简易版,那个版本加密需要花费和解密同样的时间,因此几乎没有可玩性。

最近更新了下算法,加密过程支持多线程,并且支持 GPU 加速,从而可利用显卡的并行能力提速几十到几百倍。当然,解密过程仍然只能 CPU 单线程,确保解密不会被加速。具体原理可参考文档。

https://github.com/EtherDream/timelock/blob/main/README-zh.md

不过这个版本也有个缺陷,由于加密结果需要保存每个线程的种子信息,而 GPU 通常有几千个线程,导致结果会非常大。即使降低一些安全性用较短的种子,结果也有 10KB 甚至更长,导致通过 URL 分享很困难,至少在聊天软件无法分享,只能通过文章或论坛里的超链接分享。

另外出于兼容性目前仍使用 WebGL2 的 GPGPU 方案,之后再改成 WebGPU 。(不知 WebGPU 稳定性方面是否更高,目前 WebGL2 加密时进行频繁界面操作经常会崩溃)

如果算法和程序没问题的话,之后再约定时间点发一些拼 CPU 性能的活动,第一个解密成功的可以领取奖励,鼓励大家升级 CPU 硬件~

2139 次点击
所在节点    程序员
10 条回复
Satansickle
146 天前
使用场景是啥啊?
araaaa
146 天前
vdf 吗
Hancock
146 天前
@Satansickle 遗嘱
InkStone
146 天前
理念挺有意思的,用的跟 bitcoin 一样的 PoW 机制。

不过实用性就差太多了……我不可能真放一个 CPU 在那里跑三十年就为了立遗嘱啊
zhwq
146 天前
idea 先申请专利
iqoo
146 天前
@Satansickle 本地版是用来锁钱包私钥的,那个不管锁几年都可以瞬间解密。这个浏览器版的纯属好玩而已,即使锁几天用高端显卡加密也要好久~
iqoo
146 天前
@Satansickle @iqoo 写错了,是瞬间加密。
Satansickle
146 天前
@Hancock 用来做遗嘱还得预测死期,有点难啊
coolfan
146 天前
👍设定的时间过长在解密的时候岂不是也要等近似的时间。之前也想过这个”指定时间后解密“的操作,没啥头绪
iqoo
146 天前
@araaaa 有点类似,不过用串行 hash 的方案验证成本太高

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1061501

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX