最流行的计算机算法之一可能是SHA-256哈希函数。它是目前最流行、最强的加密函数之一。它非常强大,被用于比特币等加密货币。这是一个牢不可破的函数,由此产生的问题价值数千亿美元。那么,是什么让这个哈希函数不可攻破呢?有几个因素我们需要讨论一下。首先,我们来看看SHA-256哈希函数。
SHA-256
SHA-256(安全哈希算法-256)是一个确定的单向哈希函数。它是美国国家安全局开发的SHA-2加密哈希函数的成员之一。到目前为止,它的256位密钥从未被泄露过。以前SHA-1是用于加密的散列算法。但是,随着时间的推移,SHA-1逐渐被弃用,它也不再被认为是安全的。所以SHA-2就被开发出来了。2016年,SSL证书行业向SHA-2过渡,SHA-2成为新标准。SHA-256是SHA-2加密哈希函数的成员,从未被泄露。那么,它为何如此安全呢?我们马上就知道了。
它是如何工作的?
哈希函数只是将大量的信息转换成较小的随机数。SHA-256算法从给定的大随机数中生成一个小的随机数。但是,当相同的大数值通过哈希函数传递时,较小的数值总是相同的。SHA-256非常安全,即使我们只改变了输入中的一位数字,输出也会完全改变。SHA-256返回一个十六进制表示,256位表示64个十六进制字符。无论输入多长,它总是返回64个字符的十六进制字符串。还记得我说过SHA-256是一个确定的单向哈希函数吗?这意味着,它是一个数学函数,接受任意大小的输入,但返回固定大小的输出,就像文件或字符串的数字指纹。它是确定性的,因为相同的输入总是产生相同的输出。这是一种方法,因为很难向后执行操作,也就是说,从输出返回输入字符串。Output: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Input: Hello
Output: 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
不管它的长度是多少,它都会返回一个64个字符的字符串。而且,即使是大写一个单词也会完全改变哈希值,我们不可能通过哈希函数,猜出" hello "和" Hello "很相似。现在,您可以向哈希函数提供任何类型的输入,例如任意长度和大小的图像、文本、视频,它将生成精确为64个字符的输出。这就像是任何文件或字符串的数字指纹。
它的安全性如何?
获得相同哈希号的唯一方法是输入相同的文件或字符串。即使是一个小的调整也会完全改变输出。这就是它如此安全的原因。你可以用这个算法尝试一些有趣的东西。你可以随便拍一张照片,通过SHA-256函数,输出的数字可能是人类历史上从未见过的。
千亿美元的问题是什么?
没人能找到逆转算法的方法。记得我说过这是单向的吗?这是因为几乎不可能逆转,至少在今天是这样。建立一个可以逆转SHA-256哈希的算法需要数十亿美元。因为如果你能逆转SHA-256哈希,你就能比地球上任何人都更快地挖掘比特币。要挖掘比特币,你必须找到一个输入,它的输出是SHA-256,开头有70多个0。由于没有已知的公式来做到这一点,我们唯一的方法是通过蛮力计算。它只是尝试一系列不同的输入,直到我们找到一个可行的答案。找到相同的哈希输入是不可能的(我将在后面解释),但是要挖掘比特币,您只需要匹配它的一小部分。所以,这是可能的。通过这种方式,在大约10分钟内,某个人在某个地方赚了12.5个比特币,差不多40万美元(截止2月1日价格)。现在,像这样想,如果你有一个算法来找到一个输入,它将生成与给定哈希匹配的输出。你很快就会赚上不可估量的财产。我们已经建立了尽可能快地运行SHA-256算法的特殊机器。在整个世界,比特币矿工每秒运行60,000,000,000,000哈希!