Chipmunk: Better Synchronized Multi-Signatures from Lattices


Chipmunk: Better Synchronized Multi-Signatures from Lattices
CCS 2023

在这里插入图片描述

笔记

后续的研究方向

摘要

多签名允许将在独立密钥下生成的同一消息的多个签名压缩为一个小的聚合签名。这个原语对于权益证明区块链特别有用,比如以太坊,在以太坊中,同一个区块由许多签名者签名,他们保证区块的有效性。能够将同一块的所有签名压缩为短字符串,显著降低了链上存储成本,这是区块链的一个重要效率指标。

在这项工作中,我们考虑了同步设置中的多签名,其中签名算法以一个额外的时间参数作为输入,并且只要求同一时间步长的签名是可聚合的。同步设置比一般的多重签名设置更简单,但对于大多数区块链相关应用程序来说已经足够了,因为签名者自然会根据链的长度进行同步。

我们提出了Chipmunk,这是一种在同步设置中具体有效的基于晶格的多重签名方案,允许对先验有界数量的消息进行签名。花栗鼠允许对签名进行非交互聚合,并且对roguekey攻击是安全的。该结构似乎对量子对手是安全的,因为我们的安全依赖于短整数解问题的假设硬度。

我们在Fleischhacker,Simkin,Zhang(CCS 2022)之前最著名的结构基础上进行了显著改进。我们的总签名大小小5倍,对于112位的安全性,我们的构造允许将8192个单独的签名压缩为大小小于200 KB的多签名。我们提供了花栗鼠的全面实施,并提供了研究我们的施工效率的广泛基准。

引言

多签名[18,24]允许将不同签名者生成的同一消息的不同签名压缩为一个小的聚合签名。这种签名方案是分布式系统中的一个强大工具,如区块链,各方通过签名来保证网络上消息的有效性。多重签名不存储与为特定消息提供担保的当事方数量成线性关系的签名数量,而是允许存储一个短得多的字符串,同时代表所有签名者为消息提供担保。流行的权益证明区块链,如Ethereum【https://github.com/ethereum/annotated-spec/blob/master/phase0/beaconchain.md#attestation】和DFinity【https://dfinity.org/whitepaper.pdf】,在其共识层的核心使用多签名。

在实践中使用的最流行的多签名方案是基于Boneh、Lynn和Shacham(BLS)[7]的签名方案的Boneh、Gentry、Lynn、和Shacham[5]的构造。它们产生的多重签名非常小,但其构建的安全性取决于在配对友好组上计算离散对数的假设硬度。Shor[27]表明,量子计算机可以有效地解决离散对数问题,这意味着任何基于这种假设的加密原语在存在量子对手的情况下都是不安全的。

幸运的是,并非所有的计算硬度假设都是相等的,有些假设在量子对手的存在下似乎仍然很难实现。从计算硬度假设中构建能够抵御量子对手的多重签名是一个理论和实践上都很重要的问题。虽然实际相关的量子计算机何时出现可能还不清楚,但重要的是提前为重要的密码原语提供安全的替代方案。

一类密码硬度假设似乎对量子对手特别有弹性,它是基于晶格的密码学。NIST在2022年选择进行标准化的三种后量子签名方案中,有两种方案的安全性基于与晶格相关的硬度假设,毫不奇怪,人们对从晶格硬度假设构建多重签名也非常感兴趣[8,9,11,13-15,19,22,26]。然而,当前的多签名构造仍然存在阻碍其实际部署的显著缺陷。El Bansarkhani和Sturm[11]以及Ma和Jiang[22]的构造假设所有签名者的密钥都是诚实生成的。这不是一个现实的假设,因为对抗性签名者可能会通过生成一个格式错误的验证密钥来执行流氓密钥攻击,该验证密钥依赖于诚实签名者的密钥,并允许伪造聚合签名,从而谎称恶意方和诚实方都签署了一条实际上不是他们签署的消息。Liu等人[20]证明了Kansal和Dutta[19]的方案是不安全的。Fukumitsu和Hasegawa[14,15]、Ma和Jiang[22]、Peng和Du[26]以及Boschini、Takahashi和Tibouchi[8]的构造都需要签名者之间的交互来生成联合多重签名。在许多分布式系统中,独立签名者之间的这种交互很难实现,因为签名者可能在不同的时间在线,甚至可能不知道彼此的存在。

最近,Fleischhacker、Simkin和Zhang[13]提出了一种名为Squirrel的基于晶格的多签名结构,该结构允许非交互式聚合,并且对roguekey攻击是安全的。他们考虑了一个简化的设置,其中签名者的密钥只能对先验有界数量的消息进行签名,并且签名者是同步的,因为聚合只需要对为同一时间步长和同一消息生成的签名起作用。这种简化的设置对于大多数区块链应用程序来说仍然足够强大,在这些应用程序中,签名者每个区块不会签署一条以上的消息,并且自然会根据当前链的长度进行同步。虽然可以签名的消息数量的先验限制似乎是一个很强的限制,但可以简单地将这个数字设置得足够大,例如设置为224,这将允许签名者在5年内每10秒不间断地签名一条消息。针对112位的安全性,它们的单个签名大约有50 KB大,聚合4096个签名会产生771 KB大的多签名。

Squirrel代表了多签名方案向前迈出的重要一步,这些方案在量子对手存在的情况下似乎是安全的,并且具体有效。然而,对于现实世界中的实际场景,它们的聚合签名似乎仍然太大,无法真正使用。作为参考,一个完整的以太坊区块平均小于130 KB 3,这意味着一个区块甚至无法容纳单个多重签名。

贡献

在这项工作中,我们提出了花栗鼠4,这是一种在同步设置[1,10,16,17]中的多签名方案,具有每个密钥可以发出的签名数量的先验约束。我们的目标是与Squirrel[13]完全相同的设置,但提供了理论和实践上的改进。

在理论方面,我们通过要求涉及格式错误但正在验证的对抗性签名的聚合将以高概率成功,来加强多签名的安全概念。在Squirrel中,聚合只需要用于诚实生成的个人签名。原则上,他们的安全模型将允许对手通过提供单个验证但格式错误的签名来对签名聚合过程进行拒绝服务攻击。在现实世界的分布式系统中,这种对生存性的攻击将是非常有问题的。我们加强了它们的安全定义,以正式确保成功验证的个人签名将被成功聚合,即使它们是恶意选择的。

在实际方面,与松鼠相比,我们的方案花栗鼠产生的个体和聚合签名更小。就计算效率指标而言,花栗鼠要么显著优于松鼠,要么在速度上保持可比性。就带宽而言,与松鼠相比,花栗鼠的总签名要小4.8倍。对于可以生成224个签名的密钥,单个花栗鼠签名是50KB,并且聚合8192个签名导致180KB大的聚合签名。

我们已经完全实现了花栗鼠,并在第6节中提供了与松鼠的广泛基准和比较。花栗鼠是目前已知的最具体有效的多重签名,其基于在量子对手存在的情况下仍然有效的假设。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

粥粥粥少女的拧发条鸟

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值