发明内容
有鉴于此,本发明提供了一种用于分级管理的二级门限签名方法及装置,能够解决分级管理中门限签名存在的安全性和实用性的技术问题。
为了解决上述技术问题,本发明是这样实现的。
一种用于分级管理的二级门限签名方法,包括:
步骤S1:获取待签名文件M,配置参与签名的角色,参与签名的角色包括可信任中心D、签名组织者C、签名者、签名接收者;所述签名者包括分公司级签名者和部门级签名者;
步骤S2:可信任中心D为待签名文件M选择参数,为每个分公司级签名者和每个部门级签名者分别生成各自对应的子密钥;
步骤S3:选择签名人员,所述签名人员包括分公司级签名人员和部门级签名人员,所述签名人员由部分分公司级签名者和部分部门级签名者形成;由各个签名人员分别使用各自对应的子密钥对所述待签名文件M签名;
步骤S4:签名组织者C接收各个签名人员对所述待签名文件M的签名结果,验证其合规性;合成通过验证的各个签名结果,用所述签名组织者C自身的私钥Dc对合成后的签名结果签名,得到最终签名结果,向签名接收者发布最终签名结果;
步骤S5:所述签名接收者基于所述签名组织者C的公钥Ec对签名组织者C的签名合规性进行验证,再计算得到验证点,将验证点与从所述签名组织者C处获取的签名点进行比较,对各签名人员的签名合规性进行验证。
优选地,所述步骤S1,所述参与签名的角色包括可信任中心D、签名组织者C、签名者、签名接收者,其中:
分公司级签名者Pi下属的全部部门级签名者Pi,j组成所述部门级签名者群体Ti,分公司级签名者Pi与部门级签名者Pi,j的对应关系为:第i个分公司级签名者Pi下有j个部门级签名者Pi,j;
所述可信任中心D用于为所述待签名文件选择参数,对分公司级签名者群体P的私钥d进行计算,得到多个子密钥di,将各个子密钥di分别发送给对应的分公司级签名者Pi;将基于分公司级签名者Pi的子密钥di进行计算得到的各个子密钥di,j分别发送给对应的部门级签名者Pi,j;
所述签名组织者C接收各个分公司级签名人员和各个部门级签名人员对所述待签名文件M的签名结果,验证其正确性;合成通过验证的各个签名结果,用所述签名组织者C自身的私钥Dc对合成后的签名结果签名,得到最终签名结果,向签名接收者发布所述最终签名结果,所述签名组织者C是群签名消息的唯一发布者;
所述签名者进行门限签名操作,所述签名者划分为分公司级签名者和部门级签名者,用集合P={P1,P2,…Pn}表示由n个分公司级签名者组成的分公司级签名者群体;用集合Ti={Pi,1,Pi,2,…,Pi,j}表示由第i个分公司签名者下的j个部门级签名者组成的部门级签名者群体,其中1≤i≤n。
优选地,所述步骤S2,包括:
步骤S21:获取所述待签名文件的文件属性;
步骤S22:基于所述文件属性,所述可信任中心D确定所述参数,所述参数包括有限域Fq、Fq上椭圆曲线E、椭圆曲线E的基点G、单向哈希函数h(·)、待签名文件M、以及分公司级签名者组成的签名者群体P的私钥d,其中:
有限域Fq:其中q为大素数,由可信任中心D给定;
Fq上椭圆曲线E:可信任中心D在Fq中选取两个元素a和b,生成E的方程y2=x3+ax+b,椭圆曲线上有一个唯一的无穷远点,记为O,x,y分别为x,y分别为横坐标的值和纵坐标的值;
可信任中心D选取所述椭圆曲线的基点G∈E(Fq),G≠O,基点G的阶为k,其中k为大素数,且满足kG=O,E(Fq)为Fq上椭圆曲线E;
待签名文件M,所述可信任中心D通知签名组织者,由所述签名组织者给定;
单向哈希函数h(·),采用SM3算法;
所述分公司级签名者组成的签名者群体P的私钥d,由随机数生成器产生;所述公司级签名者组成的签名者群体P的公钥Q=dG≠O;
步骤S23:基于分公司级签名者群体P的私钥d计算得到子密钥di,将所述子密钥di发送给对应的分公司级签名者Pi,基于子密钥di计算得到子密钥di,j,将所述子密钥di,j发送给对应的部门级签名者Pi,j,包括:
可信任中心D将集合P的私钥d分成n等份,计算得到子密钥di,将所述子密钥di发送给对应的分公司级签名者Pi,使得数量大于或等于t的任意分公司级签名者组成的子集均能够代表全部分公司级签名者组成的群体;将所述子密钥di发送给对应的分公司级签名者Pi的分发过程采用Shamir秘密共享体制:
可信任中心D将Pi的私钥di分成mi等份,基于子密钥di计算得到子密钥di,j,然后将各个子密钥di,j分发给Ti中的每一个成员Pi,j,使得同一分公司下,数量大于或等于s的部门级签名者组成的子集均可代表该分公司下的全部部门级签名者组成的群体;将各个子密钥di,j分发给Ti中的每一个成员Pi,j的分发过程采用Shamir秘密共享体制。
优选地,所述步骤S3:选择签名人员,所述签名人员包括分公司级签名人员和部门级签名人员,所述签名人员由部分分公司级签名者和部分部门级签名者形成;由各个签名人员分别使用各自对应的子密钥对所述待签名文件M签名,包括:
步骤S31:从全部分公司级签名者中选择num个分公司级签名人员,若num大于或等于t,进入步骤S32;若num小于t,确定t-num个未被选择的分公司级签名者,对所述t-num个未被选择的分公司级签名者中的每一个,均从其对应的全部部门签名者中选择s个部门级签名人员,记num个分公司级签名人员分别为P1,P2,…,Pu,其中1<u≤num,再记代替第l个分公司签名的部门级签名人员为Pl,1,Pl,2,…,Pl,s,其中u<l≤t,1≤s≤j,进入步骤S32;
步骤S32:对各部门级签名人员Pl,w,其中1≤w≤s:各部门级签名人员Pl,w产生随机数kl,w,用以计算中间值Wl,w=kl,wG和Ql,w=dl,wG,并将Wl,w和Ql,w发送给签名组织者C;
对各分公司级签名人员Pv,其中1≤v≤u:各分公司级签名人员Pv产生随机数kv,用以计算中间值Wv=kvG和Qv=dvG,并将Wv和Qv发送给签名组织者C;
对签名组织者C:签名组织者C通过接收到各部门级签名人员P
l,w发送的W
l,w计算得到W
l,再结合接收到的各分公司级签名人员P
v发送的W
v,计算得到签名点
其中W
z包括W
v和W
l,接着签名组织者C计算得到签名点横坐标的值r=x(mod q)并将其发送给各签名人员;
步骤S33:对各部门级签名人员Pl,w:各部门级签名人员Pl,w对待签名文件M进行签名得到sl,w并发送给签名组织者C,即
sl,w=kl,w+dl,wH(r|M)ew(modq)
其中,s
l,j为部门级签名人员P
l,j对文件M的签名,r为签名点横坐标的值,,H(r|M)为文件M与签名点横坐标的值r拼接后的哈希值,
对各分公司级签名人员Pv:各分公司级签名人员Pv对待签名文件M进行签名得到sv并发送给签名组织者C,即
sv=kv+dvH(r|M)bv(mod q)
其中,H(r|M)为文件M与签名点横坐标的值r拼接后的哈希值,
优选地,所述步骤S4:签名组织者C接收各个签名人员对所述待签名文件M的签名结果,验证其合规性;合成通过验证的各个签名结果,用所述签名组织者C自身的私钥Dc对合成后的签名结果签名,得到最终签名结果,向签名接收者发布最终签名结果,包括:
步骤S41:对各部门级签名人员Pl,w的签名,所述签名组织者C比较sl,wG-H(r|M)ewQl,w与Wl,w二者是否相等,若二者相等,则签名组织者C认定该部门级签名人员Pl,w的签名合规并接受,若二者不相等,签名组织者C结束本次签名过程,方法结束;
步骤S42:对各部门级签名人员Pv的签名,签名组织者C比较svG-H(r|M)bvQv与Wv是否相等,若二者相等,则签名组织者C认定该分公司级签名人员Pv的签名合规并接受,若二者不相等,签名组织者C结束本次签名过程,方法结束;
步骤S43:签名组织者C通过
合成s
l;签名组织者C计算
其中,s
z包括s
v和s
l;签名组织者C再将(s,r)用自己的私钥D
c进行签名,签名后分别为(s′,r′);签名组织者C将(s,r,s′,t′,M)输出作为对待签名文件M的最终签名。
优选地,所述步骤S5:所述签名接收者基于所述签名组织者C的公钥Ec对签名组织者C的签名合规性进行验证,再计算得到验证点,将验证点与从所述签名组织者C处获取的签名点进行比较,对各签名人员的签名合规性进行验证,包括:
步骤S51:签名接收者用签名组织者C的公钥Ec判断(s′,r′)是否是(s,r)的合规签名;如果不是,则认为本次签名过程出现异常,并放弃后续验证,方法结束;如果是,进入步骤S52;
步骤S52:签名接收者计算得到验证点(x′,y′)=sG-H(r|M)Q;
步骤S53:签名接收者计算得到验证点横坐标的值t″=x′(mod q),接着比较r″和r二者是否相等,若相等则认定签名人员的签名合规并接受,方法结束;否则拒绝,方法结束。
本发明所提供的一种用于分级管理的二级门限签名的装置,所述装置包括:
配置模块:配置为获取待签名文件M,配置参与签名的角色,参与签名的角色包括可信任中心D、签名组织者C、签名者、签名接收者;所述签名者包括分公司级签名者和部门级签名者;
密钥生成模块:配置为可信任中心D为待签名文件M选择参数,为每个分公司级签名者和每个部门级签名者分别生成各自对应的子密钥;
签名模块:配置为选择签名人员,所述签名人员包括分公司级签名人员和部门级签名人员,所述签名人员由部分分公司级签名者和部分部门级签名者形成;由各个签名人员分别使用各自对应的子密钥对所述待签名文件M签名;
发布模块:配置为签名组织者C接收各个签名人员对所述待签名文件M的签名结果,验证其合规性;合成通过验证的各个签名结果,用所述签名组织者C自身的私钥Dc对合成后的签名结果签名,得到最终签名结果,向签名接收者发布最终签名结果;
验证模块:配置为所述签名接收者基于所述签名组织者C的公钥Ec对签名组织者C的签名合规性进行验证,再计算得到验证点,将验证点与从所述签名组织者C处获取的签名点进行比较,对各签名人员的签名合规性进行验证。
有益效果:
本发明提出一种用于分级管理的二级门限签名的方法及装置,实现了在分级管理体制中,对文件的门限签名以及对该签名的合规性判断的操作。
具有以下技术效果:
(1)得到文件的签名并进行了合规性验证,适用于分级管理体制;
(2)签名时采用了二次签名方式,提高了安全性;
(3)在一定程度上防止分级管理体制中的上级权力过大以及上级因故无法参与签名的问题;
(4)本发明的方法创新了门限签名的签名方式,提高了安全性,易于产业化实现和应用。
具体实施方式
下面结合附图和实施例,对本发明进行详细描述。
如图1-图3所示,本发明提出了一种用于分级管理的二级门限签名的方法,所述方法包括:
步骤S1:获取待签名文件M,配置参与签名的角色,参与签名的角色包括可信任中心D、签名组织者C、签名者、签名接收者;所述签名者包括分公司级签名者和部门级签名者;
步骤S2:可信任中心D为待签名文件M选择参数,为每个分公司级签名者和每个部门级签名者分别生成各自对应的子密钥;
步骤S3:选择签名人员,所述签名人员包括分公司级签名人员和部门级签名人员,所述签名人员由部分分公司级签名者和部分部门级签名者形成;由各个签名人员分别使用各自对应的子密钥对所述待签名文件M签名;
步骤S4:签名组织者C接收各个签名人员对所述待签名文件M的签名结果,验证其合规性;合成通过验证的各个签名结果,用所述签名组织者C自身的私钥Dc对合成后的签名结果签名,得到最终签名结果,向签名接收者发布最终签名结果;
步骤S5:所述签名接收者基于所述签名组织者C的公钥Ec对签名组织者C的签名合规性进行验证,再计算得到验证点,将验证点与从所述签名组织者C处获取的签名点进行比较,对各签名人员的签名合规性进行验证。
所述步骤S1,所述参与签名的角色包括可信任中心D、签名组织者C、签名者、签名接收者,其中:
分公司级签名者Pi下属的全部部门级签名者Pi,j组成所述部门级签名者群体Ti,分公司级签名者Pi与部门级签名者Pi,j的对应关系为:第i个分公司级签名者Pi下有j个部门级签名者Pi,j。
所述可信任中心D用于为所述待签名文件选择参数,对分公司级签名者群体P的私钥d进行计算,得到多个子密钥di,将各个子密钥di分别发送给对应的分公司级签名者Pi;将基于分公司级签名者Pi的子密钥di进行计算得到的各个子密钥di,j分别发送给对应的部门级签名者Pi,j。
所述签名组织者C接收各个分公司级签名人员和各个部门级签名人员对所述待签名文件M的签名结果,验证其正确性;合成通过验证的各个签名结果,用所述签名组织者C自身的私钥Dc对合成后的签名结果签名,得到最终签名结果,向签名接收者发布所述最终签名结果,所述签名组织者C是群签名消息的唯一发布者。
所述签名者进行门限签名操作,所述签名者划分为分公司级签名者和部门级签名者,用集合P={P1,P2,…Pn}表示由n个分公司级签名者组成的分公司级签名者群体;用集合Ti={Pi,1,Pi,2,…,Pi,j}表示由第i个分公司签名者下的j个部门级签名者组成的部门级签名者群体,其中1≤i≤n。
所述步骤S2,包括:所述可信任中心D为所述待签名文件M选择参数,基于分公司级签名者群体P的私钥d计算得到子密钥di,将所述子密钥di发送给对应的分公司级签名者Pi,基于子密钥di计算得到子密钥di,j,将所述子密钥di,j发送给对应的部门级签名者Pi,j。
进一步地,所述步骤S2,包括:
步骤S21:获取所述待签名文件的文件属性;
步骤S22:基于所述文件属性,所述可信任中心D确定所述参数,所述参数包括有限域Fq、Fq上椭圆曲线E、椭圆曲线E的基点G、单向哈希函数h(·)、待签名文件M、以及分公司级签名者组成的签名者群体P的私钥d,其中:
有限域Fq:其中q为大素数,由可信任中心D给定;
Fq上椭圆曲线E:可信任中心D在Fq中选取两个元素a和b,生成E的方程y2=x3+ax+b,椭圆曲线上有一个唯一的无穷远点,记为O,x,y分别为为横坐标的值和纵坐标的值;
可信任中心D选取所述椭圆曲线的基点G∈E(Fq),G≠O,基点G的阶为k,其中k为大素数,且满足kG=O,E(Fq)为Fq上椭圆曲线E;
待签名文件M,所述可信任中心D通知签名组织者,由所述签名组织者给定;
单向哈希函数h(·),采用SM3算法;
所述分公司级签名者组成的签名者群体P的私钥d,由随机数生成器产生;所述公司级签名者组成的签名者群体P的公钥Q=dG≠O;
步骤S23:基于分公司级签名者群体P的私钥d计算得到子密钥di,将所述子密钥di发送给对应的分公司级签名者Pi,基于子密钥di计算得到子密钥di,j,将所述子密钥di,j发送给对应的部门级签名者Pi,j,包括:
可信任中心D将集合P的私钥d分成n等份,计算得到子密钥di,将所述子密钥di发送给对应的分公司级签名者Pi,使得数量大于或等于t的任意分公司级签名者组成的子集均能够代表全部分公司级签名者组成的群体;也就是说,数量小于t的任意个分公司级签名者组成的子集不能代表全部分公司级签名者组成的群体进行签名。将所述子密钥di发送给对应的分公司级签名者Pi的分发过程采用Shamir秘密共享体制:
可信任中心D在Fq上随机选择一个次数为t-1的多项式g(x),g(x)=c0+c1x+c2x2+…+ct-1xt-1(modq),其中g(0)=c0=d,c1,c2,…,ct-1为随机数;然后可信任中心D依次计算di=g(i)(modq),1≤i≤n,并将di通过秘密信道发送给分公司级签名者Pi,di就是所述分公司级签名者Pi所持有的子密钥(或称为秘密份额),Pi的公钥Qi为Qi=diG。
可信任中心D将Pi的私钥di分成mi等份,基于子密钥di计算得到子密钥di,j,然后将各个子密钥di,j分发给Ti中的每一个成员Pi,j,使得同一分公司下,数量大于或等于s的部门级签名者组成的子集均可代表该分公司下的全部部门级签名者组成的群体;也就是说,同一分公司下,数量小于t的任意部门级签名者组成的子集不能代表全部部门级签名者组成的群体进行签名。将各个子密钥di,j分发给Ti中的每一个成员Pi,j的分发过程采用Shamir秘密共享体制:
可信任中心D在Fq上随机选择n个次数为s-1的多项式fi(x),fi(x)=ai,0+ai,1x+ai, 2x2+…+ai,s-1xs-1(mod q),i=1,2,…n,其中fi(0)=ai,0=di,ai,1,ai,2,…,ai,s-1为随机数;然后可信任中心D依次计算di,j=fi(j)(mod q),1≤i≤n,1≤j≤mi,并将di,j通过秘密信道发送给第i个分公司下的第j个部门级签名者,di,j就是成员Pi,j所持有的子密钥(或称为秘密份额),Pi,j的公钥Qi,j为Qi,j=di,jG。
本实施例中,任何t个签名者可通过拉格朗日插值多项式重构多项式。不失一般性,设t个成员为P1,P2,…,Pt:
因此,密钥d可以通过d=g(0)来恢复,即
当t-1个签名者想要恢复密钥d时,他们可以得到含有t个未知数的t-1个线性方程,因此不能恢复d。
本实施例中,任何s个签名者可通过拉格朗日插值多项式重构多项式。不失一般性,设s个成员为Pi,1,Pi,2,…,Pi,s:
因此,密钥di,j可以通过di=fi(0)来恢复,即
当s-1个签名者想要恢复密钥di时,他们可以得到含有s个未知数的s-1个线性方程,因此不能恢复di。
同时,可信任中心将bi和ej的值,通过秘密信道发送给相应的签名者。
所述步骤S3:选择签名人员,所述签名人员包括分公司级签名人员和部门级签名人员,所述签名人员由部分分公司级签名者和部分部门级签名者形成;由各个签名人员分别使用各自对应的子密钥对所述待签名文件M签名,包括:
步骤S31:从全部分公司级签名者中选择num个分公司级签名人员,若num大于或等于t,进入步骤S32;若num小于t,确定t-num个未被选择的分公司级签名者,对所述t-num个未被选择的分公司级签名者中的每一个,均从其对应的全部部门签名者中选择s个部门级签名人员,记num个分公司级签名人员分别为P1,P2,…,Pu,其中1<u≤num,再记代替第l个分公司签名的部门级签名人员为Pl,1,Pl,2,…,Pl,s,其中u<l≤t,1≤s≤j,进入步骤S32。
本实施例中,例如,签名组织者C从集合P中随机选择t个分公司级签名人员要求其对待签名文件M进行签名。对于拒绝签名和同意但因故无法正常签名的分公司级签名人员,签名组织者C再从该分公司对应的部门级签名者群体中随机选择s个部门级签名人员对文件M进行签名,以代替该分公司的签名,直到有t个分公司(包括被替代的分公司)参与。为不失一般性,设同意且能够正常签名的分公司级签名人员为P1,P2,…,Pu,其中1<u<t,再设代替分公司签名的部门级签名人员为Pl,1,Pl,2,…,Pl,s,其中u<l≤t,1≤s≤j。
步骤S32:对各部门级签名人员Pl,w,其中1≤w≤s:各部门级签名人员Pl,w产生随机数kl,w,用以计算中间值Wl,w=kl,wG和Ql,w=dl,wG,并将Wl,w和Ql,w发送给签名组织者C。
对各分公司级签名人员Pv,其中1≤v≤u:各分公司级签名人员Pv产生随机数kv,用以计算中间值Wv=kvG和Qv=dvG,并将Wv和Qv发送给签名组织者C。
对签名组织者C:签名组织者C通过接收到各部门级签名人员P
l,w发送的W
l,w计算得到W
l,再结合接收到的各分公司级签名人员P
v发送的W
v,计算得到签名点
其中W
z包括W
v和W
l,接着签名组织者C计算得到签名点横坐标的值r=x(mod q)并将其发送给各签名人员。
步骤S33:对各部门级签名人员Pl,w:各部门级签名人员Pl,w对待签名文件M进行签名得到sl,w并发送给签名组织者C,即
sl,w=kl,w+dl,wH(r|M)ew(mod q)
其中,s
l,j为部门级签名人员P
l,j对文件M的签名,r为签名点横坐标的值,,H(r|M)为文件M与签名点横坐标的值r拼接后的哈希值,
对各分公司级签名人员Pv:各分公司级签名人员Pv对待签名文件M进行签名得到sv并发送给签名组织者C,即
sv=kv+dvH(r|M)bv(mod q)
其中,H(r|M)为文件M与签名点横坐标的值r拼接后的哈希值,
本实施例中,ew和bv对应恢复密钥中的ej和bi,用于表征计算公式。
所述步骤S4:签名组织者C接收各个签名人员对所述待签名文件M的签名结果,验证其合规性;合成通过验证的各个签名结果,用所述签名组织者C自身的私钥Dc对合成后的签名结果签名,得到最终签名结果,向签名接收者发布最终签名结果,包括:
步骤S41:对各部门级签名人员Pl,w的签名,所述签名组织者C比较sl,wG-H(r|M)ewQl,w与Wl,w二者是否相等,若二者相等,即
sl,wG-H(r|M)ewQl,w=sl,wG-dl,wH(r|M)ewG
=(sl,w-dl,wH(r|M)ew)G
=kl,wG
=Wl,w
则签名组织者C认定该部门级签名人员Pl,w的签名合规并接受,若二者不相等,签名组织者C结束本次签名过程,方法结束;
步骤S42:对各部门级签名人员Pv的签名,签名组织者C比较svG-H(r|M)bvQv与Wv是否相等,若二者相等,即
svG-H(R|M)bvQv=svG-dvH(r|M)bvG
=(sv-dvH(r|M)bv)G
=kvG
=Wv
则签名组织者C认定该分公司级签名人员Pv的签名合规并接受,若二者不相等,签名组织者C结束本次签名过程,方法结束;
步骤S43:签名组织者C通过
合成s
l;签名组织者C计算
其中,s
z包括s
v和s
l;签名组织者C再将(s,r)用自己的私钥D
c进行签名,签名后分别为(s′,r′);签名组织者C将(s,r,s′,t′,M)输出作为对待签名文件M的最终签名。
所述步骤S5:所述签名接收者基于所述签名组织者C的公钥Ec对签名组织者C的签名合规性进行验证,再计算得到验证点,将验证点与从所述签名组织者C处获取的签名点进行比较,对各签名人员的签名合规性进行验证,包括:
步骤S51:签名接收者用签名组织者C的公钥Ec判断(s′,r′)是否是(s,t)的合规签名;如果不是,则认为本次签名过程出现异常,并放弃后续验证,方法结束;如果是,进入步骤S52;
步骤S52:签名接收者计算得到验证点(x′,y′)=sG-H(r|M)Q;
步骤S53:签名接收者计算得到验证点横坐标的值t″=x′(modq),接着比较r″和r二者是否相等,若相等则认定签名人员的签名合规并接受,方法结束;否则拒绝,方法结束。
本发明中,利用本发明的方案的设计,实现通过Shamir秘密共享体制,根据不同门限值的输入,实现子密钥分发,并保存子密钥至本地文档。
本发明中,利用本发明的方案的设计,实现签名组织者、分公司签名者、部门签名者对参数的生成、中间值的计算和验证以及对文件的二级门限签名。
本发明中,利用本发明的方案的设计,实现签名验证者对签名的合规性的判定,从而接受或拒绝签名。
如图4(A)-图4(T)所示,提供了用于测试基于椭圆曲线的用于分级管理的二级门限签名的系统,具有以下功能。
角色登录功能
首先,输入系统分配的用户名及密码。
然后,选择与用户名相匹的用户身份,点击“登录”,进入对应用户界面。
例:输入用户名admin001及对应密码,选择“可信任中心”身份,点击登录,进入可信任中心界面,如图4(A)-4(B)所示。
参数选择及子密钥分发功能
首先,可信任中心D输入大素数q,Fq中两个元素a和b,椭圆曲线基点的横、纵坐标,椭圆曲线基点的阶n,分公司数,分公司门限值t,分公司部门数,部门门限值s,这里均是十六进制输入。
然后,点击“生成私钥并进行密钥分发”,系统判断参数是否合规,如果合规则确定分公司和部门门限值,并得到私钥且完成子密钥以及bi和ej的分发,否则需重新输入。其中,子密钥及bi和ej可以通过本地文档进行查看。
例:输入参数,点击“生成私钥并进行密钥分发”,得到私钥并完成了子密钥以及bi和ej的分发,如图4(C)-4(F)所示。
签名功能
首先,签名组织者C输入要进行签名的文件内容,点击“提交”,将签名任务下发。
然后,部门签名者和分公司签名者选择“同意签名”或“拒绝签名”,并点击“提交”。
然后,签名组织者点击“随机选取签名者”开始本次签名过程;同时,同意签名的部门签名者和分公司签名者可以通过点击“查询”查看是否被选为本次签名的参与者。
然后,参与本次签名的签名者点击“参数生成”来生成签名所需参数并发送给签名组织者。
然后,签名组织者点击“参数生成”来生成参数并发送给各个参与本次签名的签名者。
接着,参与本次签名的签名者点击“签名”进行签名运算,并最终将签名结果发送给签名组织者。
最后,签名组织者点击“验证及签名”对签名者发送的签名结果进行验证,并使用自己的私钥进行签名,将最终结果发送给接收者。
例:输入文件内容“The Little Prince is a novella by French aristocrat,writer.”,点击“提交”;某分公司签名者选择“同意签名”,某部门签名者选择“拒绝签名”;签名组织者点击“随机选取签名者”开始签名过程,选择“同意签名”的某分公司签名者及部门签名者点击“查询”查看自己被选为本次签名的参与者;本次签名的某参与者点击“参数生成”生成参数并发给签名组织者;签名组织者点击“参数生成”来生成参数并发送给各个参与本次签名的签名者;本次签名的某参与者点击“签名”对参数进行运算并发送给签名组织者;签名组织者点击“验证及签名”对签名者发送的签名进行验证,并使用自己的私钥进行签名,将最终结果发送给接收者;如图4(G)-4(R)所示。
验证签名功能
首先,签名接收者点击“验证是否为签名组织者的合规签名”,对接收到的签名进行第一步验证,如果合规则提示继续后续验证,否则拒绝该签名。
然后,签名接收者点击“验证是否为签名者的合规签名”,对接收到的签名进行第二步验证,如果合规则接受该签名,否则拒绝。
例:签名接收者点击“验证是否为签名组织者的合规签名”,得到“合规”结果;接着,签名接收者点击“验证是否为签名者的合规签名”,得到“合规”结果,接受该签名;如图4(S)-4(T)所示。
如图5所示,本发明所提供的一种基于椭圆曲线的用于分级管理的二级门限签名的装置,所述装置包括:
配置模块:配置为获取待签名文件M,配置参与签名的角色,参与签名的角色包括可信任中心D、签名组织者C、签名者、签名接收者;所述签名者包括分公司级签名者和部门级签名者;
密钥生成模块:配置为可信任中心D为待签名文件M选择参数,为每个分公司级签名者和每个部门级签名者分别生成各自对应的子密钥;
签名模块:配置为选择签名人员,所述签名人员包括分公司级签名人员和部门级签名人员,所述签名人员由部分分公司级签名者和部分部门级签名者形成;由各个签名人员分别使用各自对应的子密钥对所述待签名文件M签名;
发布模块:配置为签名组织者C接收各个签名人员对所述待签名文件M的签名结果,验证其合规性;合成通过验证的各个签名结果,用所述签名组织者C自身的私钥Dc对合成后的签名结果签名,得到最终签名结果,向签名接收者发布最终签名结果;
验证模块:配置为所述签名接收者基于所述签名组织者C的公钥Ec对签名组织者C的签名合规性进行验证,再计算得到验证点,将验证点与从所述签名组织者C处获取的签名点进行比较,对各签名人员的签名合规性进行验证。
本发明提供了一种基于椭圆曲线的二级门限签名方案的实现,所述实现基于如前所述设计,所述实现包括:
实现所述设计的参数选择功能;即由可信任中心完成参数选择;
实现所述设计的子密钥分发功能;即由可信任中心实现子密钥分发;
实现所述设计的签名功能;即由签名组织者和签名者完成对文件的签名;
实现所述设计的验证签名功能;即由签名验证者完成对签名合规性的验证。
以上的具体实施例仅描述了本发明的设计原理,该描述中的部件形状,名称可以不同,不受限制。所以,本发明领域的技术人员可以对前述实施例记载的技术方案进行修改或等同替换;而这些修改和替换未脱离本发明创造宗旨和技术方案,均应属于本发明的保护范围。