WOT:?DAOrayaki:基于哈希的后量子数字签名是如何工作的?(一)-ODAILY

基于哈希的数字签名方案是后量子数字签名的一个类别。与目前用于验证区块链交易的数字签名方案不同,哈希函数为量子计算机提供的可利用结构要少得多,而且广泛认为它是量子安全的。

目前区块链基础设施上广泛使用的数字签名,如BLS和ECDSA,都是基于离散对数问题。

对于那些不熟悉数字签名的人来说,一个签名方案由四部分组成:系统生成,密钥生成,签名生成,以及签名验证。

例如,在ECDSA中,公钥Pk是通过椭圆曲线群上的生成点G来生成的,私钥Sk满足Pk=Sk*G。给定Pk,利用经典算法很难找到Sk。

BLS签名方案是在配对群

上构建的。公钥/密钥对满足

量子算法善于寻找某些函数的周期性,它能发现经典难题的特殊结构,如因式分解和离散对数。当拥有数千个逻辑量子位的量子计算机出现时,BLS、ECDSA和其他依靠因式分解和离散对数问题的签名方案将不再安全。

例如,求一个数N=p*q的素因子可以简化为

求一个函数的周期。其中c是N的互素数。一旦找到周期,那么可以通过计算、

和找到两个互素因子。使用著名的辗转相除法可以很快找到最大公除数,它可以在经典的计算机上运行。反之,在经典计算机上很难找到D(x)的周期,但QPU可以在多项式时间内完成。

尽管当今的量子计算机只有几百个噪声的物理量子位,但量子计算机的建造者确实拥有大量的路线图来实现大规模的量子计算机。像IBM和RigettiComputing这样的超导量子计算机制造商正在向1000个物理量子位的量子计算机迈进,并使用可叠加的模块以获得更多数量的逻辑量子位。除此之外,在可预见的未来,还有其他几种方法可以带来有意义的量子计算系统,包括离子阱、中性原子和基于测量的量子计算。

美国财政部提出加密税收新规:加密交易平台需要国税局报告交易总收入:8月25日消息,为应对加密货币投资者逃税问题,美国财政部提出了新的税务规定。这些规定旨在简化复杂的税务问题,确保加密货币投资者遵守税法。根据提议,到 2026 年,诸如 Coinbase 这样的加密货币交易平台将需要向国税局(IRS)提交表格 1099s,报告交易的总收入。

此外,交易平台稍后还将开始报告客户购买资产的成本基础。这些新规定的目的是增加税务透明度,确保投资者正确报税。此外,这些规定还将适用于非同质化代币(NFT)和去中心化金融平台。[2023/8/25 10:03:15]

但是,到目前为止,还没有发现有效的量子算法来破解哈希函数,而量子计算机只是将生日攻击速度提高到

而在经典计算机上的生日攻击速度为

现在让我们来看看如何使用哈希函数来构建数字签名,以及如何处理基于哈希的量子安全签名。

一次性签名方案

首个基于哈希的签名是于1979年首次推出的Lamport签名。一个Lamport签名密钥只能安全地签署一条信息,因此这是一个一次性签名方案。该签名方案的工作原理如下:

对于每条信息,签名者需要准备两组密钥对。

PKs是通过哈希SKs计算的。假设我们使用256位的加密哈希函数来产生消息摘要,每组密钥对由256个密钥和公钥组成。总的来说,我们需要准备512个密钥和512个公钥来签署任何一条消息。

美国财政服务局研究将区块链用于补助金支付:金色财经报道,根据周一的公告,美国财政服务局将在新项目“区块链用于补助金”中继续研究区块链技术,延续了一项始于2017年的工作。新计划将运行六个月,重点关注通过区块链支付补助金的法律问题。该局三年前开始研究分布式分类账技术,当时启动了一个区块链试点项目以跟踪计算机和手机等办公工具。其还承诺同时探索区块链的其他用例。[2020/9/24]

要对一个消息签名,首先将消息散列成一个256位的随机数;然后,根据散列数的位值,相应地选择SK。

请注意,我们将始终对消息h(m)的摘要进行签名,而不是对任意长度的消息进行签名。为了简化标记,我们在本文的剩余部分将使用m代替h(m)。当你看到m,即表示着h(m)。

图片注释:签名是

和消息本身。

