数字签名和散列

数字签名和加密散列函数构成了使加密货币起作用的秘诀。他们可以将加密货币兑换成货币。您的数字签名证明您拥有声称交易中描述的资产所有权的私钥。散列函数定义并保护交易.

密码学—您想知道一个秘密吗?

数字签名和哈希函数存在于密码学中,那么什么是密码学?密码术定义了编码和解码消息以维护通信者之间的隐私的艺术和科学.

密码学的沙拉天

多年来,不同形式的密码术占主导地位。在凯撒大帝时代,只要旋转字母就足够了。因此,密码学家将此称为“凯撒密码”。代替“猫”这个词,加密的消息可能只是将所有字母向左旋转一步,因此“猫”翻译为“ dbu”。在电影里 2001年:太空漫游, 以相同的方式旋转字母“ HAL”,您会得到什么?

随着时间的流逝,随着密码分析师解决每个给定的系统,密码系统崩溃了.

公钥密码术

数字签名图像

当前流行非对称密码术,也称为公钥/私钥加密或简称为公钥密码术。公钥和私钥只是数字.

术语“非对称”将其与对称加密区分开来。在对称加密中,相同的密钥既可以加密也可以解密消息。因此,密钥必须保持隐藏状态。这就产生了密钥分发问题-如何安全地将密钥以及加密的消息传输给收件人?

公共密钥密码技术通过发布任何人都可以用来加密消息的公共密钥来解决此问题,并且用户保留自己的私有密钥以用于解密消息。这是通过单向数学函数的魔术实现的。单向函数可轻松简单地进行计算,但可以抵抗逆向工程.

公钥密码术示例

用一个非常简单的例子说明, 将两个质数相乘:prime1 * prime2 =结果. 给定足够大的数字,任何人都可以查看结果,但是要确定使用哪个两个质数来得出该结果却非常困难。结果代表公钥,prime1和prime2代表私钥.

当黑客使用足够的计算能力来对不对称加密进行破解时。但是,黑客需要超级计算机才能在合理的时间内完成此任务。当量子计算机成为常态时,加密将需要发展.

数字签名

由私钥创建的数字签名代表私钥,从而显示用户在给定交易中已签名.

您可以将数字签名视为加密邮件的变体。正如公钥加密创建加密消息一样,私钥也创建数字签名。使用公钥,您可以快速验证数字签名是由私钥创建的。将此视为拼图游戏。难题可能很难完成,但是正确完成后,您一眼即可验证它.

在哈希大厦大饱口福

密码散列是由数学函数产生的,该数学函数将任意大小的数据映射到固定大小的位字符串中,称为散列值或简称为散列。给定的输入数据始终导致相同的哈希。因此,如果消息不匹配与之关联的哈希值,则表明该消息已被篡改。两个不同的消息永远不要创建相同的哈希值。如果这样做,则构成冲突,并且创建该值的哈希函数存在致命缺陷.

散列的简单示例

为了说明这一点,假设我们要对简单字符串“ ABCDE”进行散列作为输入数据.

让我们创建一个简单的哈希算法。首先,我们将字母转换为数字:A = 1,B = 2,C = 3,D = 4,E =5。我们得到的哈希值必须是一个数字。基本方法只是将所有数字加在一起:1 + 2 + 3 + 4 + 5 =15。这将产生一个两位数字,因此我们的算法将以递归的方式继续将此数字的每个数字相加:1 + 5 =6。这使得6我们的哈希值,6表示“ ABCDE”作为其哈希.

如果您收到“ ABCDE”作为由6表示为其哈希的消息,则表示您相信该消息是正确的。但是,如果您收到由哈希6表示的消息“ ABCXE”,则表示存在不匹配,这显然是由于消息篡改.

当然,我们的简单哈希算法在很多方面都失败了。例如,字符串“ EDCBA”或其任何组合会创建与“ ABCDE”相同的哈希,从而产生冲突。复杂的数学克服了这些问题。加密货币中当前最常用的哈希算法的名称为SHA-256(首字母缩写代表安全哈希算法)。在SHA-256算法中,哈希值的固定大小为256位.

加密货币中的数字签名和散列

好的,那么我们如何在加密货币中实际使用数字签名和哈希?

让我们看一下比特币交易以了解该技术的实际应用.

比特币交易分为两部分:1)输入部分,和2)输出部分.

输入部分包含发件人的公钥,显示发件人拥有足够的比特币以支付交易费用的信息以及其他有用信息。发件人的私钥会创建一个数字签名来签署此交易。该数字签名进入交易的输入部分.

输出部分包含收件人的钱包地址和索引,因为存在多个输出(各种输出将分别发送给收件人,发件人和矿工).

散列起着保护交易完整性的作用。诸如付款人,接收人和支付金额之类的数据需要进行哈希处理,以防止恶意行为者更改此信息。将密码密钥和这些输入参数结合起来以提供哈希函数,即可创建交易ID。我们现在可以肯定地知道,发件人确实有权付款,并且交易的详细信息是正确的,并且未被篡改。.

酪乳中的苍蝇

比特币交易的一个已知问题是由一种称为 交易延展性.

发生交易延展性是因为比特币对交易中的各个字段进行哈希处理。在交易处理期间,其中某些字段可能会以看似微不足道的方式改变。但是由于它们更改,哈希值也会更改,从而导致交易ID发生更改.

为了可视化,考虑一个包含整数123的字段,但是在处理过程中,系统将其扩展为0123。两者都构成相同的数字,看着它们我们知道它们是相同的,但是hash函数将其视为并随后为每个创建不同的哈希值。这个怪癖为坏角色提供了游戏系统的机会.

隔离救援

隔离见证(SegWit)技术解决了此问题。 SegWit创建与块分离(隔离)的结构。这种单独的结构包含确定交易有效性(见证交易的有效性)所需的信息,但不包含交易数据本身。以这种方式分离交易数据消除了延展性的可能性.

结论思想

密码技术随着技术的发展而发展。未来的计算机肯定会打破当今的加密技术。但是对于我们所处的当今世界,数字签名和加密散列提供了足够的保障,以确保我们交易的安全性和完整性.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me