八、一次性签名方案
一次性签名方案是由三种算法组成的:一种用于生成一次性密钥对,一种用于计算一次性签名,还有一种用于签名验证。一个OTS方案的实例有一个特定的密钥对,其中P是公钥,S是私钥。
OTS方案和Merkle树都使用哈希函数。一个重要问题是,同一哈希函数是否可以安全地用于这两种结构。事实上,通过在每个哈希中包括一点额外的数据,我们基本上可以把一个散列函数当作许多不同的散列函数。换句话说,如果我们使用SHA-256来生成OTS实例,我们仍然可以安全地使用SHA-256来构建Merkle树。
多次或完整,基于哈希的签名方案使用哈希树来有效地结合OTS方案的许多实例。
九、基于哈希的密码学是如何工作的?
我们现在将讨论Merkle如何使用二进制树-如图1所示的二进制树-结合许多个OTS来创建一个基于哈希的多次签名方案的公钥。虽然从这些OTS中构建树的初始步骤与许多其他抗量子的构建相比通常很慢,但签名却很快。
动态 | 链客社区联合北京交通广播推出区块链技术科普节目:12月11日15:15—16:00,区块链技术社区——链客区块链技术社区将联合北京交通广播FM103.9从零开始为大众科普解码区块链技术,蜻蜓FM及北京广播网同期进行全球直播。首期做客嘉宾为链客区块链技术社区创始人郄建军和百度区块链产品负责人于雅楠。[2019/12/11]
十、二叉树
在一棵标准的二叉树中,所有的节点都是成对出现的,它们上面有一个节点,从最下面的节点到最上面的节点的距离总是相同的。另一个节点的正上方是其父节点,父节点的正下方是其子节点,一对具有相同父节点的子节点被称为兄弟姐妹节点。例如,在图2和图3中,N(1,0)和N(1,1)是兄弟姐妹节点。它们也是N(2,0)的子节点;也就是说,N(2,0)是它们的父节点。
最上面的节点被称为根节点。树的底部没有子节点的节点被称为叶节点。叶节点表示为L0,....,图2中的L7。
一个节点的级别是它与底部的距离。我们的意思是叶子节点有0级,图2中的节点N(j,i)有j级。根节点的级别,通常表示为h,称为树的高度。例如,图2中的树的高度为3。Merkle使用二进制树来组合OTS,更具体地说:每个叶子节点来自一个OTS实例的公钥,而树上的每个其他节点都是由它的两个子节点计算出来的。我们现在将描述这些节点是如何使用加密散列函数计算的。
动态 | 人民日报官方微博科普区块链 强调区块链不等于比特币:人民日报官方微博今早发表9图科普区块链。其中涉及区块链的特点有:1、安全;2、不可篡改;3、可访问;4、无第三方。区块链对未来的影响:1、不需繁琐个人证明;2、看病避免反复检查;3、旅行消费更加便捷;4、交易无需第三方。同时强调,区块链不等于比特币。比特币只是区块链技术的一种应用,区块链还有医疗卫生、食品安全、版权保护等诸多应用领域。[2019/10/28]
十一、加密哈希函数(CryptographicHashFunctions)
简单地说,加密哈希函数H是一个将任意数量的数据映射到一个合理的、通常是固定长度的输出的函数,在这种情况下,实际上不可能找到一个映射到特定输出的输入。
直观来讲,我们可以认为默克尔树是使用哈希函数将一个有序的数值集压缩成一个单一的数值,其方式是很容易证明一个数值属于原来的数值集。更具体地说,Merkle树可以从O的公钥的一个有序集合P0...Pm的OTS的公钥和哈希函数H,以如下方式构造:
声音 | CNBC主持人:加密货币最大的缺点之一就是难以向外行快速科普:CNBC主持人Ran NeuNer近期发推称,加密货币最大的缺点之一就是很难向外行快速解释。当人们要求我向他们解释比特币时,我知道他们至少需要一个小时才能真正理解。[2019/9/10]
每个叶子节点是一个OTS公钥的哈希输出。换句话说,让底部一行的第i个条目为L(i)=H(P(i));见图2。树上的每一个其他节点都是其两个子节点的哈希值。例如,如图3N(1,0)=H(L(0)||L(1))andN(2,1)=H(N(1,0)||N(1,1))通用表达如下:
N(1,i)=H(L2(i)||L2(i+1))andN(j+1,i)=H(N(j,2i)||N(j,2i+1)))Merkle签名算法的公钥是根节点。在图2中,根节点是N(3,0)
哈希树是Merkle树的一个概括,其中P(i)是任意数据而不是OTS公钥,见图2。
动态 | 美国演说家Anthony Robbins开始科普什么是比特币:美国演说家安东尼·罗宾(Anthony Robbins)在自己的网站上发布了一篇比特币的科普文章,并在推特上向自己的粉丝介绍什么是比特币,目前他的推特账户共有粉丝304万人。[2019/1/1]
由于你无法找到哈希函数的逆运算,所以实际上不可能从树中较高的节点中找到树中较低的节点。因此,给定树中的任何一组节点,特别是给定根节点,都不可能找出关于OTS签名钥匙的信息。
十二、验证路径
请注意,对于任何用于创建Merkle树的P(i),都有一条从叶子节点L(i)到根节点的唯一路径。例如,在图4中,从L(2)到顶部的路径是用红色画的。给定P(i),如果你能构建一个这种形式的路径,那么这几乎可以肯定地证明P(i)是用来创建Merkle树的值之一。这源于这样一个事实,即找到具有特定输出的哈希函数H的输入在计算上是不可行的,因此你不能从树中较高的节点找到树中较低的节点。
然而,我们实际上是利用叶子到根的路径节点的同级节点来检查路径是否被合法地构建。出于这个原因,我们引入了P(i)的认证路径的概念,即从L(i)到根节点的路径中的兄弟节点的有序集合。在图4中,P(2)的认证路径是L(3),N(1,0),N(2,1)。给出P(i),以及P(i)的认证路径,我们可以验证P(i)对应的是一个叶子节点。也就是说,如果P(i)确实被用于生成树,那么鉴于认证路径,重建从P(i)到根节点的路径应该很简单。
财政部副部长朱光耀:数字经济还处在发展的过程中,要以科普、推动的态度来推进数字经济发展:今日,在中国发展高层论坛2018年会上,财政部副部长朱光耀表示:“数字经济还处在发展的过程中,要以科普、推动的态度来推进数字经济发展。也要关注数字经济的其他影响,包括税收征管、反监管措施等要跟上。”[2018/3/25]
参照图4,我们可以证明P(2)被用来创建Merkle树的公钥,只需给它的认证路径L(3),N(1,0),N(2,1),通过构建一个从P(2)到根节点的路径。
要做到这一点,我们只需检查值:
H(P(2)),H(L(3)||H(P(2))),H(N(1,0)||H(L(3)||H(P(2)))),H(N(2,1)||H(N(1,0)||H(L(3)||H(P(2)))))给出一个路径,其中最后一个值H(N(2,1)||H(N(1,0)||H(L(3)||H(P(2)))))是多次签名算法的公钥。由于P(2)实际上是用来构建Merkle树的,所以构建H(N(2,1)||H(N(1,0)||H(L(3)||H(P(2)))))=N(3,0)。
如果上述计算得到了公钥,那么我们就证明了P(2)是最初用于创建哈希树的OTS密钥之一。
十三、基于状态哈希的签名方案一览
多次方案的一般构造总结如下。
密匙生成创建m=2^h个OTS公私钥对(Pi,Si)。直观地讲,我们可以认为多次秘钥(many-timescheme)是生成OTS密钥对所需的材料。公钥生成(PublicKeyGeneration)为P1,......,Pm创建如上所述的哈希树,根节点是基于哈希的签名方案的公钥。签名(Signatures)为了签署一个信息,选择一个以前从未使用过的索引i。用Si(OTS签名密钥)对消息进行签名,得到一次性签名,并计算出Pi的认证路径。该信息的签名是一次性签名以及Pi的认证路径。验证(Verification)为了验证一个消息的签名,我们首先使用消息和运行一次性验证方案。接下来,检查Pi的认证路径是否提供了一个从Pi到基于哈希的签名的公钥的有效路径。如果是这样,则接受该消息和签名为真实的。时间/空间的权衡(Time/SpaceTradeoffs)由于树可以从P1...Pm生成,存储整个树并不总是必要的。决定存储多少树以及如何管理树,会导致各种CPU/内存等资源消耗的权衡。此外,所有的密钥P1...Pm也可以从一个单一的短种子再生,进一步减少所需的长期存储量。签名的数量(NumberofSignatures)如果树的高度是h,那么它可以用来签署多达2^h的信息。有状态的签名(StatefulSignatures)由于每个OTS签名密钥最多只能使用一次,在一个有状态的基于哈希的签名方案中,跟踪哪些一次性密钥对被使用是很重要的。参考文献:
DavidCooper,DanielApon,QuynhDang,MichaelDavidson,MorrisDworkin,andCarlMiller.Recommendationforstatefulhash-basedsignatureschemes.Technicalreport,NationalInstituteofStandardsandTechnology,2019.
AndreasHülsingetal.SPHINCS+.NISTRound2SubmissionsforPost-QuantumCryptographyStandardization,2019.
AHülsing,DButin,SGazdag,JRijneveld,andAMohaisen.XMSS:eXtendedMerkleSignatureScheme.CryptoForumResearchGroupRFC.rfc-editor.org/info/rfc8391,2018.
DavidMcGrew,MichaelCurcio,andScottFluhrer.Leighton-Micalihash-basedsignatures.CryptoForumResearchGroupRFC.rfceditor.org/info/rfc8554,2019.
RalphMerkle.Secrecy,authentication,andpublickeysystems.Ph.D.Thesis,StanfordUniversity,1979.
社区贡献机会:这是一种为社区、项目、团队等筹集资金的新方式。 在我们之前的文章中,我们已经或多或少地提及到所谓的社区贡献机会,现在是时候阐述我们对它的想法了.
1900/1/1 0:00:007月24日,2021世界区块链大会·杭州正式开幕。本届大会以“无限未来”为主题,汇聚全球的100+区块链、加密货币行业头部创业者、研究者,以胸怀万里世界的姿态,共同放眼无限未来的行业想象.
1900/1/1 0:00:00巴比特讯,7月27日,隐私币Monero官方表示,在Monero的诱饵选择算法中发现了一个相当重要的错误,它可能会影响交易的隐私.
1900/1/1 0:00:00什么是NFT??NFT是2017年末推出的一种新型独特且不可分割的基于区块链ERC-721标准的通证.
1900/1/1 0:00:00据CryptoPotato8月11日报道,美国万通人寿保险公司通过与纽约数字投资集团的进一步合作,加大了对比特币的投入,双方的目标是让这家保险巨头的机构客户获得BTC敞口.
1900/1/1 0:00:00作者|王晟宇8月2日,腾讯发布国内首个NFT交易APP“幻核”,并推出NFT产品“限量版十三邀黑胶唱片NFT”。“幻核”服务协议中显示该APP是一个“提供访问、分享、购买NFT数字作品的入口”.
1900/1/1 0:00:00