发明内容
本发明要解决的技术问题在于克服现有技术的不足,提供一种与随机预言模型下设计的方案更具安全性的基于身份的门限环签密方法。
为解决上述技术问题,本发明采用技术方案的基本构思是:
一种基于身份的门限环签密方法,其特征在于:包括以下步骤:
(1)***建立:随机选取参数,生成***参数以及相应的主密钥,其中***参数为公开参数,具体步骤为:
令G,G
T是阶为素数p的循环群,e:G×G→G
T是一个双线性映射,两个无碰撞的哈希函数
和
将任意长度的身份ID和消息m分 别输出长度为n
u和n
m的位串;
可信第三方随机选取参数α∈Z
p,生成元g∈G,计算g
1=g
a。随机选取参数g
2,u′,m′∈G,n
u维向量
n
m维向量
其中u
i,m
i∈
RG,则***参数为
主密钥为
(2)私钥提取:输入***参数、主密钥和用户的身份,获得该用户身份的私钥,具体步骤为:
给定用户身份ID,通过哈希函数u=Hu(ID)计算得到代表用户身份的长度为nu的位串,令u[i]表示该位串中的第i位,定义位串中数值为1的序号集合ΦID;
随机选取参数ru∈Zp,计算用户身份为ID的私钥
(3)签密:给定门限环签密中n个成员的集合L={ID1,...,IDn},实际进行签密的t个签密者的身份下标为{1,2,...,t},待签密消息m,签密接收者的身份IDR,签密的具体步骤为:
各签密者ID
i(i=1,...,t)随机选择其子秘密s
i∈Z
p,构造系数在Z
p的t-1次多项式f
i(x)=a
i,0+a
i,1x+…+a
i,t-1x
t-1,其中s
i=a
i,0;然后签密者ID
i计算公开参数
并向其它签密者广播;
计算其它各签密者IDj(j≠i)的秘密分享si,j=fi(j),并将它们发送给其它签密者IDj(j=1,2,..,t;j≠i),自己保留si,i=fi(i);
其他各签密者ID
j(j=1,2,..,t;j≠i)从第i个签密者ID
i得到秘密分享s
i,j后,用如下等式验证其有效性:
当确认秘密分享有效后,各签密者ID
i根据秘密分享计算其私有秘密为
根据环成员身份列表L={ID1,...,IDn}、t个签密者、待签密消息m以及t个签密 者的私钥,环签密接收者身份IDR,获得在待签密消息m下的(t,n)门限环签密C,(t,n)表示门限环签密中成员总数为n,t是门限值,实际参与生成门限环签密的成员数≥t,具体步骤为:
令m∈GT为待签密消息,该门限环签密者随机选取l1,...,ln∈Zp,计算 i=1,...,n, 令 则生成的门限环签密为C=(σ1,...σ5,R1,...Rn)。
(4)解签密:根据门限环签密和环签密接收者IDR的私钥计算得到消息,将得到的消息带到公式 中,当且仅当等式成立时,门限环签密有效,所得消息正确,否则所得门限环签密无效,所得消息错误,返回步骤(1)。
优选的,所述步骤(3)签密中获得私有秘密后进行下列步骤获得门限环签密::
对于i∈{1,2,...,t},设每个签密者ID
i的私钥为(d
i1,d
i2),计算M=H
m(L,m),令
为消息m的位串中M[k]=1的序号k的集合,随机选取r
i∈Z
p,计算部分门限环签密
σ
i6=d
i2,并把(σ
i1,σ
i2,σ
i3,σ
i4,σ
i5,σ
i6)发送给t个签密者中任一用以产生门限环签密的签密者,其中
为拉格朗日系数。
优选的,所述的解签密的具体步骤如下:
当收到门限环签密后,门限环签密接收者利用其私钥首先计算出待签密消息m,m=σ1·e(dR2,σ3)·e(dR1,σ2)-1,然后通过哈希函数计算得到待签密消 息的长度为nm的位串,定义位串中数值为1的序号集合M;
将消息代入式 中,当且仅当等式成立时,门限环签密有效,所得消息正确,否则所得门限环签密无效,所得消息错误。
采用上述技术方案后,本发明与现有技术相比具有以下有益效果:本发明的方法是在标准模型下构造的,与随机预言模型下设计的方案相比,安全性更好。
下面结合附图对本发明的具体实施方式作进一步详细的描述。
具体实施方式
如图1所示,一种基于身份的门限环签密方法,包括以下步骤:
S1、***建立:随机选取参数,生成***参数以及相应的主密钥,其中***参数为公开参数,具体步骤为:
令G,G
T是阶为素数p的循环群,e:G×G→G
T是一个双线性映射,两个无碰撞的哈希函数
和
将任意长度的身份ID和消息m分别输出长度为n
u和n
m的位串;
可信第三方随机选取参数α∈Z
p,生成元g∈G,计算g
1=g
a。随机选取参数 g
2,u′,m′∈G,n
u维向量
n
m维向量
其中u
i,m
i∈
RG,则***参数为
主密钥为
S2、私钥提取:输入***参数、主密钥和用户的身份,获得该用户身份的私钥,具体步骤为:
给定用户身份ID,通过哈希函数u=Hu(ID)计算得到代表用户身份的长度为nu的位串,令u[i]表示该位串中的第i位,定义位串中数值为1的序号集合ΦID;
随机选取参数ru∈Zp,计算用户身份为ID的私钥
这里在计算私钥时用到了序号集合Φ
ID,对于公式中的d
1即
这里的
是n
u维向量,u
i就是集合Φ
ID中相应序号在
中所对应的元素。
S3、签密:给定门限环签密中n个成员的集合L={ID1,...,IDn},实际进行签密的t个签密者的身份下标为{1,2,...,t},待签密消息m,签密接收者的身份IDR,签密的具体步骤为:
各签密者ID
i(i=1,...,t)随机选择其子秘密s
i∈Z
p,构造系数在Z
p的t-1次多项式f
i(x)=a
i,0+a
i,1x+…+a
i,t-1x
t-1,其中s
i=a
i,0;然后签密者ID
i计算公开参数
并向其它签密者广播;(
表示整数模p的剩余类群,这是密码学中通用的表示形式)
计算其它各签密者IDj(j≠i)的秘密分享si,j=fi(j),并将它们发送给其它签密者IDj(j=1,2,..,t;j≠i),自己保留si,i=fi(i);
签密者ID
j(j=1,2,..,t;j≠i)从签密者ID
i得到秘密分享s
i,j后,用如下等式验证其有效性:
当确认秘密分享有效后,各签密者ID
i根据秘密分享计算 其私有秘密为
各签密者ID
i是所有接收到秘密分享的签密者。举个例子,假设这里有t个签密者,不妨设它们的编号是1,...,t。现在签密者1要向剩余的签密者计算秘密分享,同样的道理,剩余的每一个签密者也要向除它以外的t-1个签密者计算秘密分享,因此,这里的各签密者就是这里的t个签密者。
根据环成员身份列表L={ID1,...,IDn}、t个签密者、待签密消息m以及t个签密者的私钥,环签密接收者身份IDR,获得在待签密消息m下的(t,n)门限环签密C,(t,n)为门限环签密中成员总数为n,t是门限值,实际参与生成门限环签密的成员数≥t,在表示门限的时候均采用这种表示形式。具体步骤为:
令m∈GT为待签密消息,该门限环签密者随机选取l1,...,ln∈Zp,计算 i=1,...,n, 令 则生成的门限环签密为C=(σ1,...σ5,R1,...Rn);
S4、解签密:根据门限环签密和环签密接收者IDR的私钥计算得到消息,将得到的消息带到公式 中,当且仅当等式成立时,门限环签密有效,所得消息正确,否则所得门限环签密无效,所得消息错误。
优选的,所述步骤S3签密中获得私有秘密后进行下列步骤获得门限环签密:
对于i∈{1,2,...,t},设每个签密者ID
i的私钥为(d
i1,d
i2),计算M=H
m(L,m),令
为消息m的位串中M[k]=1的序号k的集合,随机选取r
i∈Z
p,计算部 分门限环签密
σ
i6=d
i2,并把(σ
i1,σ
i2,σ
i3,σ
i4,σ
i5,σ
i6)发送给t个签密者中任一用以产生门限环签密的签密者,其中
为拉格朗日系数。
优选的,所述的解签密的具体步骤如下:
当收到门限环签密后,门限环签密接收者利用其私钥首先计算出待签密消息m,m=σ1·e(dR2,σ3)·e(dR1,σ2)-1,然后通过哈希函数计算得到待签密消息的长度为nm的位串,定义位串中数值为1的序号集合M;
将消息代入式 中,当且仅当等式成立时,门限环签密有效,所得消息正确,否则所得门限环签密无效,所得消息错误。
这里在进行验证时用到了M,对于
这里的
是n
m维向量,m
i就是集合M中相应序号在
中所对应的元素。
本发明的不可区分性安全性证明如图2所示,具体实施步骤为:
1.假设敌手A能以不可忽略的优势攻击本方案,则能够构造算法B,B可以利用A解决DBDH问题。给定B一个DBDH问题的实例(g,ga,gb,gc,h),其的目标是判断是否h=e(g,g)abc,B模仿A的挑战者。
2.算法B设定l
u=2(q
e+q
s)、l
m=2q
s,其中q
e是A私钥询问的次数,q
s是A签密询问的次数。随机选择k
u和k
m,满足0≤k
u≤n
u和0≤k
m≤n
m,并假定l
u(n
u+1)<p和l
m(n
m+1)<p。B选择
及长度为n
u的向量X=(x
i),其中
选择
及长度为n
m的向量Z=(z
k),其中
最后B选择y′,w′∈
RZ
p,长度为n
u的向量Y=(y
i),长度为n
m的向量W=(w
i),其中y
i,w
i∈
RZ
p。对于L中的成员身份ID和消息m的位串u=H
u(ID)和M=H
m(L,m),定义以下几个函数:
算法B构造本发明方案中的公开参数如下:
g1=ga,g2=gb; 1≤i ≤nu; 1≤i≤nu;然后算法B将公开参数发送给敌手A。
3.在第一阶段,当敌手A发起一定数量的询问时,算法B进行如下响应:
(1)私钥询问:当敌手A询问身份ID的私钥时,虽然算法B不知道主密钥,但假定F(ID)≠0mod p,B也能够构造其私钥dID。B任选ru∈Zp并计算:
如果F(ID)=0mod p,上面的计算将无法进行,B将失败退出。
(2)签密询问:当敌手A询问环成员身份为L={ID1,...,IDn},门限值为t(t<n),消息为m,实际签密者为IDi(i=1,...t)以及环签密接收者为IDR的门限环签密时,算法B首先计算M=Hm(L,m),然后按照如下步骤输出门限环签密:
①算法B随机选择s,a0,a1,...,at-1∈Zp,构造次数为t-1的多项式f(x)=a0+a1x+…+at-1xt-1,其中s=a0。
②假定对于实际签密者IDi(i=1,...t),满足F(IDi)≠0mod p,则算法B按照私钥询问中的方法构造它们的私钥,计算各签密者IDi(i=1,...t)的私有秘密xi=f(i),然后利用签密算法生成相应的门限环签密C。
③如果条件F(IDi)≠0mod p,i=1,...t不成立,那么算法B也可以像在私钥询问中构造私钥的方法那样构造该门限环签密。假定K(M)≠0mod p,算法B随机选择r,r1,...,rn,rm∈Zp,计算:
σ
1=e(g
1,g
2)
r·m,σ
2=g
r,
其中
如果K(M)=0mod p,上面的计算将无法进行,B将失败退出。
(3)解签密询问:当敌手A发起在环成员列表L、环签密接收者身份为ID
R以及密文C下的解签密询问时,算法B首先运行私钥提取算法得到ID
R的私钥
然后运行解签密算法,如果C是一个有效的密文,则输出m,否则,输出false。
4.在挑战阶段,敌手A任取两个相同长度的消息m
0、m
1,并将环成员列表
以及环签密接收者的身份
发送给算法B。如果A在第一阶段询问了
的私钥,则B将失败退出。B任选一位b∈{0,1},如果K(M
b)≠0mod p,
那么B将失败退出。如果L
*中不存在t个身份ID
*,满足F(ID
*)≠0mod p,那么B将失败退出;否则,为描述方便起见,不妨设这t个身份为
B随机选取r,r
1,...,r
n,r
m∈Z
p,构造如下:
其中 i=1,...,t。如果h=e(g,g)abc,可知C*是一个有效的门限环签密。
5.在第二阶段,敌手A可以如同阶段1那样,发出一定数量的私钥询问、签密询问以及解密询问,但是A不能询问
的私钥以及对C
*进行解签密询问。
6.在猜测阶段,敌手A输出对b的猜测b′。如果b=b′,则B输出1,将h=e(g,g)abc作为DBDH问题的解;否则,B输出0,终止游戏。
因此,如果存在一个敌手能够以不可忽略的概率进行CCA2攻击,那么就存在一个有效的算法能够以不可忽略的概率解决DBDH问题,而这与DBDH是一个困难问题相矛盾,故方案是IND-IDTRSC-CCA2安全的。
本发明的存在不可伪造性安全性证明如图3所示,具体实施步骤为:
1.假设伪造者A能以不可忽略的优势攻击本方案,则能够构造算法B,B可以利用A解决CDH问题。给定B一个CDH问题的实例(g,ga,gb),其目标是计算出gab,B模仿A的挑战者。
2.算法B构造与前面证明中相同的***公开参数,然后将其发送给敌手A。
3.敌手A可如同前面证明中那样,适应性地发起一定数量的私钥询问、签密询问以及解签密询问。
4.在伪造阶段,敌手A输出在环成员列表
门限值t、消息m
*以及环签密接收者身份为
下的伪造门限环签密C
*。如果在整个过程中算法B没有失败退出,那么算法B检查下列条件是否成立:
②K(M*)=0mod p,其中M*=Hm(L,m*)。
如果上述条件不同时成立,那么算法B将失败退出;否则,B可计算
这就是CDH问题的解。
因此,如果存在一个敌手能够以不可忽略的概率伪造一个有效的门限环签 密,那么就存在一个算法能够以不可忽略的概率解决CDH问题,而这与CDH问题是一个困难问题相矛盾,故方案是EUF-IDTRSC-CMIA安全的。
综上所述,依照本发明实现了在标准模型下构造基于身份门限环签密方案的新途径和新方法,并且通过具体的方案安全性证明表明了方案的安全可靠性,该方法的实现不仅具有理论意义,同时也具有现实意义。
由上可见,本发明是在标准模型下构造的,该方法通过实验证明具有不可区分性和不可伪造性,因此本方法相对于在随机预言模型下设计的方案而言,具有更好的安全性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。