为了验证签名,首先计算H(m),然后根据签名计算

,验证PK是否确实是来自SKs散列的结果,并且验证索引是否正确。

在对任何消息进行签名之后,该过程都会公开一半的密钥。因此密钥对只能使用一次,否则攻击者将能够使用公开的密钥来验证消息。

使用MerkleTrees管理OTS密钥

从21世纪加密用户的视角来看,Lamport签名方案乍一看可能很奇怪、很混乱。写下一次私钥或助记词可能就已经给人带来压力和烦恼,如果私钥只能签署一份信息,而每份消息都要共享不同的公钥,这不让人抓狂吗?

事实证明,如果我们能够适当地引入管理密钥的机制和工具,OTS签名方案也不是那么糟糕。

声音 | 美国财长姆努钦:不反对Facebook创建数字货币 但需遵守银行保密和反规定:美国财长姆努钦表示,如果Facebook想创建一种数字货币,我对此没意见,但是他们需要完全遵守银行保密和反规定。而且这绝不能用于资助恐怖主义。此前消息,姆努钦表示,由于监管方面的担忧,他已经与Facebook举行了十几次会议,这减慢了该公司在这方面的进展。[2019/12/6]

因为LamportOTS和WinternitzOTS一次只能签署一条消息,如果需要签署多条消息,就必须有多个密钥。MerkleTree的签名方案是由RalphMerkle发明的,用于管理LamportOTS密钥。

其基本原理是使用MerkleTree的叶子来存储LamportOTS密钥。因为MerkleTree是二叉树,高度为h的MerkleTree有

的叶子。如果使用叶子来管理LamportOTS密钥的摘要,那么MerkleTree可以管理

的LamportOTS密钥对。

当签署消息时,需要从树上摘取一个之前从未使用过的Lamport密钥对。签名由叶子的索引、Lamport公钥、Lamport公钥摘要和该叶子的认证路径组成。

密钥对,从而将空间从

减少到O(1)。这意味着,安全地交换一个Merkle根就允许多个签名验证。

使用MerkleTree的结果是,每次签名都必须包括认证路径,这是一个更大空间,而且验证者要对O(h)计算更多的哈希值来验证每个签名。

动态 | 5月EOS?Dapp?周活跃用户呈下降趋势,ETH呈逐周上升趋势:据RatingDapp和RatingToken大数据监测显示,EOS/ETH/TRON三大主流公链平台Dapps活跃用户在5月份的四个周次呈现出如下规律:(1)EOS?Dapp?周活跃用户呈小幅下降趋势,由月初197575活跃用户(5月1日-5月7日)将至月末164425(5月22日-5月28日);(2)ETH Dapp周活跃用户逐周小幅上升;(3)TRON Dapp周活跃用户震荡波动较大,最高为158895(5月15日-5月21日),最低101159(5月22日-5月28日)。[2019/6/4]

WinternitzOTS

LamportOTS的另一个问题是,Lamport公钥和Lamport签名太长。RobertWinternitz提供了一个改进的签名方案,大大减少了签名的大小。

WinternitzOTS不是为每一条消息准备私钥和公钥对,而是将哈希的消息分成几块。如果一个信息被分成N个块,并且每个块有1个比特,那么我们就得到了lenth(m)=N*L。我们将在本文中使用相同的$l,N&符号,以便于阅读。

假设我们仍然在信息上使用256位哈希函数,并获得信息的256位摘要。在这种情况下,N*L=256

使用上面的例子,m被分割成64个块,每个块有4位。所以,WOTS只需要准备64个私有密钥sk0,…,sk64。公钥是通过对每个私钥上应用

次哈希函数来计算的。

一个WOTS签名的生成方法如下。

动态 | 近一个月ETH?Dapp单笔平均交易额环比上涨达34.79%:据RatingDapp和RatingToken大数据监测显示,最近一个月?EOS/ETH/TRON三大主流公链平台Dapps?交易额分别为EOS($728945752.64)>TRON($387566154.16)>ETH($253931932.08)。从各公链Dapp单笔平均交易额来看,EOS 6.52美元,环比上月上涨0.57%;ETH121.84美元,环比上月上涨34.79%;TRON 11.03美元,环比上月下降29.37%。[2019/5/14]

1、计算消息摘要中每个块的十进制值。例如,第一块的十进制值是5。

