一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种高效门限可验证多秘密分享方法与流程

2021-11-03 12:44:00 来源:中国专利 TAG:


1.本发明涉及密码学领域,特别涉及一种可验证的多秘密分享方法。


背景技术:

2.在实际生活中,将敏感或重要信息(如银行密码或导弹发射密码)交由一个人保管是十分危险的,保管者手中的信息很容易受到攻击、篡改和丢失,因此使用分布式秘密存储方法是十分重要的。秘密分享技术可以实现将数据分散存储,这对于提高信息存储的安全性有很大意义,其在当今的加密领域有很重要的应用。
3.单一秘密的分享方法主要有shamir、blakley和asmuth分别提出的阈值秘密分享方法。其设计思想是:秘密分发者将需要分享的秘密s分成n个份额,交给不同的n位参与者保管,需要t个或更多的参与者公开他们的份额时方可恢复秘密,而任意少于t个参与者公开其份额时不能得到关于秘密的任何信息。shamir的方法是基于多项式及拉格朗日插值算法建立的,依靠t组点确定t

1阶多项式的性质对秘密进行分享和重构。blakley的方法则是基于超几何多维空间点的概念建立的,将秘密s看作是t维空间的一个点,每个份额为包含该点的(t

1)维超平面的一个方程,任意t个超平面的交点刚好唯一确定这个秘密s。asmuth等人的方法基于中国余数定理,将秘密s分解为余数向量来表示,并通过crt来还原秘密。以上方法中均存在一些问题,比如此类方法中参与者无法验证自己获得的份额是否合法,容易导致分发者对参与者的欺骗。再比如此类方法都是一次性方法,每次方法只能分享一个秘密,一旦秘密被恢复,所有参与者的份额视为暴露,需要重新执行一次方法,为各个参与者分发新的份额。再比如,此类方法单次只能分享一个秘密,想要分享多个秘密需要重复执行方法,效率极低。
4.为了能在一次方法中分享多个秘密,学者提出了多秘密分享方法。每次可以分享多个秘密,但使用该方法分享的秘密必须按照一定顺序来恢复。更高效的多级分享方法是在公开参数数量不变的前提下分享更多数量的秘密。harn基于拉格朗日插值多项式提出了可验证的多秘密分享方法,参与者可以验证自己的份额是否合法。但在该方法中,参与者的验证过程是需要交互的,且涉及到模指数运算,计算复杂度较高,故该方法的实用性较差。
5.目前,如何实现一种能够在兼顾可验证性、复用性的同时,保证高效性的多秘密分享方法是亟待解决的技术问题。


技术实现要素:

6.针对上述问题,本发明提出了一种高效的门限可验证多秘密分享方法,实现了具有可验证性的高效的多秘密分享方法。
7.本发明由以下技术方案实现:
8.在所述秘密分发算法中,包括以下流程;
9.步骤1.1、秘密分发者d确定一个安全质数p,大质数q,从而确定一个p阶有限域gf(q),生成元记为g;秘密分发者d为每个参与者p
i
生成一个秘密份额x
i
,x
i
∈{x1…
,

,x
n
},并
将秘密份额x
i
发给对应的参与者p
i
;最后,秘密分发者d确定一组互质的模值基向量
10.步骤1.2、计算t

1阶多项式h(x)的系数a
i
,表达式如下:
[0011][0012]
其中,crt为中国余数定理算法,为模值基向量,q1,q2,

,q
m
两两互质,为第i组秘密向量;
[0013]
步骤1.3、构建t

1阶的多项式h(x),表达式如下:
[0014]
h(x)=a0 a1x

a
t
‑1x
t
‑1mod q
[0015]
选择本次共享的随机数r∈z,z为整数集;
[0016]
计算每个参与者的公开份额y
i
,表达式如下:
[0017]
y
i
=h(f(r,x
i
))mod q,i=1,

