首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >证明股票可以透露一个秘密钥匙。在秘密共享计划中

证明股票可以透露一个秘密钥匙。在秘密共享计划中
EN

Cryptography用户
提问于 2018-01-04 13:48:12
回答 1查看 335关注 0票数 3

我正在尝试构建一个包含多个组件的密码系统,并且遇到了一个秘密共享方案的问题。

让$v$成为我们感兴趣的值。我生成一个承诺$P = aG + vH$,其中$a\in \mathbb{Z}_q$、$G$和$H$是该组的生成器(Pedersen承诺方案,如果给定$a$,则有人可以导出值$v$)。

现在假设我想使用shamir秘密共享方案( $a$共享可以生成$a$ ($k,n$共享方案)来破解$n$共享(我们称之为盲密钥)。因此,如果$P$是众所周知的,那么是否有一种方法可以让玩家在不公开$a$的情况下验证他们所获得的份额是否真的产生了$a$?这意味着他们知道合并的股票会产生令人眼花缭乱的密钥。

我知道有一种方案可以验证所有的股票都来自同一个多项式(Paul的方案),但是有什么可以阻止对手计算和分配来自某个randomly生成的无关多项式(其中的秘密是$c\neq a$)的份额呢?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-01-04 15:44:49

很明显,这样做的方法是对提交的值进行秘密派生,并让经销商显示导出的提交值与他最初提交的值相同。

为此,我假设秘密共享方案位于素域$GF(q)$上。

经销商发布承诺$P$,并记住承诺值$v$。

并且,当经销商生成共享$i$ (用于参与者$i$)时,它将生成共享id (我们将假设为$i$)、实际的共享值$a_i$ (即在共享id $i$处计算的秘密多项式的值)和承诺值$v_i$。然后,它将值$a_i、v_i$秘密地提供给共享持有者$i$,并发布承诺$P_i = a_iG + v_iH$以及共享id $i$。经销商还会记住所有的$v_i$值。当一个股东得到他的股份时,他可以证实他的公开承诺与他得到的秘密价值是一致的。

然后,我们选择$k$参与者(你已经证明了股东拥有一个一致的秘密,所以我们选择哪一个并不重要)。

然后,实际的秘密值是$a = f_1a_1 + f_2a_2 +.+ f_ka_k \bmod q$,对于一些可公开计算的值-- $f_1、f_2、.、f_k$ (这取决于实际的共享集)。因此,某个人,可能是交易商,计算值:

$$Q = f_1P_1 + f_2P_2 +.+ f_kP_k -P$

每个人都可以验证,因为所有参数都是公开的。

经销商可将此表述为:

$$Q = \sum f_i(a_iG + v_iH) \- (aG + vH) = (\sum f_ia_i - a)G + (\sum f_iv_i -v)H$

经销商知道的值$f_i,v_i,v$。因此,如果$a = f_1a_1 + f_2a_2 +.+ f_ka_k$,则交易商可以生成一个ZKP,即他知道$Q$的离散日志到基本$H$;如果不知道,则不能生成这样的证明(因为,如果它知道该离散日志,则它可以(假设它还记得$a,a_i$)计算$G$到基本$H$的离散日志,我们认为这是一个困难的问题。

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

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

复制
相关文章

相似问题

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