2、通过将相应的私钥哈希运算计算第

i个区块的签名。在上面的示例中,sk0将被哈希运算次

3、对N个块应用和并生成签名

图片注释:每个公钥是通过对相应的私钥哈希运算

次来获得的。

为了验证签名,验证者将首先对信息进行哈希运算,得到一个256位的摘要m。然后验证者将m分成几块,得到每组的十进制值。

然后验证者将签名的每个值哈希运算

次,得到

。如果

与公钥集pk相同,则签名有效,否则签名被拒绝。

WOTS的折衷方案是在签名生成和验证中增加了更多的计算量。因此,WOTS的签名将明显比Lamport的签名小得多。

值得注意的是,WOTS仍然是一个一次性的签名方案,因为一旦使用了密钥对,只要块的十进制值小于原始值,攻击者就可以为每个块生成有效消息。因此,多次使用WOTS根本不安全。

WOTS+

WOTS+为WOTS增加了随机性。它首先向公钥集

元素匹配pk,则该签名有效,否则拒绝签名。

尽管WOTS和WOTS的一些变体使用简单的哈希链,但它们的迭代方法也很常见和简单。然而,WOTS+有一些特殊的迭代模式,可以实现严密的安全性证明,而不需要使用的哈希函数族具有抗冲突性。

扩展的MerkleTree签名方案

因为WOTS+仍然是一个一次性签名方案,如果有多条消息需要签名,那么密钥管理就非常重要。

扩展的MerkleTree签名方案使用MerkleTree来管理WOTS+密钥,其方式类似于MSS使用MerkleTree来管理Lamport密钥。

我们已经知道MSS是如何使用Lamport密钥对的,所以让我们先看看顶层的MerkleTree。

图片注释:用颜色标记验证最终XMSS公钥的认证路径

在XMSS中,公钥是XMSSMerkle根。MerkleTree的每个叶子都是WOTS+公钥集的Merkle根。为了说明这一点,从上面“扩展”

我们将有一棵“子”MerkleTree连接到上面的叶

上。这棵树在文献中也称为“L-tree”。

图片注释:一个由L-tree管理的WOTS+密钥集。实际树高取决于WOTS+密钥集的大小。

位掩码用于L-tree。在每次将哈希函数应用于两个节点之前,两个底部值将使用相应的位掩码进行异或运算。L-tree的每一层都有两个位掩码值

它们将该层的左、右节点进行异或运算。因此,一棵高度为h的L-tree总共需要2h的位掩码。

图片注释:L-trees是如何计算的——在进入哈希函数之前,将一个值与一个位掩码进行异或运算。

现在沿着L-tree向下移动——L-tree的叶子是WOTS+公钥。每片叶子代表一个WOTS+公钥,该公钥是使用WOTS+中描述的私钥的哈希值链创建。

图片注释:L-trees是如何计算的——在进入哈希函数之前,将一个值与一个位掩码进行异或。

要对消息m签名,首先从XMSS树中选择一个由i索引的叶子,并确保该叶子以前从未被使用过。然后我们知道该叶子是WOTS+公钥集的一个Merkle根。WOTS+私钥可以用来对消息进行签名,并得到消息m的WOTS+签名

。XMSS签名

和使用i索引的WOTS+公钥,然后使用

的正确性。

使用XMSS,可以管理和验证多个WOTS+密钥。

拓展阅读

本文介绍的签名方案是基于哈希的签名方案的基本构建块。AndreasHülsing等人在该论文中对基于哈希的签名方案的算法特性进行了更深入的分析。

还有其他以前NIST推荐的签名方案和多树方差和多树XMSS)。NIST最近的第三轮后量子密码学标准化过程目前不推荐这些签名方案以及本文第一部分所介绍的签名方案。然而,了解这些签名方案的细节非常重要,因为更新的、通常更复杂的签名方案是根据这些算法思想设计的。

本文的第二部分将介绍基于哈希的签名方案的最新发展,包括SPHINCS/SPHINCS+,以及工程和开源软件的现状。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

FilTREE:波场TRON十月月报一览-ODAILY

波场TRON月报新鲜出炉,一起来看看10月波场TRON都有哪些亮眼表现吧。 一、核心数据 1、新增账户数:4,452,8822、TVL最高值:$12,653,240,648美国财政部提出加密税收.

[0:125ms0-7:854ms