,n
[0018]
其中,f()为双变量单向映射函数;
[0019]
计算每个参与者的验证信息g
i
,表达式如下:
[0020][0021]
步骤1.4、将参数公开至公开板上,提供参与者p查看和下载;
[0022]
当每个参与者p
i
接收到秘密份额x
i
时,若验证等式成立,则秘密份额x
i
合法,其中,g为生成元,y
i
为公开份额,g
j
为公开验证信息;
[0023]
在所述秘密重建算法中,包括以下流程:
[0024]
步骤2.1、参与者p
i
使用秘密份额x
i
和公开本次共享的随机数r,计算伪份额f(r,x
i
);
[0025]
步骤2.2、重建者r从任意节点收集伪份额f(r,x
ri
),i=1,

,t;其中,f()为双变量单向映射函数;
[0026]
步骤2.3、重建者r读取公开板上对应节点的公开信息(如参数),组成t组拉格朗日多项式的插值点(y
ri
,f(r,x
ri
));
[0027]
步骤2.4、重建者r通过拉格朗日插值算法获得插值多项式h(x)=h(x),表达式如下:
[0028]
h(x)=a0 a1x

a
t
‑1x
t
‑1[0029]
其中,a0~a
t
‑1为系数;
[0030]
步骤2.5、根据公开参数,重建者r通过取余运算恢复出对应的秘密k
i,j
=a
j
mod q
i

[0031]
与现有基于shamir方法的多密钥分享方法相比,本发明的一种高效门限可验证多秘密分享方法具有以下优点:
[0032]
1)在分享秘密数量一定的情况下,使多项式阶数减少m倍,从而大幅度降低秘密恢复的计算复杂度,可将分享密钥个数提升m倍,从而大大提高分享效率;
[0033]
2)分发和恢复秘密的算法的复杂度较低,计算开销较少;
[0034]
3)作为复用性方法,无须刷新参与者的秘密份额,减少了份额重发的通信代价。
附图说明
[0035]
图1是本发明的高效门限可验证多秘密分享方法架构图;
[0036]
图2是本发明的高效门限可验证多秘密分享方法的秘密分发算法流程图;
[0037]
图3是本发明的高效门限可验证多秘密分享方法的秘密重建算法流程图;
[0038]
图4是本发明的高效门限可验证多秘密分享方法的算法复杂度比较图;
[0039]
图5是本发明的高效门限可验证多秘密分享方法的公开参数数量比较图。
具体实施方式
[0040]
下面结合附图和具体实施例对本发明技术方法作进一步详细描述。
[0041]
本发明所涉及具体参数如下:
[0042]
设参与者集合记为p∈{p1,

p
i

,p
n
},其中n为参与者个数;
[0043]
预先将秘密分为t组,每组包含m个秘密,因此共有m
×
t个秘密。秘密集合记为对应一组内的每个秘密设置一个互质的余数基,因此有m个互质的余数基q1<q2<q3<q
m
,由余数基组成的余数基向量集合记作k
i,j
为要在n个参与者中进行分享的秘密,i、j分别为秘密集合的组号和组内序号,i=0,

,t

1,j=1,

,m。
[0044]
选定一个双变量单向映射函数f(s,r),选定一个安全质数p,使得p满足q|(p

1),即q整除(p

1),其中q是一个大质数,g代表q阶有限域gf(p)的生成元,所有参数均处于有限域gf(p)内。
[0045]
如图1所示,本发明的一种高效门限可验证多秘密分享方法架构图。该方法包括秘密分发算法阶段和秘密重建算法阶段。
[0046]
如图2所示,是本发明的一种高效门限可验证多秘密分享方法的秘密分发算法流程图,该流程包括以下步骤:
[0047]
步骤1.1、秘密分发者d确定一个安全质数p,使得p满足q|(p

1),即q整除(p

1),其中q是一个大质数,g代表q阶有限域gf(p)的生成元,所有参数均处于有限域gf(p)内。秘密分发者d为每个参与者p
i
生成一个秘密份额x
i
,x
i
∈{x1…
,

,x
n
},秘密份额安全地发给对应的参与者p
i
,确定一组互质的模值基向量
[0048]
步骤1.2、计算t

1阶多项式的系数a
i
,表达式如下:
[0049][0050]
其中,crt为中国余数定理算法,为模值基向量,q1,q2,

,q
m
两两互质,为第i组秘密向量,t

1阶多项式的系数;
[0051]
步骤1.3、构建t

1阶的多项式h(x),表达式如下:
[0052]
h(x)=a0 a1x

a
t
‑1x
t
‑1mod q
[0053]
选择本次共享的随机数r∈z,z为整数集;
[0054]
通过下式计算公开份额y
i
[0055]
y
i
=h(f(r,x
i
))mod q,i=1,

,n
[0056]
其中,f()为双变量单向映射函数,y为公开份额。
[0057]
计算验证信息g
i
,表达式如下:
[0058][0059]
步骤1.4、将参数公开至公开板上,提供参与者p查看和下载;
[0060]
当每个参与者p
i
接收到秘密份额x
i
时,验证等式若相等则秘密份额x
i
合法,其中,g为生成元,y
i
为公开份额,g
j
为公开验证信息;
[0061]
在所述秘密重建算法中,包括以下流程:
[0062]
步骤2.1、参与者p
i
使用自己的秘密份额x
i
和公开本次共享的随机数r,计算伪份额f(r,x
i
);
[0063]
步骤2.2、重建者r从任意节点收集伪份额f(r,x
ri
),i=1,

,t;其中,f()为双变量单向映射函数;
[0064]
步骤2.3、重建者r读取公开板上对应节点的公开信息(如参数),组成t组拉格朗日多项式的插值点(y
ri
,f(r,x
ri
)),i=1,

,t;
[0065]
步骤2.4、重建者r通过拉格朗日插值算法获得插值多项式h(x)=h(x),并确定系数a0~a
t
‑1,
[0066][0067]
步骤2.5、根据公开参数,重建者r通过取余运算恢复出对应的秘密k
i,j
=a
j
mod q
i

[0068]
通过实验验证本发明的正确性:设余数基的个数m=3,余数基为多项式的阶数t=3,一共可以共享9个秘密。设第一组秘密为对应的系数为第二组秘密为:对应的系数为对应的系数为第三组秘密为:对应的系数为其对应的多项式为:h(x)=29147 16298x 4956x2,门限t=3,参与者n=4,随机数r=64。随机选择秘密份额x1=35,x2=28,x3=74,x4=59。安全质数p和生成元g可通过算法获得,均为很大的整数,不必要展示,可以保证以下计算结果均处于gf(p)内。
[0069]
使用映射函数f计算伪份额:
[0070]
f(r,x1)=84058,f(r,x2)=67710,
[0071]
f(r,x3)=53532,f(r,x4)=11138,
[0072]
计算验证信息:
[0073]
计算y
i
=h(f(r,x
i
)):
[0074]
y1=h(f(r,x1))=35019213942415,
[0075]
y2=h(f(r,x2))=22722599726327,
[0076]
y3=h(f(r,x3))=14203157912627,
[0077]
y4=h(f(r,x4))=614998354335
[0078]
参与者验证份额有效性(以y1为例):
[0079][0080]
如果等式成立则份额合法,否则份额不合法,要求分发者d重新分发份额。
[0081]
收集份额并通过多项式插值后可确定系数a0~a2(以y1、y2、y3为例),重建t

1阶多项式h(x):
[0082][0083]
解得:a0=29147,a1=16298,a2=4956
[0084]
恢复秘密:
[0085]
a0mod 31=07;a1mod 31=23;a2mod 31=27;
[0086]
a0mod 37=28;a1mod 37=18;a2mod 37=35;
[0087]
a0mod 41=37;a1mod 41=35;a2mod 41=36;
[0088]
为验证本发明的高效性,分别从重建秘密的算法复杂度以及公开参数数量与其他方法进行比较。如图4所示,是本发明的高效门限可验证多秘密分享方法的算法复杂度比较图。以yang的方法为例,如果需要共享p个秘密,则应构造p

