摘要:利用双线性对提出一种基于身份的多接收者的签密方案,本文为同时有多名接收者的签密问题提供了解决途径.此方案既保持了基于身份加密的优点,又具有可公开验证性,且安全性好。该方案具有很高的执行效率,签密过程只需1次双线性对运算,接收者人数越多,其效率的优势会越加明显.
论文关键词:签密,基于身份签密,多接收者
基于身份的加密(IBE)和数字签名最早由Shamir于1984年的美洲密码年会(Crypto’84)上提出,目的是为简化密钥管理。其基本思想是:用户公钥(public-key)可以是任何一个与主体身份有关的比特串,比如用户的邮箱地址或是身份证号码等,而他的私钥(private-key)是通过一个可信的权威机构PKG (private key generator)来生成的,即由下列步骤生成:
private-key=F(master-key,public-key)
master-key(主密钥)是PKG独有的,并事先由其秘密选好的秘密密钥。PKG就用这个主密钥来生成系统中的所有用户的私钥。基于身份的加密和数字签名在密码学诸多领域得到应用,如解决身份认证问题,同PKI机制相比具有天然的优越性。后来,Boneh和Franklin利用Weil对给出了一个基于身份的加密方案,给出了IBE方案的一个具体实现。基于身份密码体制的特点是用户的公钥很容易由相应的身份信息获取,而私钥可以由PKG利用其主密钥计算得到,因此基于身份密码体制具有一定的优点。
但IBE系统有其自身的固有弱点,即:
1.系统用户必须无条件信任PKG,PKG可以计算系统内任意一个用户的私钥,而驳证者却无法判断PKG是否有欺骗行为;
2.密钥托管威胁,即PKG必须严密保护自己的主密钥,主密钥一旦泄露将导致所有用户私钥的公开化。这些弱点又限制了基于身份的数字签名的应用。
本文在文献中的基础上给出了一个新的在基于身份的密码体制上实现的可认证安全的签密方案,新方案利用了基于身份的双线性对,是一个多接收者的签名加密方案。
2.预备知识
2.1 Weil pairing的定义:设P是一个素数,E(FP)是域Fq上的一条超奇异椭圆曲线,ι正整数。E(Fqι)上的Weil配对记为ep,定义为E(Fqι)上的所有阶为p的点对到F*qι p阶子群的满射,即对E(Fqι)中任意两个阶为p的点P、Q,ep(P,Q)是F*qι中阶为p的点。且满足下列性质:
(1)反对称性:对所有阶为p的点P:
ep(P,P)=1
(2)双线性性:对所有阶为p的点P、Q、R:
ep(P+Q,R)= ep(P,R)ep(Q,R)
ep(R,P+Q)= ep(R,P)ep(R,Q)
(3)非退化性:对任意两个线性独立的阶为p的点P、Q(即属于不同的p阶子群):
ep(P,Q)≠1,ep(Q,P)≠1
(4)可计算性:对所有阶为p的点P、Q,可实际有效地计算出ep(P,Q)与ep(Q,P)。
显然,由双线性性,对任意阶为p的点P、Q及正整数n,有:
ep (nP,Q)= ep(P,Q)n= ep (P,nQ)
2.2 Gap Diffie-Helman(GDH)群
设G1群上的转置和乘法运算是高效的,下面介绍几个群G1上重要的数学问题。
(1)离散对数问题(DLP):任给Q∈G1,求x∈Z*q,满足Q=xP(假设这样的整数存在)。
(2)计算性 Diffie-Helman问题(CDHP):任给aP,bP∈G1 (a,b∈Z*q),计算abP。
(3)判定性 Difie-Helman问题(DDHP):
任aP,bP,cP(a,b,c∈Z*q),判断是否c=abmodq,若等式成立,称(P,aP,bP,cP)为一个有效的Difie-Helman四元组。
定义 1:如果在群G1中,DDHP能在多项式时间内得到有效解决,而不存在多项式时间算法能以不可忽略的概率解决CDHP,则称群G1是一个Gap Diffie-Hellman群。
若(P,aP,hP,cP)是一个有效的Diffie-Hellman四元组,假设存在一个双线性映射e使得e(aP,bP)=e(P,cP)成立,则称e为解决DDHP的一个有效算法。
3.多接收者签密方案
(1) 系统初始化
首先私钥生成中心PKG分别选取椭圆曲线上阶均为q的加法循环群G和乘法循环群F,其中G生成元是P,且q|(P-1)。构建双线性对e:G×G→F。随机选择Q∈G*, s∈Z*q,计算全局密钥QTA=sP, T=sP。选择密码学安全的散列函数H1:{0,1}* →G*, H2:{0,1}*→Zq*, H3: F*→{0,1}*。PKG公开系统的参数params
=(G,F,P,q,Q,T,e,H1,H2,H3,QTA)。
(2)密钥生成过程:每个用户的公钥是Qu= H1 (IDu),私钥是Su=sH1(IDu),其中IDu是用户身份。即:QA/SA是签名者的公钥/私钥;Qi/Si (i=l,…,n,n≥2)是n个指定接收者的公钥/私钥。
(3)签密过程:对于待签名消息m,签名者进行以下步骤
①随机选择r∈Z*q,计算X=rQA。
②计算h1=H2(X||m ),Z=(r+hl)SA。
③输出消息m的签名C(m)如下(其中L是标志Vi与每一个接收者对应关系的信息):
C(m)= (t,U,V1,…,Vn,W,X,L)=(H3(e(Z,P))m,rP ,rHl(ID1)+rQ,…,rH1(IDn)+rQ,e( Q,T)re(Z,P),X ,L)
(4)消息恢复及签名验证过程:任一个指定接收者i∈[1,n]接到C(m)后,通过L确定其对应的Vi,然后:
①消息m的恢复:计算N=e(U,Si)W/ e(T,Vi),再由H3(N)恢复出消息m。
②消息m的签名验证:验证等式N=e(QTA,X+h1QA)是否成立。如果成立,认定签名C(m)是消息m的有效签名;否则签名无效。
1/2 1 2 下一页 尾页 |