本发明属于信息安全,涉及无证书签名技术,主要涉及了一种基于rsa累加器的用户可撤销无证书签名方法。
背景技术:
1、公开密钥认证签名技术在实际应用中面临的一个重要问题是如何确保用户身份与用户公钥之间的正确绑定。传统的公钥密码学使用基于证书的公钥基础设施(pki)方案,通过可信机构(ca)颁发、存储和更新证书。证书内容包括用户的身份信息和公钥。虽然pki得到广泛的应用,但仍存在证书管理复杂、用户撤销困难、计算开销大等问题。针对证书管理复杂的问题,有学者提出了基于身份的公钥密码体制(id-pkc),用户公钥可根据用户身份直接生成,从而避免了公钥证书的分发和管理,简化了认证系统,降低了维护成本。然而,由于系统内所有用户的私钥均由私钥生成器(pkg)生成,存在密钥托管问题。
2、为了解决密钥托管问题,al-riyami和paterson提出无证书公钥密码体制(cl-pkc)。cl-pkc体制中,半可信的密钥生成中心(kgc)根据系统的主私钥和用户提供的参数生成用户的部分私钥,用户的完整私钥由用户选择的秘密信息和部分私钥两部分构成。由于kgc无法获知用户秘密信息,因此cl-pkc解决了密钥托管问题。早期的cl-pkc方案大多基于双线性映射构造,计算开销大,近年来出现了一些基于椭圆曲线的无配对无证书签名方案,计算性能得到了较大的提高。然而,无证书签名方案中成员动态更新的问题目前仍未得到有效解决,由于成员动态增加或撤销而引起的用户密钥更新往往流程复杂,计算开销和通信开销巨大,导致系统内恶意成员不能被有效地及时撤销。
3、针对cl-pkc体制中成员动态更新和密钥管理的问题,亟需提出支持成员动态更新的低开销无证书签名方案。
技术实现思路
1、本发明正是针对现有技术中解决成员动态更新问题,提供一种基于rsa累加器的用户可撤销无证书签名方法,将rsa累加器引入无配对的无证书签名技术,kgc将rsa累加器中元素的证据值嵌入用户的部分私钥中,当系统中成员动态更新时,kgc生成rsa累加器的更新凭证aux并将其广播到系统中,系统中的合法成员可据此更新rsa累加器的累加值及自身证据值,并进而更新自身公私钥;而非法用户无法完成上述更新过程,因而实现了非法用户的动态撤销。由于rsa累加器可提供高效的动态集合元素存在性证明,本方法无需复杂的证书管理即可支持非法用户的高效动态撤销;同时,由于采用无配对的无证书签名机制,签名和签名验证过程避免了传统无证书签名机制中复杂的双线性映射操作,计算开销小。
2、为了实现上述目的,本发明采取的技术方案是:一种基于rsa累加器的用户可撤销无证书签名方法,至少包括如下步骤:
3、s1,系统初始化阶段:密钥生成中心kgc根据输入的安全参数λ执行初始化算法,输出系统私钥skacc、系统公钥pkacc和系统主密钥s,同时为系统用户计算伪身份pidi和系统累加值accx;
4、s2,部分私钥生成阶段:kgc根据用户伪身份pidi,输出用户的证据值witi,并将(pidi,witi)作为部分私钥通过安全信道发送给用户;
5、s3,完整密钥生成阶段:由所有用户执行,输入为用户的伪身份pidi、用户证据值witi和随机数xi,输出用户的完整私钥ski=(xi,witi)和用户的完整公钥
6、s4,签名阶段:由发送方用户执行,输入为明文m、随机数yi、用户完整私钥ski、系统公钥pkacc和系统主密钥s,输出签名σi=(yi,ωi);
7、s5,签名验证阶段:由接收方用户执行,输入发送方用户公钥pki、发送方用户伪身份pidi、签名σi、消息m、系统累加值accx和系统主密钥s,首先进行发送方用户的累加器验证,再进行签名σi的合法性验证,如两项验证都通过,则完成签名验证;否则,签名验证失败;
8、s6,系统成员动态更新阶段:由kgc执行,输入动态更新用户的伪身份pidi,输出更新凭证aux,并向系统中合法用户广播更新凭证aux;
9、s7,系统成员公私钥更新阶段:由用户执行,输入更新凭证aux、系统累加值accx、用户私钥ski和用户公钥pki,输出更新后的系统累加值acc′x、用户私钥sk′i和用户公钥pk′i。
10、作为本发明的一种改进,所述步骤s1系统初始化阶段具体包括如下步骤:
11、s11:kgc输入安全参数λ,随后选择一个q阶的椭圆曲线群g和椭圆曲线群g的生成元p;
12、s12:kgc选择五个不同的哈希函数{h,h1,h2,h3,h4},其中h:g×{0,1}*→{0,1}l,h1:h2:h3:h4:其中l是用户真实身份id的长度;
13、s13:kgc选择两个随机大素数{u,v}为系统私钥skacc,同时计算系统公钥pkacc=u×v,之后随机选择rsa累加器的初始参数其中代表系统公钥pkacc的二次剩余系;
14、s14:密钥生成中心kgc计算系统主密钥s、用户i的伪身份pidi和系统累加值accx,生成方法如下:
15、s=sp,
16、
17、
18、其中,s和ri为两个随机数,idi为用户i的真实身份,n为系统中用户伪身份pid的集合,ti为用户伪身份的有效时间,此外用户i的伪身份pidi需要通过素性检验,否则需重新选择ri来生成pidi;
19、s15:kgc将系统参数params=<g,q,p,h,h1,h2,h3,h4,pkacc,s,accx>和用户i的伪身份pidi公开。
20、作为本发明的一种改进,所述步骤s2部分私钥生成阶段具体包括如下步骤:
21、s21:kgc根据用户伪身份pidi生成用户证据值witi:
22、
23、s22:kgc将用户伪身份pidi和用户证据值witi作为用户的部分私钥di,并将其通过安全信道发送给用户i:
24、di=(pidi,witi)。
25、作为本发明的一种改进,所述步骤s3完整密钥生成阶段中,用户i使用部分私钥生成用户完整私钥ski=(xi,witi)和用户完整公钥生成方法如下:
26、xi=xip,
27、witi=witip,
28、
29、ski=(xi,witi),
30、
31、其中xi为随机数,作为用户私钥的一部分。
32、作为本发明的一种改进,所述步骤s4签名阶段具体包括如下步骤:
33、s41:发送方用户i选择随机数yi,并且计算yi=yip;
34、s42:发送方用户i根据伪身份pidi、用户私钥ski、用户公钥pki和系统主密钥s生成签名σi,生成方法如下:
35、ui=h2(m,pidi,pki,ti,yi),
36、h3i=h3(m,pidi,pki,ti),
37、h4i=h4(m,pidi,si,ti),
38、ωi=uiyi+h3ixi+h4iwiti,
39、σi=(yi,ωi),
40、其中,m为签名消息的明文,ti为签名生成的时间戳。
41、作为本发明的一种改进,所述步骤s5签名验证阶段具体包括如下步骤:
42、s51:接收方用户j根据本地系统累加值accx、系统主密钥s,以及发送方用户i发来的公钥pki、发送方用户伪身份pidi、签名σi和消息m,生成ui′、h′3i和h′4i,生成方法如下:
43、ui′=h2(m,pidi,pki,ti,yi),
44、h′3i=h3(m,pidi,pki,ti),
45、h′4i=h4(m,pidi,si,ti);
46、s52:接收方用户j验证如下等式是否成立:
47、
48、如果等式验证成立,进行下一步签名σi验证;否则,验证失败;
49、s53:接收方用户j验证如下等式是否成立:
50、
51、如等式验证成立,则完成签名验证阶段;否则,签名验证失败。
52、作为本发明的又一种改进,所述步骤s6系统成员动态更新阶段分两种情况:
53、case61:当系统新增用户i时,kgc根据该用户伪身份pidi更新系统累加值accx,将用户伪身份及更新后的系统累加值作为更新凭证aux广播给合法用户,具体方式如下:
54、
55、aux=(pidi,acc′x);
56、case62:当系统撤销用户i时,kgc首先更新系统累加值accx,将撤销用户的伪身份及更新后的系统累加值作为更新凭证aux广播发送给合法用户,具体方式如下:
57、
58、
59、aux=(pidi,acc′x),
60、其中为pidi模的逆元,kgc可以通过调用扩展欧几里得算法求出。
61、作为本发明的更进一步改进,所述步骤s7系统成员公私钥更新阶段分两种情况:
62、case71:当用户j收到增加成员的更新凭证aux时,用户j将更新凭证aux中的累加值acc’x作为本地系统累加值,并按如下方式更新自身私钥和公钥:
63、
64、wit′j=wit′jp,
65、
66、sk′j=(xj,wit′j),
67、
68、case72:当用户j收到撤销成员的更新凭证aux时,用户j将aux中的acc′x作为本地系统累加值,并按如下方式更新自身私钥和公钥:
69、将aux中的pidi和自身伪身份pidj作为输入,调用扩展的欧几里得算法,得到两个整数a,b,使满足:
70、a pidj+b pidi=1,
71、之后用户j使用a,b更新用户证据值witj,并计算得到更新后的私钥和公钥:
72、
73、wit′j=wit′jp,
74、
75、sk′j=(xj,wit′j),
76、
77、与现有技术相比,本发明具有的有益效果:
78、(1)本发明将rsa累加器引入无配对的无证书签名技术,利用rsa累加器可提供高效的动态集合元素存在性证明的能力,本方法无需复杂的证书管理,即可支持非法用户的高效动态撤销。
79、(2)本发明在成员动态更新时,密钥生成中心仅需要广播发送更新凭证,通信开销大幅降低;同时由于采用无配对的无证书签名机制,签名和签名验证过程避免了传统无证书签名机制中复杂的双线性映射操作,计算开销小。
1.一种基于rsa累加器的用户可撤销无证书签名方法,其特征在于,至少包括如下步骤:
2.如权利要求1所述的一种基于rsa累加器的用户可撤销无证书签名方法,其特征在于:所述步骤s1系统初始化阶段具体包括如下步骤:
3.如权利要求1所述的一种基于rsa累加器的用户可撤销无证书签名方法,其特征在于:所述步骤s2部分私钥生成阶段具体包括如下步骤:
4.如权利要求1所述的一种基于rsa累加器的用户可撤销无证书签名方法,其特征在于:所述步骤s3完整密钥生成阶段中,用户i使用部分私钥生成用户完整私钥ski和用户完整公钥pki,生成方法如下:
5.如权利要求1所述的一种基于rsa累加器的用户可撤销无证书签名方法,其特征在于:所述步骤s4签名阶段具体包括如下步骤:
6.如权利要求1所述的一种基于rsa累加器的用户可撤销无证书签名方法,其特征在于:所述步骤s5签名验证阶段具体包括如下步骤:
7.如权利要求1所述的一种基于rsa累加器的用户可撤销无证书签名方法,其特征在于:所述步骤s6系统成员动态更新阶段分两种情况:
8.如权利要求7所述的一种基于rsa累加器的用户可撤销无证书签名方法,其特征在于:所述步骤s7系统成员公私钥更新阶段分两种情况:
