一种针对Shamir秘密共享的用户权重分配方法与流程

文档序号:16899416发布日期:2019-02-19 17:49阅读:412来源:国知局
本发明涉及信息安全
技术领域
:,具体是一种针对shamir秘密共享中用户权重的分配方法。
背景技术
::秘密共享是密码学中的重要原语之一,最早由shamir和blakley于1979年基于代数学和几何学分别提出。其基本思想是将秘密以适当的方式拆分成多个子秘密,不同的子秘密由不同的参与者保存,只有符合条件的多个参与者共同协作才能恢复秘密消息,从而实现对信息的保护与保密。伴随着信息技术的不断发展以及网络场景的愈发复杂,尤其是云计算、分布式存储、大数据等技术的兴起,秘密共享显现出了更为广阔的应用前景,因此广大的科研工作者对其展开了深入研究,并提出了许多功能更加完善、安全性更高的秘密共享方案。例如,针对不同用户权限不同的问题,提出了带权重的shamir秘密共享方案;针对分发者和参与者不诚实的问题,提出了可验证秘密共享的概念;针对子秘密复用问题提出了子秘密可复用的可验证秘密共享方案;将shamir秘密共享方案应用于数据外包、属性基加密、代理重加密、电子投票协议、密钥托管协议等密码算法或协议的设计与实现中,协助保证信息的安全、完整及可用。虽然不断有新的研究成果被提出,但是通过分析可以发现,此类成果着重研究秘密共享方案的性能增强、功能扩展和应用场景部署等方面,针对如何确定用户权重的研究较少,而用户权重的确定是shamir秘密共享方案在实际应用部署中需要最先解决的问题之一。技术实现要素:本发明的目的是针对现有技术的不足,而提供一种针对shamir秘密共享的用户权重分配方法,该方法通过构造有序二叉决策图(orderedbinarydecisiondiagram,obdd)结构,借助obdd完成对秘密共享策略的刻画,实现任意数量用户间的权重分配,并借助子图重构及结构化简,降低算法的时空复杂度、进一步提高权重分配效率。实现本发明目的的技术方案是:一种针对shamir秘密共享的用户权重分配方法,包括如下步骤:(1)构造obdd结构;假设shamir秘密共享阈值为t,秘密共享策略借助于布尔函数f表示,基于布尔函数f构造obdd结构;在obdd结构中存在根结点、中间结点和终结点三类节点;根结点和中间结点统称为非终结点,非终结点使用四元组<id,i,low,high>表示,其中id为结点编号,i为结点中所含变量编号,low和high分别为左、右孩子结点;当非终结点中所含变量取值为0时,能够沿0边到达其左孩子结点,相反的,当非终结点中所含变量取值为1时,能够沿1边到达其右孩子结点;终结点有两个,记为和分别用于表示布尔常量0和1,终结点没有边;基于布尔函数f构造obdd结构,其中非终结点表示用户,非终结点的1边表示用户参与秘密共享、0边表示用户不参与秘密共享;并进一步给出以下定义:有效路径:在之间的某条路径上,若变量按照obdd构造时定义的变量序出现,则称该路径为一条有效路径,有效路径代表了授权用户组合;无效路径:在之间的某条路径上,若变量按照obdd构造时定义的变量序出现,则称该路径为一条无效路径,无效路径代表了非授权用户组合;在不引起歧义的情况下,使用pi同时代表路径和用户组合,对于路径pi,使用一组形式为(xj,edgej)的二元组进行表示,其中xj用于记录结点中用户编号,edgej用于记录结点边值,当edgej取值为1时表示用户xj存在于pi所代表的用户组合,否则表示用户xj不存在于pi所代表的用户组合。(2)提出剪除规则、删除规则和合并规则,基于obdd结构分别构造表示授权用户组合集的授权子obdd和表示非授权用户组合集的非授权子obdd;其中授权子obdd的构造规则如下:(2.1.1)剪除规则:从终结点开始,自下而上剪除与有效路径无关的结点和边;(2.1.2)删除规则1:对于非终结点u,如果满足u.low=u.high,则将指向非终结点u的所有边连接至u.low,然后删除非终结点u;(2.1.3)删除规则2:对于非终结点u,如果满足u.low=1,则将指向非终结点u的所有边连接至[1],然后删除非终结点u;(2.1.4)合并规则:对于非终结点u=<idu,iu,lowu,highu>和非终结点v=<idv,iv,lowv,highv>,如果(iu=iv)∧(lowu=lowv)∧(highu=highv),则将指向非终结点u的所有边连接至非终结点v,然后删除非终结点u;上述规则需重复执行,直至授权子obdd不再变化;基于obdd构造非授权子obdd的规则如下:(2.2.1)剪除规则:从终结点开始,自下而上剪除与无效路径无关的结点和边;(2.2.2)删除规则1:对于非终结点u,如果满足u.low=u.high,则删除u.low;(2.2.3)删除规则2:对于非终结点u,如果满足u.low=0,则将指向非终结点u的所有边连接至然后删除非终结点u;(2.2.4)合并规则:对于非终结点u=<idu,iu,lowu,highu>和非终结点v=<idv,iv,lowv,highv>,如果(iu=iv)∧(lowu=lowv)∧(highu=highv),则将指向非终结点u的所有边连接至结点v,然后删除非终结点u;上述规则需重复执行,直至非授权子obdd不再变化。(3)基于授权子obdd和非授权子obdd分别求取最小授权用户组合集min和最大非授权用户组合集max;基于授权子obdd可以求取最小授权用户组合集,记为min;同理,借助于非授权子obdd可以求取最大非授权用户组合集,记为max;基于授权子obdd求取min的步骤如下:(3.1.1)通过遍历授权子obdd获得全部有效路径,假设共有v条,记为v={v1,v2,…,vi…,vv};(3.1.2)对于某条有效路径vi中的二元组(xj,edgej),若edgej=1则将xj存入集合mini,最终得到最小授权用户组合mini={xj|(xj,edgej)∈vi且edgej=1};(3.1.3)根据全部有效路径求得min={min1,min2,…,minv};同理,基于非授权子obdd求取最大非授权用户组合集max,求取max的步骤如下:(3.2.1)通过遍历非授权子obdd获得全部无效路径,假设共有f条,记为f={f1,f2,…,fi…,ff};(3.2.2)对于某条无效路径fi中的二元组(xj,edgej),若edgej=1则将xj存入集合maxi,最终得到maxi={xj|(xj,edgej)∈fi且edgej=1};(3.2.3)根据全部无效路径求得max={max1,max2,…,maxf}。(4)计算用户权重及秘密分享阈值在进行用户权重计算之前,进行以下约定:将用户xi的份额表示为si,满足si>0;对于用户组合min、max,使用|min|、|max|表示组合内所有用户拥有权重之和;在shamir秘密共享机制中,任意授权用户组合均可完成秘密重构,而任意非授权用户组合均无法完成秘密重构,因此必然满足①满足|mini|≥t;②满足|maxj|<t;因此可以借助于多个多项式表示权限分配需满足的条件,即:|mini|>|maxj|,其中mini∈min、maxj∈max;进一步地,通过求解上述多项式便可得出各参与方的具体权重,并将shamir秘密共享阈值t设置为集合{|mini||mini∈min}中元素的最小取值。通过上述技术方案可以看出,本发明采用obdd结构实现对秘密共享策略的刻画,并借助于子图同构及结构化简使得obdd简洁高效;由于obdd结构能够刻画任意形式的布尔函数,因此本发明方法能够实现任意数量用户间的权重计算。此外,由于本发明方法能够借助于子图同构以及新提出的多个化简规则实现对obdd的化简,因此使得其时间复杂度和空间复杂度显著降低,保证obdd简洁高效的同时,进一步提升权重计算效率。附图说明图1是本发明针对shamir秘密共享的用户权重分配方法流程图;图2是实施例中obdd结构中存在子图同构示意图;图3是实施例中同构子图合并后得到的新obdd结构示意图;图4是实施例中根据实例1中的访问策略所构造的obdd结构示意图;图5是实施例中根据实例2构造的授权子obdd结构示意图;图6是实施例中根据实例2构造的非授权子obdd结构示意图。具体实施方式下面结合实施例和附图,对本发明的内容作进一步的详细说明,但不是对本发明的限定。现有技术中,shamir(t,n)秘密共享的实现思路为:将秘密s分解成n份子秘密,当不少于t份子秘密相互联合时可以恢复出s,而任意少于t份的子秘密相互联合无法恢复出s。shamir秘密共享方案,主要包括秘密拆分、秘密重构两个过程:(1)秘密拆分秘密拆分过程主要由秘密分发者将秘密s分解成n份子秘密,并分别交由n个不同用户{p1,p2,…,pn}持有;具体有以下操作:秘密分发者选择有限域fq(其中q≥n),随机从fq中选择并公开n个互不相同的非零元素x1,x2,…,xn;随机从fq中选择并公开(t-1)个元素a1,a2,…,at-1,构造(t-1)次多项式f(x)=s+a1x+a2x2+…+at-1xt-1,计算子秘密f(xi)(1≤i≤n)并发送给秘密持有者pi(1≤i≤n);(2)秘密重构不失一般性,假设参与秘密重构的用户为{p1,p2,…,pt};秘密持有者pi(1≤i≤t)分别提供子秘密(xi,f(xi)),借助于lagrange插值法可以恢复出秘密拆分过程中所构造的多项式继而计算出秘密s=f(0)。加权shamir秘密共享:此类机制可表示为(t,n,w),其中t为秘密分享门限值,n为参与秘密共享的用户总量,w代表用户权值分配函数。假设秘密持有者pi(1≤i≤n)的权重为wi(1≤i≤n),加权门限秘密共享方案的具体含义是指,对于某一用户组合p’,如果满足则用户组合p’可以完成秘密恢复;否则无法完成秘密恢复。实施例参照图1,本发明针对shamir秘密共享的用户权重分配方法,实现的基本依据是:假设秘密共享阈值为t,那么任意授权用户组合所拥有的权值之和应不小于t,且任意非授权用户组合所拥有的权值之和必须小于t,本发明方法具体包括如下步骤:(1)构造obdd结构,假设shamir秘密共享阈值为t,秘密共享策略借助于布尔函数f表示,基于布尔函数f构造obdd结构。obdd是一种用来规范化表示布尔函数f的有向无环图,由结点和边组成,其性质如下:①共包含根结点、中间结点和终结点三类节点,根结点和中间结点统称为非终结点;②根结点root表示f;③非终结点可使用四元组<id,i,low,high>表示,其中id为结点编号,i为结点中所含变量编号,low和high分别为左、右孩子结点;当非终结点中所含变量取值为0时,能够沿0边到达其左孩子结点,相反的,当非终结点中所含变量取值为1时,能够沿1边到达其右孩子结点;④终结点有两个,记为和分别用于表示布尔常量0和1,终结点没有边;⑤在图形化表示中,非终结点使用圆圈○表示,终结点使用方框□表示,非终结点与左、右孩子结点间分别使用虚线和实线连接;obdd中结点的构造如下:structnode{unsignedshortndex;//变量编号unsignedshortid;//结点编号structnode*low;//0分枝子结点structnode*high;//1分枝子结点doubleval;//终结点取值为0或者1};子图同构:给定obdd结构中的两个非终结点u=<idu,iu,lowu,highu>和v=<idv,iv,lowv,highv>;非终结点u和v代表的子图分别为gu和gv,gu和gv同构(表示为)是指(iu=iv)根据以上定义,在图2所示的obdd中,非终结点u和v所代表的子图是同构的,即若将同构子图进行合并,可以得出图3所示的obdd。借助于obdd完成对秘密共享策略的刻画,采用香农展开定理:该定理是obdd的基本构造准则,其数学表达如下:f(x1,x2,…,xi,…,xn)=xi·f(x1,x2,…,1,…,xn)+xi’·f(x1,x2,…,0,…,xn);按照香农定理将全部变量(xi(1≤i≤n))展开,将得到唯一的obdd结构,但是在展开之前需要预先定义变量的展开顺序。假设共有n个参与者,记为x={x1,x2,…,xn},以布尔函数形式表述的秘密共享策略为f(x1,x2,…,xn),obdd中的变量序为π:x1<x2<…<xn。基于香农展开定理,obdd的构造可由以下递归算法实现:算法1.根据秘密共享策略构造obdd在上述算法中,node表示obdd中的结点,computed-table用于存储递归算法执行过程中所构造的结点;借助于computed-table,该算法能够判定子图重构并合并重复结点,保证obdd简洁高效。由以上叙述可见,在本发明中构造的obdd结构中,非终结点用于表示用户,结点的1边表示用户参与秘密共享、0边表示用户不参与秘密共享;有效路径:在之间的某条路径上,若变量严格按照obdd构造时定义的变量序出现,则称该路径为一条有效路径,有效路径代表了授权用户组合;无效路径:在之间的某条路径上,若变量严格按照obdd构造时定义的变量序出现,则称该路径为一条无效路径,无效路径代表了非授权用户组合;在不引起歧义的情况下,使用pi同时代表路径和用户组合,对于路径pi,使用一组形式为(xj,edgej)的二元组进行表示,其中xj用于记录结点中用户编号,edgej用于记录结点边值,当edgej取值为1时表示用户xj存在于pi所代表的用户组合,否则表示用户xj不存在于pi所代表的用户组合。实例1:假设秘密s由项目组{总监,副总监,员工1,员工2}中的全体人员共享,总监和其他任意一名项目组成员可以重构该秘密,副总监和其他任意两名项目组成员也可以重构该秘密;首先对项目组成员进行编号,如下表所示:表1.秘密共享成员及其编号基于上表可以得出与秘密重构策略相对应的布尔函数f=x1·(x2+x3+x4)+x2·(x1x3+x1x4+x3x4),最终根据算法1得出图4所示obdd。(2)提出剪除规则、删除规则和合并规则,基于obdd结构分别构造表示授权用户组合集的授权子obdd和表示非授权用户组合集的非授权子obdd;其中授权子obdd的构造规则如下:(2.1.1)剪除规则:从终结点0开始,自下而上剪除与有效路径无关的结点和边;(2.1.2)删除规则1:对于非终结点u,如果满足u.low=u.high,则将指向非终结点u的所有边连接至u.low,然后删除非终结点u;(2.1.3)删除规则2:对于非终结点u,如果满足u.low=1,则将指向非终结点u的所有边连接至1,然后删除非终结点u;(2.1.4)合并规则:对于obdd结构中的非终结点u=<idu,iu,lowu,highu>和非终结点v=<idv,iv,lowv,highv>,如果(iu=iv)∧(lowu=lowv)∧(highu=highv),则将指向非终结点u的所有边连接至非终结点v,然后删除非终结点u;上述规则需重复执行,直至授权子obdd不再变化;基于obdd构造非授权子obdd的规则如下:(2.2.1)剪除规则:从终结点1开始,自下而上剪除与无效路径无关的结点和边;(2.2.2)删除规则1:对于非终结点u,如果满足u.low=u.high,则删除u.low;(2.2.3)删除规则2:对于非终结点u,如果满足u.low=0,则将指向非终结点u的所有边连接至0,然后删除非终结点u;(2.2.4)合并规则:对于obdd结构中的非终结点u=<idu,iu,lowu,highu>和非终结点v=<idv,iv,lowv,highv>,如果(iu=iv)∧(lowu=lowv)∧(highu=highv),则将指向非终结点u的所有边连接至结点v,然后删除非终结点u;上述规则需重复执行,直至非授权子obdd不再变化。实例2:基于以上规则,根据实例1中的obdd可以构造出图5所示的授权子obdd和图6所示的非授权子obdd。(3)基于授权子obdd和非授权子obdd分别求取最小授权用户组合集min和最大非授权用户组合集max;基于授权子obdd求取min的步骤如下:(3.1.1)通过遍历授权子obdd获得全部有效路径,假设共有v条,记为v={v1,v2,…,vi…,vv};(3.1.2)对于某条有效路径vi中的二元组(xj,edgej),若edgej=1则将xj存入集合mini,最终得到最小授权用户组合mini={xj|(xj,edgej)∈vi且edgej=1};(3.1.3)根据全部有效路径求得min={min1,min2,…,minv};同理,基于非授权子obdd求取最大非授权用户组合集max,求取max的步骤如下:(3.2.1)通过遍历非授权子obdd获得全部无效路径,假设共有f条,记为f={f1,f2,…,fi…,ff};(3.2.2)对于某条无效路径fi中的二元组(xj,edgej),若edgej=1则将xj存入集合maxi,最终得到maxi={xj|(xj,edgej)∈fi且edgej=1};(3.2.3)根据全部无效路径求得max={max1,max2,…,maxf}。实例3:基于实例2中求得的授权子obdd和非授权子obdd,可以按照以上步骤分别得出全部的有效路径、无效路径、最小授权用户组合、最大非授权用户组合、最小授权组合集min、最大非授权组合集max;共有4条有效路径:对应的最小授权用户组合分别记为min1={x2,x3,x4}、min2={x1,x4}、min3={x1,x3}、min4={x1,x2};最小授权组合集min={{x2,x3,x4},{x1,x4},{x1,x3},{x1,x2}};共有4条无效路径:对应的最大非授权用户组合分别记为max1={x3,x4}、max2={x2,x4}、max3={x2,x3}、max4={x1},最大非授权组合集max={{x3,x4},{x2,x4},{x2,x3},{x1}}。(4)计算用户权重及秘密分享阈值在进行用户权重计算之前,首先进行以下约定:将用户xi的份额表示为si,满足si>0;对于用户组合min、max,使用|min|、|max|表示组合内所有用户拥有权重之和;在shamir秘密共享机制中,任意授权用户组合均可完成秘密重构,而任意非授权用户组合均无法完成秘密重构,因此必然满足①满足|mini|≥t;②满足|maxj|<t,因此可以借助于多个多项式表示权限分配需满足的条件,即:|mini|>|maxj|,其中mini∈min、maxj∈max,进一步地,通过求解上述多项式便可得出各参与方的具体权重,并将shamir秘密共享阈值t设置为集合{|mini||mini∈min}中元素的最小取值。实例4:计算shamir秘密共享中用户权重由实例3可知,在min中共有4组授权用户组合,在max中共有4组非授权用户组合,按照上述权重计算方法,可以得出如下多项式:|min1|>|max1|,|min2|>|max1|,|min3|>|max1|,|min4|>|max1|,|min1|>|max2|,|min2|>|max2|,|min3|>|max2|,|min4|>|max2|,|min1|>|max3|,|min2|>|max3|,|min3|>|max3|,|min4|>|max3|,|min1|>|max4|,|min2|>|max4|,|min3|>|max4|,|min4|>|max4|;即s2+s3+s4>s3+s4,s1+s4>s3+s4,s1+s3>s3+s4,s1+s2>s3+s4,s2+s3+s4>s2+s4,s1+s4>s2+s4,s1+s3>s2+s4,s1+s2>s2+s4,s2+s3+s4>s2+s3,s1+s4>s2+s3,s1+s3>s2+s3,s1+s2>s2+s3,s2+s3+s4>s2,s1+s4>s2,s1+s3>s2,s1+s2>s2。对上述多项式进行约简及整合,得出s1>s2>0,s1>s3>0,s1>s4>0,s1+s2>s3+s4,s1+s3>s2+s4,s1+s4>s2+s3。若添加约束条件minimizet,则求将份额计算转换为整数规划问题,即minimizet通过求解上述问题可得s1=2,s2=1,s3=1,s4=1,t=3;需要指出的是,约束条件可以进行其他设置,如minimize∑(si)、minimizemax(si)。以上对本发明实施例所提供的一种针对shamir秘密共享的用户权重分配方法进行了详细介绍,本发明中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1