法律状态公告日
法律状态信息
法律状态
2018-10-19
授权
授权
2016-08-03
实质审查的生效 IPC(主分类):H04L9/08 申请日:20150613
实质审查的生效
2016-07-06
公开
公开
技术领域
本发明属于密钥管理技术领域,涉及一种秘密分享的份额恢复方法,具体是一种基于(k,n)门限秘密分享的失效份额恢复方法。
背景技术
秘密分享是一种将秘密分割存储的密码技术,目的是阻止秘密过于集中,以达到分散风险和容忍入侵的目的,是信息安全和数据保密中的重要手段。在许多现实场合中,人们都希望对于具有重要价值物件的访问权限不能只由一个人掌握。例如:某个银行有3位出纳,他们每天都要开启保险库。为了安全起见,银行规定至少有两位出纳在场才能开启保险库。这样就可以防止保险库钥匙的意外丢失或损坏,或者每位出纳可能出现的监守自盗行为。
在各种密码体制中也有类似的考虑,不论哪种密码方案,解秘密钥都是需要严格保密的。有时一个密钥控制多个重要文件,也可能是一个主密钥控制着存储在系统中的所有密钥。一旦密钥丢失,或者持有该密钥的人处于某种原因无法提供密钥(如死亡、辞职等),或者存有该密钥的设备损坏,都会造成多个重要文件不能打开。解决这些问题的一种方法是创建该密钥的多个备份并将这些备份分发给不同的人,或者保存在不同的地方。但是这种方案并不理想,原因在于创建的备份数目越多,密钥泄露的可能性就越大。
秘密分享技术提供了一种在不增加风险的前提下提高可靠性的办法来解决上述问题。(k,n)门限的秘密分享技术是由Shamir在1979年提出的:将秘密分解为n个份额并将这些份额分发给不同的人掌管,在秘密丢失的情况下,只有聚集k个或以上的份额就能完全恢复出原始秘密;其中,k,n为大于2的正整数,且n>=k。
经秘密分享产生的各个份额也有丢失或损坏的可能性,在份额丢失或损坏后,份额的持有者当然有权利再次要求持有有效份额。但是,如果恢复出原始秘密,并按照秘密分享的方法将份额重新计算一次,将使得原始秘密完全暴露。
发明内容
本发明的目的就是针对现有技术的不足,提供一种在利用(k,n)门限的秘密分享技术时能够不暴露原始秘密,且不改变其他份额的前提下,恢复出丢失份额的技术方法。当丢失份额数量小于等于n-k时,均可使用本方法恢复。
为实现上述目的,本发明的技术方案如下:设秘密为整数s,确定(k,n)门限的秘密分享方案为在有限域下的多项式为f(x),则f(0)=a0=s,f(x)=ak-1xk-1+ak-2xk-2+…+a1x+a0,n个份额分别为f(1),f(2),…,f(n),且分别由n个不同的持有者P1,P2,…,Pn掌握,第r个份额持有者Pr的份额丢失或损坏(1≤r≤n),即份额f(r)失效,恢复步骤如下,所述步骤都在有限域modp下运算:
S1、任意选择k个有效份额的持有者,记作P1,P2,…,Pk,其持有份额记作F(1),F(2),……,F(k);
S2、上述每一个有效份额持有者Pi(1≤i≤k),均需要各自确定一个k-1阶多项式gi(x),所述多项式gi(x)满足条件:(1)gi(0)≠0;(2)gi(r)=0;
S3、每一个有效份额持有者Pi根据确定的gi(x),计算出gi(1),gi(2),…,gi(k),并分发给对应的有效份额持有者p1,p2,…,pk;
S4、每一个有效份额持有者Pi作如下计算:g1(i)+g2(i)+…+gk(i)+F(i)=h(i);
S5、将获得的数据集{h(i),1≤i≤k}进行拉格朗日插值多项式算法得到一个k-1阶多项式h(x);
S6、计算得出h(r)的值,即是份额丢失者Pr的份额。
所述方法中失效份额数量小于等于n-k个。
本发明的有益效果是提供了一种基于(k,n)门限秘密分享的失效份额恢复方法,不大于n-k个份额失效后,可以在不暴露秘密的前提下得到恢复,增强了秘密分享技术的实用性;且该方法步骤简单,便于操作。
附图说明
图1是本发明所述的失效份额恢复方法的步骤示意图。
具体实施方式
下面结合附图,对本发明的实施作进一步的描述。如图1所示,当第r个份额持有者Pr的份额f(r)失效时,首先选择k个有效份额的持有者p1,p2,…,pk,其有效份额分别为F(1),F(2),……,F(k);对每一个有效份额持有者pi,各自确定一个k-1阶多项式gi(x),gi(x)满足条件:(1)gi(0)≠0;(2)gi(r)=0,计算出gi(1),gi(2),…,gi(k),并分发给对应的有效份额持有者p1,p2,…,pk;计算g1(i)+g2(i)+…+gk(i)+F(i)=h(i);将获得的数据集{h(i),1≤i≤k}进行拉格朗日插值多项式算法得到一个k-1阶多项式h(x);计算得出h(r)的值,即是丢失的份额。
实施例一
假设:1、需要进行分享的秘密为1;2、秘密分享体系的门限为(3,n),其中n为大于3的整数;3、所有运算在模7整数有限域上进行;4、确定秘密分享体系的多项式为f(x)=2x2+3x+1。
根据假设得到份额持有者P1~P4的份额分别为f(1)=6,f(2)=1,f(3)=0,f(4)=3。当份额持有者P4的份额f(4)丢失或损坏后,可以按照如下步骤恢复:
S1、选择k个有效份额的持有者,即3个有效份额持有者,记作p1,p2,p3,其持有份额记作F(1),F(2),F(3),即F(1)=f(1)=6,F(2)=f(2)=1,F(3)=f(3)=1;
S2、对份额持有者p1任意选取满足条件g1(r)=g1(4)=0和g1(0)≠0的多项式:g1(x)=x2+6x+2;
对份额持有者p2任意选取满足条件g2(r)=g2(4)=0和g2(0)≠0的多项式:g2(x)=2x2+2x+2;
对份额持有者p3任意选取满足条件g3(r)=g3(4)=0和g3(0)≠0的多项式:g3(x)=3x2+x+4;
S3、根据确定的g1(x)计算得到g1(1)=2,g1(2)=4,g1(3)=1,并分别分发给有效份额持有者p1,p2,p3;
根据确定的g2(x)计算得到g2(1)=6,g2(2)=0,g2(3)=5,并分别分发给p1,p2,p3;
根据确定的g3(x)计算得到g3(1)=1,g3(2)=4,g3(3)=6,并分别分发给p1,p2,p3;
S4、份额持有者p1作如下计算:h(1)=g1(1)+g2(1)+g3(1)+F(1)=6+2+6+1=1;
份额持有者p2作如下计算:h(2)=g1(2)+g2(2)+g3(2)+F(2)=1+4+0+4=2;
份额持有者p3作如下计算:h(3)=g1(3)+g2(3)+g3(3)+F(3)=0+1+5+6=5;
S5、将得到的h(1),h(2),h(3)进行拉格朗日多项插值算法得出一个2阶多项式h(x)=x2+5x+2。
S6、计算得到h(4)=16+20+2=3,即为失效的份额f(4)。
实施例二
假设:1、需要进行分享的秘密为1;2、秘密分享体系的门限为(4,6);2、需要进行分享的秘密为1;3、所有运算在模11整数有限域上进行;4、确定秘密分享体系的多项式为f(x)=x3+2x2+3x+1。
根据假设得到份额持有者P1~P6的份额分别为f(1)=7,f(2)=1,f(3)=0,f(4)=10,f(5)=4,f(6)=10。当份额持有者P3和P4的份额f(3)和f(4)丢失或损坏后,可以按照如下步骤恢复:
首先恢复持有者P3的份额f(3),步骤如下:
S1、选择k个有效份额的持有者,即4个有效份额持有者,记作p1,p2,p3,p4,其持有份额记作F(1),F(2),F(3),F(4),即F(1)=f(1)=7,F(2)=f(2)=7,F(3)=f(5)=4,F(4)=f(6)=10;
S2、对份额持有者p1任意选取满足条件g1(r)=g1(3)=0和g1(0)≠0的多项式:g1(x)=x3+3x2+7x+2;
对份额持有者p2任意选取满足条件g2(r)=g2(3)=0和g2(0)≠0的多项式:g2(x)=x3+2x2+6x+3;
对份额持有者p3任意选取满足条件g3(r)=g3(3)=0和g3(0)≠0的多项式:g3(x)=2x3+x2+3x+5;
对份额持有者p4任意选取满足条件g4(r)=g4(3)=0和g4(0)≠0的多项式:g4(x)=3x3+x2+6x+2;
S3、根据确定的g1(x)计算得到g1(1)=2,g1(2)=3,g1(3)=6,g1(4)=5,并分别分发给p1,p2,p3,p4;
根据确定的g2(x)计算得到g2(1)=1,g2(2)=9,g2(3)=10,g2(4)=8,并分别分发给p1,p2,p3,p4;
根据确定的g3(x)计算得到g3(1)=0,g3(2)=9,g3(3)=9,g3(4)=7,并分别分发给p1,p2,p3,p4。
根据确定的g4(x)计算得到g4(1)=0,g4(2)=9,g4(3)=9,g4(4)=7,并分别分发给p1,p2,p3,p4;
S4、份额持有者p1作如下计算:h(1)=g1(1)+g2(1)+g3(1)+g4(1)+F(1)=2+1+0+1+7=0;
份额持有者p2作如下计算:h(2)=g1(2)+g2(2)+g3(2)+g4(2)+F(2)=3+9+9+9+1=9;
份额持有者p3作如下计算:h(3)=g1(3)+g2(3)+g3(3)+g4(3)+F(3)=6+10+9+3+4=10;
份额持有者p4作如下计算:h(4)=g1(4)+g2(4)+g3(4)+g4(4)+F(4)=5+8+7+7+10=4;
S5、将得到的h(1),h(2),h(3),h(4)进行拉格朗日多项插值算法得出一个3阶多项式h(x)=8x3+9x2+3x+2。
S6、计算得到h(3)=0,即为失效的份额f(3)。
恢复持有者P4的份额f(4),步骤如下:
S1、同上,选择k个有效份额的持有者,即4个有效份额持有者,记作p1,p2,p3,p4,其持有份额记作F(1),F(2),F(3),F(4),即F(1)=f(1)=7,F(2)=f(2)=7,F(3)=f(5)=4,F(4)=f(6)=10;
S2、对份额持有者p1任意选取满足条件g1(r)=g1(4)=0和g1(0)≠0的多项式:g1(x)=x3+2x2+3x+2;
对份额持有者p2任意选取满足条件g2(r)=g2(4)=0和g2(0)≠0的多项式:g2(x)=x3+3x2+10x+3;
对份额持有者p3任意选取满足条件g3(r)=g3(4)=0和g3(0)≠0的多项式:g3(x)=2x3+x2+10x+3;
对份额持有者p4任意选取满足条件g4(r)=g4(4)=0和g4(0)≠0的多项式:g4(x)=2x3+2x2+3x+4;
S3、根据确定的g1(x)计算得到g1(1)=8,g1(2)=2,g1(3)=5,g1(4)=0,并分别分发给p1,p2,p3,p4
根据确定的g2(x)计算得到g2(1)=5,g2(2)=9,g2(3)=10,g2(4)=1,并分别分发给p1,p2,p3,p4;
根据确定的g3(x)计算得到g3(1)=5,g3(2)=10,g3(3)=9,g3(4)=3,并分别分发给p1,p2,p3,p4;
根据确定的g4(x)计算得到g4(1)=0,g4(2)=1,g4(3)=0,g4(4)=9,并分别分发给p1,p2,p3,p4;
S4、份额持有者p1作如下计算:h(1)=g1(1)+g2(1)+g3(1)+g4(1)+F(1)=8+5+5+0+7=3;
份额持有者p2作如下计算:h(2)=g1(2)+g2(2)+g3(2)+g4(2)+F(2)=2+9+10+1+1=1;
份额持有者p3作如下计算:h(3)=g1(3)+g2(3)+g3(3)+g4(3)+F(3)=5+10+9+10+4=6;
份额持有p4作如下计算:h(4)=g1(4)+g2(4)+g3(4)+g4(4)+F(4)=0+1+3+9+10=1;
S5、将得到的h(1),h(2),h(3),h(4)进行拉格朗日多项插值算法得出一个3阶多项式h(x)=7x3+10x2+7x+1。
S6、计算得到h(4)=10,即为失效的份额f(4)。
以上结合对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。
机译: 一种基于trng生成并拆分为份额的令牌的安全令牌的生成和传输方法及其系统
机译: 一种基于trng生成并拆分为份额的令牌的安全令牌的生成和传输方法及其系统
机译: 一种基于电解的ND-Fe-B磁体碎屑选择稀土元素的选择性恢复方法