首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可通过阈值签名使用的派生密钥

可通过阈值签名使用的派生密钥
EN

Cryptography用户
提问于 2020-01-29 14:54:52
回答 1查看 97关注 0票数 1

假设在一个n门限签名方案中有(t,n)成员。任何一方都不知道全局密钥sk,因为这些密钥是分布式生成的。各方都能够构建自己的全球公钥pk。因此,每个成员i都可以用他们的秘密共享sk_{i}签署一条消息m,这将产生sig_i。可以将所有签名共享组合起来创建sig,这在pk下是可验证的。

是否有任何密钥派生函数f,使每个成员都可以生成派生密钥sk_i^1sk_i^2sk_i^3、.sk_i^n,从而能够满足阈值方案?例如,每个成员都用sk_i^1签名D16,而组合签名sig^1在由共享pk_i^1构造的pk^1下是可验证的。

EN

回答 1

Cryptography用户

发布于 2020-01-30 12:38:09

有两种主流的方法可以做到这一点。使用Schnorr或BLS签名。Schnorr公式更复杂,但如果您愿意使用双线性对,则BLS解可以直接理解。

假设存在一组Shamir的秘密共享\{(x_i, y_i) \in \mathbb{F}^2_p: i \in [1, n] \cap \mathbb{Z}\},其中拉格朗日插值L(x) = \sum_{i=1}^{t+1} y_{i} \cdot l_{i}(x)L(0) = y是秘密。通常,x_i是公共参数,并简化为x_i = i

将双线性配对定义为e: \mathbb{G}_1 \times \mathbb{G}_2 \mapsto \mathbb{F}^{*}_{p^{k}},设置为-3类型,并定义散列到曲线的H: \{0,1\}^* \mapsto \mathbb{G}_2.

y \times G \mapsto Y也是相应的公钥,带有G,Y \in \mathbb{G}_1

BLS签名被定义为:

具有输出Sign(y, m) \mapsto \mathbb{G}_2y \times H(m) \mapsto S

并经下列机构核实:

Verif(Y, m) \mapsto \{0,1\},结果为1如果是e(Y, H(m)) = e(G, S)

要将其转换为阈值方案,只需直接应用拉格朗日插值:

S = y \times H(m) = \sum_{i=1}^{t+1} y_{i} \cdot l_{i}(x) \times H(m)

您可以从客户端收集t+1部分签名y_{i} \times H(m)并进行内插以构造S。核查未变。

然而,这个简单的过程不能防止各方发送错误的结果y^{'}_i \times H(m^{'})。它可能会导致一个有效的签名,为一条未加密的消息。虽然对于大多数实际目的来说,这并不是什么大问题,但您应该注意到这一点。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/77300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档