作者:Annchain
(本文一切著作权归annchain技术团队所有,未经许可,不得转载。若需转载请联系页尾二维码。)
DKG简介
很多密码学应用要求一个可信的权威持有秘钥。这种系统存在单点故障和秘钥托管的问题。分布式秘钥产生DKG(distributed key generation)通过多方参与,计算共享的公钥与私钥集,解决上述问题, 分布式秘钥产生不依赖任何可信的第三方。在(n,t)-DKG中, n为节点数量,t为阈值, DKG协议允许n个节点共同产生秘钥,使得任何数量大于阈值t的节点子集都能使用该共享秘钥,然而任何数量少于阈值t的节点子集都没有对该共享秘钥的任何知识。
可验证秘密共享
可验证秘钥共享 (verifiable secret sharing, 简称VSS) 是DKG的基本构造块 ,VSS的概念被Shamir 和Blakley引入。
(n,t+δ, t) -秘密共享:对整数n, t ,δ 满足 n>=t+δ>t>=0 ,一个(n,t+δ, t) 秘密共享协议是被用于一个交易方(dealer) 在n个节点之间共享一个秘钥,使得其中任何t+δ或者更多的节点能够计算密钥s, 但是t个或更少的节点没有关于s的任何信息。
δ=1的秘密共享被称之为阈值秘密共享(threshold secret sharing) ,记为(n,t)-秘密共享。
在一些秘密共享应用中,客户端需要验证持续的交易(deal)来避免交易方(dealer)的恶意行为。一种拥有这种可验证性保证的模式被称之为可验证秘密共享(verifiable secret sharing) VSS 。
一个可验证秘密共享(n,t)-VSS 模式有两个阶段(phase)组成。共享阶段和重建阶段
共享阶段 :一个交易方(dealer) 在n个节点之间分发一个秘密,K为足够大的秘钥空间。此阶段结束之后,每个诚实的节点 持有分布式秘密s中的一个秘密。
重建阶段:每个节点广播它的秘密共享,一个重建函数用于计算秘密