技术解读——使用签名确保缠结的真实性

技术解读——使用签名确保缠结的真实性

在今天的博客文章中,我们将仔细研究IOTA和任何加密货币的核心概念之一,即公钥加密和数字签名。

在IOTA中,为了将iota通证从一个地址转移到另一个地址,您可以创建一笔交易。一笔交易包含付款人,收款人以及转移的通证数量。当然,至关重要的是,并不是任何人都可以创建这样的交易,只有令牌的所有者才可以。在法律世界中,这是通过在合同上签名来完成的。在数字世界中,我们拥有完全符合该目的要求的数字签名。然而,与传统的笔和纸的对应物不同,它们更强大,因为它们也保证了在签订合同后不会改变任何内容。

在过去的50年中,世界各地的密码学研究人员已经衍生出许多可用于数字签名的复杂数学理论。它们都保证了不可伪造的消息,但最容易理解的是基于哈希的签名,即基于哈希函数的签名。

哈希函数是加密科学的一种有效工具,它接受输入并产生无相关的输出。如果哈希函数是正常的,那么反解该过程应该非常困难。这意味着如果人们只知道输出结果,那么则无法在合理的时间范围内反推出输入值。 这就是哈希函数被称为单向函数的原因。

以上就是我们使用Winternitz一次性签名方案构建IOTA中的安全数字签名所需的全部内容。

任何IOTA交易都可以表现为一串三进制字节的序列。虽然在人类世界中数字由0-9表示,但对于三进制中的IOTA,它们由0到26之间的值组成的三进制字节组成。
为简洁起见,我们将调用哈希函数“f”,并假设要签名的消息设定为包含两个三进制字节:m1和m2。

让我们假设Alice创建了一笔将1i转移给她的朋友Bob的交易,她现在想要证明这笔交易确实由她发布。Alice首先生成两个随机数priv1和priv2,并将这些随机数保存为她的私钥。然后,她使用哈希函数“f”将两个数字计算27次哈希值,得到f²⁷(priv1)= pub1和f²⁷(priv2)= pub2。

技术解读——使用签名确保缠结的真实性

Figure 1: 私钥哈希为公钥的过程

这两个结果的数字pub1和pub2就是Alice的公钥,然后她与每个人共享作为她的IOTA地址。由于“f”是单向函数,因此无法根据公钥确定原始私钥priv1和priv2。

要使用该私钥对消息进行签名,即从该IOTA地址签署一笔交易,Alice会在消息中获取第一个tryte m1的值,然后多次哈希她的私钥以获得sign1。她将m2以同样的方法多次哈希后,将得到的sign1和sign2添加为她的交易签名。

技术解读——使用签名确保缠结的真实性

Figure 2: 将消息(26,2)哈希后得到的私钥图示

在此之后,每个知道公钥pub1和pub2的人都可以验证此签名。他们需要做的就是将哈希函数“f”应用于sign1和sign2,并获得剩余的哈希次数(27-m1和27-m2次)。如果结果与公钥pub1和pub2匹配,则签名是正确的。

技术解读——使用签名确保缠结的真实性

Figure 3: 图例是sign1哈希1次和sign2哈希25次所得到结果与公钥的对比

然而,到目前为止所描述的方法仍然不安全:
一旦Alice签署了消息(26,2),攻击者就可以使用该信息为消息(27,3)创建有效签名,只需再次哈希原始消息已发布sign1和sign2, f(f²⁶(priv1))=f²⁷(priv1)和f(f²(priv2))=f³(priv2),因此来验证攻击有效签名。

这种情况非常可怕,因为攻击者可以借此修改任何签名交易中的接收地址。但是,有一个简单的数学技巧可以防止这种情况:我们可以通过修改消息的某些部分,同时也确保消息在某种意义上的规范性:即如果m1大于tryte的中间值,即13,那么m2必须低于13。一般来说,这意味着两个消息tryte的总和始终为26。例如(24,2)是一个有效的规范化消息,任何想要将第一个tryte增加到25的攻击者也需要递减第二次尝试到1。那么,这将不可能找到正确的签名部分,因为这需要反推函数“f”的最后一次哈希过程。

但即使这样,此方法也只能用于为每个私钥签署一条消息。这便是一直所说的一次签名方案(OTS)。很明显,这已经说明了为什么签名两次将失去安全性,尤其是下面这种最糟糕的情况:

  1. (0,26)
  2. (26,0)

虽然这两个消息都已规范化,但第一条消息将暴露priv1,第二条消息将暴露priv2,自然会导致攻击者发出正确签署第三条消息。

很不幸,目前并没有真正简单可靠的解决方案,这正是为什么不能多次使用同一个IOTA地址的原因!

像IOTA中使用的基于哈希的签名依赖于底层哈希函数的安全性,与基于其他设定的签名不同,它们大多被视为对诸如Shor算法的量子攻击具有抵抗力。它们的主要缺点是将产生相当长的签名,并且是一次性的签名方案。

尽管存在缺点,但IOTA采用这些签名的原因是我们在正视量子计算技术对加密技术带来的风险。不过,我们正在考虑围绕OTS限制的几种方法,例如最近提出的可重用地址。

与往常一样,欢迎您在此提出评论和问题,或者加入到Discord的#tanglemath频道中与我们交流。

 

原文链接:https://blog.iota.org/assuring-authenticity-in-the-tangle-with-signatures-791897d7b998

tigermumu

专栏作者:tigermumu

个人简介:坚定不移的贯彻以推广和普及IOTA为核心一百年不动摇

作者邮箱 作者主页 Ta的文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注