1阶多项式,其对应的复杂度为o((p

1)3)。在本方法中,如果需要共享p=m*t个秘密,则需要构造阶多项式,其对应的复杂度为由图可以看出,要分配固定数量p个秘密,选取更大的余数基个数m可以有效降低多项式的阶数,从而降低插值算法的运算复杂度,与基于shamir的多秘密分享方法的算法复杂度对比下降明显。分享同样多秘密时,秘密重构算法的计算复杂度o随秘密个数p的变化示意图。可见和基于shamir的yang的多秘密分享方法的计算复杂度随要分享的秘密个数p呈立方增长。而本方法恢复秘密的算法复杂度远低于yang的方法,与成正比,而且随着余数基个数m的增加,恢复秘密的算法复杂度将进一步降低。
[0089]
公开参数的数量是表征效率很重要的参数,公开参数数量越少代表秘密分发和重
建时占用的计算和存储资源越少,秘密分享效率越高。假设n为参与者的个数,t为解密门限值(与秘密组数是同一个参数t),m为余数基的个数,p为共享的秘密个数。he

dawson等人的多级秘密分享方法中需要的公开参数为n*p个,he

dawson’s等人的多秘密分享方法中需要(n 1)*p个参数。2004年,chang等人提出了可验证多秘密分享chy方法,需要3*p个公开参数。该方法需要的公开参数随分享的秘密个数成倍增长,代价太大。yang的多秘密分享方法中需要n p

t 1个公开参数,shao等人的可验证多秘密分享方法需要2p n 1

t个公开参数,chen的可验证多级分享方法需要p*(n

t 1)个公开参数。m.h.dehkordi等人的高效可验证多秘密分享方法需要3n p

t 1个公开参数。本方法需要的公开参数数量为n m t 1个,与现有方法相比,分享多秘密时需要的公开参数的数量更少,大大提高了效率。当需要分享的秘密数量p很大时,本文中提到的方法只需要增加极小的公开参数数量为代价即可共享更多的秘密,而其他方法则需要成倍增加公开参数数量,故本方法更高效。
[0090]
如图5所示,是本发明的高效门限可验证多秘密分享方法的公开参数数量比较图。在参与者数量n、门限t一定时,公开参数p随秘密个数p变化趋势的示意图。可以看出在要分享的秘密数量p增加时,其他方法需要的公开参数个数呈线性成倍增长,需要的公开板存储更大,占用资源更多。而本文方法需要的公开参数较其他方法更少,且增加的趋势更小,呈的趋势增加,当需要分享的秘密数量p很大时,本方法只需要增加少量的公开参数即可共享更多的秘密,而其他方法则需要成倍增加公开参数数量,故本方法更高效。
[0091]
综上所述,本发明的一种高效的可验证多秘密分享方法基于shamir的秘密分享方法和中国剩余定理(chinese remainder theorem,crt),使用更少的公开参数共享更多的秘密,进一步提高了秘密分享效率;在n位参与者之间,通过n m t 1个公开参数可以一次分享p=t*m个秘密,每个参与者可验证手中份额的正确性,且任意t个参与者联合起来可以恢复出任何一个秘密。
[0092]
本发明在分享秘密数量相同时,该方法使用的公开参数相较于同类型的方法更少,且随着秘密增多,该方法只需增加少量的公开参数作为代价,公开参数的增加趋势相较于其他方法的更慢;秘密重建时的算法复杂度也会尽量小。
[0093]
本发明实施例仅为示例性,不能理解为对本发明的限制,在不脱离本发明的原理和宗旨的前提下,可以对上述实施例进行修改和扩展。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献