【技术实现步骤摘要】
一种分布式密钥生成的算法
本专利技术涉及区块链
,具体涉及一种分布式密钥生成的算法。
技术介绍
在某些重要场合,一份文档需要多人签名来保证数据的安全,比如高机密文档的使用或者电子货币的交易中。对于此类问题,比较常见的解决方法是将用户的私钥分割为多份,将分割后的数据分发给多个参与方,当需要使用私钥进行签名时,多个被分割的数据可以恢复用户的私钥,进而产生签名。然而,一旦私钥被恢复,任何单独的一方即可在其他参与方不知晓的情况下产生签名。特别是在两方需要共同签名一个合同或协议的情况下,两方中的一方如果获得了原始的签名私钥,则在不经过对方同意的情况下即可对任意合同进行签名,产生用户私钥被盗的风险。现有技术中,有通过分布式密钥进行签名的算法,这种算法实现了在不还原私钥的前提下对节点用户的信息进行签名,但现有的算法无法实现在区块链上节点用户发生变动时,在不还原分布式私钥的前提下,更新所有节点用户的用户份额私钥。
技术实现思路
本专利技术的目的是提供一种分布式密钥生成的算法,在不还原分布式私钥的前提下,更新所有节点用户的用户份额私钥。本专利技术的一个实施例提供了一种分布式密钥生 ...
【技术保护点】
1.一种分布式密钥生成的算法,其特征在于,包括以下步骤:1)定义区块链上所有节点的数量为n,G为生成公钥所用的算法公式所使用的椭圆曲线点群的基点,区块链上的所有节点用户Pi产生原始随机数di,i为Pi的序号值,并将所述di转化为Pi的公钥diG,并将diG进行广播,同时接收区块链上其他节点用户发送的diG;2)所有Pi随机生成多个密钥生成多项式系数ai,1……ai,k‑1,所述k的取值范围为[1,n],并生成拉格朗日插值多项式,所述多项式的格式为:fi(xi)=di+ai,1xi+…+ai,k‑1xi
【技术特征摘要】
1.一种分布式密钥生成的算法,其特征在于,包括以下步骤:1)定义区块链上所有节点的数量为n,G为生成公钥所用的算法公式所使用的椭圆曲线点群的基点,区块链上的所有节点用户Pi产生原始随机数di,i为Pi的序号值,并将所述di转化为Pi的公钥diG,并将diG进行广播,同时接收区块链上其他节点用户发送的diG;2)所有Pi随机生成多个密钥生成多项式系数ai,1……ai,k-1,所述k的取值范围为[1,n],并生成拉格朗日插值多项式,所述多项式的格式为:fi(xi)=di+ai,1xi+…+ai,k-1xik-1(1)xi为公式(1)中Pi的序号值经过哈希运算得到的数值;每一个Pi均计算出每个xi对应的fi(xi)的数值,并将fi(xi)发送给i对应的Pi;3)所有Pi将ai,1……ai,k-1转化成密钥格式,得到多个多项式系数公钥ai,1G……ai,k-1G,并将所述多个多项式系数公钥进行广播;4)所有Pi接收到其他所有节点用户发送的fi(xi)和密钥生成多项式系数公钥,并对所述f(xi)和密钥生成多项式系数公钥用以下公式进行验证:fi(xi)G=diG+ai,1xiG+…+ai,k-1xik-1G(2)公式(2)中i为其他所有节点用户的序号值;如果验证不通过,请求通不过的其他节点用户重新发送diG、fi(xi)和ai,1G……ai,k-1G信息给自己;如果验证结果通过,则进行5)和6)的步骤;5)所有Pi根据接收到所述其他所有节点用户的发送的fi(xi)和自己计算得到的fi(xi),计算出分布式用户份额私钥ti,计算公式为:ti=f1(xi)+f2(xi)+…+fn(xi)(3)6)所有Pi根据接收到所述其他所有节点用户的发送的公钥diG,计算出分布式公钥Q,其计算公式为:Q=d1G+d2G+…+dnG(4)并将Q向区块链网络进行广播。2.根据权利要求1所述的分布式密钥生成的算法,其特征在于,还包括生成分布式私钥q的步骤,具体为:不少于k值数量的所述节点用户,发送ti到密钥中心管理机构,计算生成分布式私钥q,其计算公式为:公式(5)中j表示与i不同的其他所有节点用户的序号值。3.根据权利要求2所述的分布式密钥生成的算法,其特征在于,区块链上节点用户发生变动时,在不还原q的前提下,更新所...
【专利技术属性】
技术研发人员:张亮,李宁宁,曹辉宁,周海汉,
申请(专利权)人:深圳市优学链科技有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。