哈希值是什么意思(通俗易懂区块链哈希算法)
哈希值
公共加密中使用的密钥基于哈希值。这是一个使用散列算法从基本输入数字生成的值。了解散列值的重要一点是,如果不知道用于形成散列值的数据,几乎不可能找到原始输入数字。
教程点
这是散列如何工作的示例:
输入数:365,258
哈希算法:输入# x 124
哈希值:45、291、992
哈希算法
散列算法是一种加密散列函数,它将随机大小的数据映射到特定大小的散列。尽管它们被设计成一种无法反转的单向函数,但许多散列算法已及时妥协。
加密散列在 IT 中主要用于数字签名、密码存储、文件验证系统、消息验证代码和其他类型的验证。
它们还可以用于索引哈希表中的数据、指纹识别、识别文件或检测重复项。基本思想是使用一种确定性算法,每次接受一个输入并生成一个固定长度的字符串。因此,相同的输入总是会产生相同的输出。
尼诺克鲁德勒
散列算法的一个问题是冲突的确定性。这是因为散列代表一个固定长度的字符串,这意味着对于每个可以想象的输入,还有其他可能的输入将生成相同的散列。
如果攻击者成功地按需创建冲突,他就可以将恶意文件或数据当作具有正确的哈希值并作为合法文件或数据传递。一个好的散列函数应该使攻击者极难生成散列为相同值的输入。
计算不应该太高效,因为这使得黑客更容易人为地计算碰撞。哈希算法必须能够抵御“原像攻击”。具体来说,计算为复制生成哈希的值而采取的确定性步骤的回溯应该是极其困难的。
理想的密码哈希函数应满足以下条件:
对消息所做的每一次修改都应该改变散列值。任何类型的更改都应该导致完全不同的散列。这种现象称为雪崩效应。
流行的哈希算法
MD5
MD5是最著名的哈希算法之一,在它变得无效之前被广泛使用。由于其广泛的漏洞,它已被攻破。在 MD5 中,很容易通过插入恶意代码来操纵文档,同时仍然生成相同的散列。它的流行是它消亡的原因。它被广泛使用,现在你只需使用谷歌就可以破解它。
CMU 软件工程研究所将 MD5 视为“密码破损且不适合进一步使用”。它使用了很多年,但现在它的主要用途包括验证数据以防止意外损坏。
SHA家族
安全哈希算法是由美国国家安全局开发的一种加密哈希函数。他们的第一个算法SHA-0(于 1993 年发布)在多年前就遭到破坏。SHA-1 (1995) 生成一个 160 位(20 字节)的散列输出。SHA-1通过将散列值增加到 40 位长的十六进制数来改进 MD5。由于发现了理论冲突,该算法在 2005 年也受到了损害,但它的确切下降发生在 2010 年,当时许多组织开始推荐其替代品。
目前使用的最安全的版本是SHA-2。SHA-2 包含许多重要的变化。其家族具有六个哈希函数:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。
2006 年,美国国家标准与技术研究院 (NIST) 发起了一项竞赛,以寻找 SHA-2 的替代品,该替代品将在以后作为标准实施。SHA-3是称为 KECCAK(发音为 ketch-ak)的散列算法系列的一部分。
尽管名称相似,但 SHA-3 通过一种称为海绵结构的机制在内部有所不同,它利用随机排列来吸收和输出数据,同时作为集成到哈希算法中的随机化未来输入。
当它们被吸收时,消息块被异或到状态的一个子集,然后被转换成一个元素,但与状态改变交替。SHA-3 允许克服先前算法的局限性。它在 2015 年成为标准。
区块链中的哈希
在将哈希算法集成到区块链协议中时,比特币使用 SHA256,而以太坊使用 SHA-3 (KECCAK256) 的修改变体作为其工作证明算法。
通过使用专用集成电路(或 ASIC)可以非常高效地计算比特币 SHA256 实现。工作量证明激励机器一起计算到池中,并增加所谓的“哈希算力”,这是衡量一台机器在一个时间间隔内可以计算的哈希数的指标。
比特币通过在其协议中运行算法的两次迭代,使用 SHA256 对数据进行哈希处理。双 SHA256 用于减轻长度扩展攻击造成的损害。
这种攻击涉及恶意行为者找出哈希输入的长度,该长度可用于通过将秘密字符串附加到哈希值来欺骗哈希函数启动其内部状态的特定部分。
以太坊使用称为 KECCAK256 的修改后的 SHA-3。此外,以太坊的工作量证明算法Dagger-Hashimoto被设计为难以为硬件计算的内存。
结论
正如历史向我们展示的那样,哈希算法不断发展并被新算法所取代,因为旧算法已被证明对攻击和巧妙的黑客无效。
《哈希值是什么意思(通俗易懂区块链哈希算法)》来自网络或者会员投稿,只为了传播更多内容,不对真实性承担任何责任,如内容有侵权,请联系本站,请来信告知,我们第一时间删除!