是否可以使用比特币矿工来解密文件/通信?

信息安全 加密
2021-08-11 21:18:59

我的理解是矿工解决复杂的算法(我相信是 sha256)并接收比特币。凭借所有这些矿池从矿工那里获得的哈希算力,他们难道不能使用这些资源来解密一堆加密信息吗?

2个回答

不。

现代 ASIC 矿工高度专业于比特币的“挖掘”任务:通过蛮力搜索生成 SHA-256 哈希的部分原像(准确地说,一个值,在哈希时会产生具有给定数量的前导零的哈希)。

打破基于 SHA-256 的安全性需要完整的原像(即,在散列时给出所寻求的确切散列值的值),而世界的集体采矿能力对于此而言太低了许多数量级(当前的散列率是每秒1.33×10 17 个哈希值,足以每 300,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 年生成一个完整的原像)

由于搜索空间更小,可能会重新利用比特币挖矿设备来破解 SHA-256 密码哈希。集体处理能力可以在一秒钟内破解任何八位字符的密码;十个字符的密码可能在一两个小时内被破解。但是,SHA-256 是一种不常见的密码散列:大多数人使用 crypt、bcrypt 或 MD5。采矿设备过于专业,无法攻击这些或任何其他加密算法。

矿工使用的工具是专用电路 (ASIC),它非常擅长一项任务:在某些输入上计算 SHA-256。SHA-256 是一种加密散列函数,而不是加密函数。

能够计算大量 SHA-256 仅在以下情况下对攻击者有用:

  • 攻击者希望获得一些秘密值S ;
  • S是可能值空间的一部分,该空间小到可以用现有技术枚举(意思是:S不是随机的 128 位密钥;相反,S是普通人类用户可以记住的密码);
  • 并且攻击者可以访问值f(S),其中f()是一个主要使用 SHA-256 的函数。

因此,在实践中,用于比特币挖掘的 ASIC可能是尝试破解已使用 SHA-256 散列的密码的好工具,或者其大部分结构都依赖于 SHA-256 的衍生物(例如PBKDF2)。通常的攻击者通常依赖 GPU,但 ASIC 应该提供更好的效率/成本比(否则,比特币矿工也会使用 GPU……)。

用于比特币挖掘的 ASIC 在做 SHA-256 以外的任何事情时都不好,因此使用 PBKDF2(即使用 SHA-1,而不是 SHA-256)的“正常”方式不受影响。bcrypt 和其他密码散列函数也是如此。


要点:

  • 比特币 ASIC 表明,对于给定的硬件构建和运行预算,与使用通用硬件(即 PC 和 GPU)相比,从专用电路 (ASIC) 获得更多的计算是可能的。然而,ASIC 有巨大的一次性开销,当你设计电路,然后去代工厂继续制造一百万个芯片时。经济上,成本效益都在规模化;必须制造和运行大量 ASIC 才能达到高效率/成本比。

  • 专用电路是专用的,它们不能轻易地重新定位。当试图破坏基于 SHA-1 的算法时,SHA-256 的 ASIC 没有任何价值,更不用说任何基于 AES 的算法了。从经济上讲,通用 CPU 和 GPU 仍然很便宜,因为它们是由数百万人生产的,因为它们是通用的,因此可以用于多种任务。

  • 蛮力枚举仅适用于位于足够小的可能值空间中的值。地球上所有的比特币 ASIC 都无法帮助你对 128 位对称密钥进行暴力破解。