发明内容
本发明的目的是提供一种信息的广义签密方法,该信息的广义签密方法克服了现有技术中的广义签密效率不高的问题,实现了不同要求下不同模式的设定。
为了实现上述目的,本发明提供了一种信息的广义签密方法,该信息的广义签密方法包括:发送端用户IDA对预设长度为l0的消息通过如下模式进行操作并将操作结果发送给接收端用户IDB:
当需要实现消息的机密性、完整性和认证性时,发送端用户IDA通过签密模式对消息进行操作;或者
当只需要实现消息的机密性时,发送端用户IDA通过加密模式对消息进行操作;或者
当只需要消息的完整性和认证性时,发送端用户IDA通过签名模式对消息进行操作;
接收端用户IDB对操作结果进行广义解签密,在判断结果与签名的消息一致的情况下,接收消息,否则拒绝消息。
本发明还提供一种信息的广义签密方法,该信息的广义签密方法包括:
步骤1,系统建立;
步骤2,密钥生成;
步骤3,根据权利要求1中的信息的广义签密方法进行广义签密传输。
优选地,在步骤1中的系统建立方法包括:
步骤11,给定安全参数k,KGC(Key Generating Center)选择两个素数p和q满足p互质于q-1,其中,P是循环群G的椭圆曲线上的一个q阶生成元,KGC随机选择xN∈zq *作为主私钥xN,并通过公式XN=xN×P计算公钥XN;
步骤12,KGC选择以下三个Hash函数:H1:{0,1}*×G×G×G→Zq *,H2:G×Zq *×{0,1}*→Zq *,H3:Zq *×Zq *→{0,1}l,其中,l=l0+l1;
步骤13,定义指示函数f(ID)为:当ID=φ时,f(ID)=0;否则,f(ID)=1;
系统参数为params=(p,q,P,XN,H1,H2,H3)。
优选地,在步骤2中的密钥生成方法包括:
步骤21,发送端用户IDi随机选择xi∈zq *作为自己的秘密值,并计算Xi=xi×P作为其部分公钥Xi,其中,用户IDi包括发送端用户IDA和/或接收端用户IDB;
步骤22,发送端用户IDi发送(IDi,Xi)给KGC;
步骤23,KGC随机选择yi∈zq *,并计算Yi=yi×P,zi=yi+xN×H1(IDi,Yi,Xi,XN);
步骤24,KGC通过秘密渠道将zi发送给用户IDi。
优选地,在步骤2中的密钥生成方法还包括:步骤25,用户IDi判定等式zi×P=Yi+H1(IDi,Yi,Xi,XN)×XN在成立的情况下,部分私钥为正确的。
优选地,在步骤3中的广义签密方法包括:
发送端用户IDA对长度为l0的消息m通过如下操作并将结果μi=(f1,f2,f3,m')发送给接收端用户IDB;
发送端用户IDA执行如下操作:随机选取r∈Zq *,计算h1=H1(IDB,YB,XB,Ppub)、f1=r×P,f2=r×f(IDA)/(xA+zA+f3)、f3=H2(f1,IDA,m)和其中,v1=r×XB,v2=r×(YB+Ppub×h1);
该算法中,当IDA=φ时,执行加密模式;当IDB=φ时,执行签名模式;当IDA≠φ,IDB≠φ时,执行签密模式。
优选地,当IDA≠φ且IDB≠φ时,通过签密模式执行以下操作,IDA随机选择r∈Zq *,计算h1=H1(IDB,YB,XB,Ppub),f1=r×P,f3=H2(f1,IDA,m),f2=r/(xA+zA+f3)和其中,v1=r×XB,v2=r×(YB+h1×Ppub),得到的结果为密文μi=(f1,f2,f3,m');
或者
当IDA=φ且IDB≠φ时,通过加密模式执行以下操作,IDA随机选择r∈Zq *,分别计算h1=H1(IDB,YB,XB,XN)、f1=r×P、f3=H2(f1,IDA,m)和其中,v1=r×XB,v2=r×(YB+h1×XN);得到的结果为密文μi=(f1,f3,m');
或者
当IDA≠φ且IDB=φ时,通过签名模式执行以下操作,IDA随机选择r∈Zq *,计算h1=H1(IDB,YB,XB,XN)、f1=r×P、f3=H2(f1,IDA,m)和f2=r/(xA+zA+f3);得到的结果为签名μi=(f1,f2,f3,m)。
优选地,在步骤3中的广义解签密方法包括:
在签密模式下,接收端用户IDB分别计算h1'=H1(IDA,YA,XA,XN)、v1'=xB×f1、v2'=zB×f1和判定等式f3=H2(f1,IDA,m)和等式f2×(XA+YA+h1'×Ppub+f3×P)=f1在成立的情况下,接收端用户IDB接受消息m,否则拒绝;或者
在加密模式下,接收端用户IDB分别计算h1'=H1(IDA,YA,XA,XN)、v1'=xB×f1和v2'=zB×f1、判定等式f3=H2(f1,IDA,m)在成立的情况下,接收端用户IDB接受消息m,否则拒绝;或者
在签名模式下,接收端用户IDB计算h1'=H1(IDA,YA,XA,XN);判定等式f2×(XA+YA+h1'Ppub+f3×P)=f1和f3=H2(f1,IDA,m)在成立的情况下,接收端用户IDB接受消息m,否则拒绝。
优选地,用户IDi先将自己的身份信息和部分公钥(IDi,Xi)发送给KGC,再接收部分私钥;其中,用户IDi包括发送端用户IDA和/或接收端用户IDB。
通过上述的第一种方案,本发明的信息的广义签密方法可工作于三种模式:签密、加密和签名。当需要实现数据的机密性、完整性和认证性时,采用签密模式,当只需要实现数据的机密性时采用加密模式,只需要数据的完整性和认证性时,采用签名模式。通过这样的方式,可以减少了计算开销,提高了签密效率。通过上述的实施方式,所设计的整体签密方案在一个逻辑步骤内同时实现签名和加密两种功能。所设计的方案满足机密性和不可伪造性,即在CDHP(计算Diffie-Hellem问题)假设下适应性选择密文攻击下的不可区分性,在DLP(离散对数问题)假设下适应性选择消息攻击下的不可为造型。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
本发明提供一种信息的广义签密方法,如图1所示,该信息的广义签密方法包括:发送端用户IDA对预设长度为l0的消息通过如下模式进行操作并将操作结果发送给接收端用户IDB,用CLGSC(IDA,IDB,m)表示,
当需要实现消息的机密性、完整性和认证性时,发送端用户IDA通过签密模式对消息进行操作;或者
当只需要实现消息的机密性时,发送端用户IDA通过加密模式对消息进行操作;或者
当只需要消息的完整性和认证性时,发送端用户IDA通过签名模式对消息进行操作;
接收端用户IDB对操作结果进行广义解签密,在判断结果与签名的消息一致的情况下,接收消息,否则拒绝消息。
通过上述的具体实施方式,减少了计算开销,提高了签密效率,
在本发明的另一种信息的广义签密方法,该信息的广义签密方法包括:
步骤1,系统建立;
步骤2,密钥生成;
步骤3,根据权利要求1中的信息的广义签密方法进行广义签密传输。
通过这样的方式,实现了信息的广义签密传输,对秘钥进行了系统化的建立,以下对计算过程进行详细的描述。
在该种实施方式中,在步骤1中的系统建立方法可以包括:
步骤11,给定安全参数k,安全参数k决定了p和q的取值范围,KGC(Key GeneratingCenter)选择两个素数p和q满足p互质于q-1,其中,P是循环群G的椭圆曲线上的一个q阶生成元,KGC随机选择xN∈zq *作为主私钥xN,并通过公式XN=xN×P计算公钥XN;
其中,zq *指非零整数,N只是一个指示下标,也可以用其他字母代替。
步骤12,KGC选择以下三个Hash函数:H1:{0,1}*×G×G×G→Zq *,H2:G×Zq *×{0,1}*→Zq *,H3:Zq *×Zq *→{0,1}l,其中,l=l0+l1;hash函数可以自定义输入输出,这里的输入输出是根据所设计的算法需要制定的,l定义为消息长度和所选取的随机数β长度之和,其中,β的长度为l1。
步骤13,定义指示函数f(ID)为:当ID=φ时,f(ID)=0;否则,f(ID)=1;
系统参数为params=(p,q,P,XN,H1,H2,H3)。
在步骤2中的密钥生成方法包括:
步骤21,发送端用户IDi随机选择xi∈zq *作为自己的秘密值,并计算Xi=xi×P作为其部分公钥Xi,其中,用户IDi包括发送端用户IDA和/或接收端用户IDB,i的意思是指所有用户,包括了用户A和用户B;
步骤22,发送端用户IDi发送(IDi,Xi)给KGC;
步骤23,KGC随机选择yi∈zq *,并计算Yi=yi×P,zi=yi+xN×H1(IDi,Yi,Xi,XN);
步骤24,KGC通过秘密渠道将zi发送给用户IDi。
在步骤2中的密钥生成方法还包括:
步骤25,用户IDi判定等式zi×P=Yi+H1(IDi,Yi,Xi,XN)×XN在成立的情况下,部分私钥为正确的。
在步骤3中的广义签密方法包括:
发送端用户IDA对长度为l0的消息m通过如下操作并将结果发送给接收端用户IDB;
发送端用户IDA执行如下操作:随机选取r∈Zq *,计算h1=H1(IDB,YB,XB,Ppub)、f1=r×P,f2=r×f(IDA)/(xA+zA+f3)、f3=H2(f1,IDA,m)和其中,v1=r×XB,v2=r×(YB+Ppub×h1);
该算法中,当IDA=φ时,执行加密模式;当IDB=φ时,执行签名模式;当IDA≠φ,IDB≠φ时,执行签密模式。
优选地,当IDA≠φ且IDB≠φ时,通过签密模式执行以下操作,IDA随机选择r∈Zq *,计算h1=H1(IDB,YB,XB,Ppub),f1=r×P,f3=H2(f1,IDA,m),f2=r/(xA+zA+f3)和其中,v1=r×XB,v2=r×(YB+h1×Ppub),得到的结果为密文μi=(f1,f2,f3,m');
或者
当IDA=φ且IDB≠φ时,通过加密模式执行以下操作,IDA随机选择r∈Zq *,分别计算h1=H1(IDB,YB,XB,XN)、f1=r×P、f3=H2(f1,IDA,m)和其中,v1=r×XB,v2=r×(YB+h1×XN);得到的结果为密文μi=(f1,f3,m');
或者
当IDA≠φ且IDB=φ时,通过签名模式执行以下操作,IDA随机选择r∈Zq *,计算h1=H1(IDB,YB,XB,XN)、f1=r×P、f3=H2(f1,IDA,m)和f2=r/(xA+zA+f3);得到的结果为签名μi=(f1,f2,f3,m)。
在步骤3中的广义解签密方法包括:
在签密模式下,接收端用户IDB分别计算h1'=H1(IDA,YA,XA,XN)、v1'=xB×f1、v2'=zB×f1和判定等式f3=H2(f1,IDA,m)和等式f2×(XA+YA+h1'Ppub+f3×P)=f1在成立的情况下,接收端用户IDB接受消息m,否则拒绝;或者
在加密模式下,接收端用户IDB分别计算h1'=H1(IDA,YA,XA,XN)、v1'=xB×f1和v2'=zB×f1、判定等式f3=H2(f1,IDA,m)在成立的情况下,接收端用户IDB接受消息m,否则拒绝;或者
在签名模式下,接收端用户IDB计算h1'=H1(IDA,YA,XA,XN);判定等式f2×(XA+YA+h1'Ppub+f3×P)=f1和f3=H2(f1,IDA,m)在成立的情况下,接收端用户IDB接受消息m,否则拒绝。
在该种实施方式中,用户IDi先将自己的身份信息和部分公钥(IDi,Xi)发送给KGC,再接收部分私钥;其中,用户IDi包括发送端用户IDA和/或接收端用户IDB。
通过上述的实施方式,一方面避免了基于证书的签密方案中证书颁发、管理和注销所带来的管理上的开销,另一方面避免了基于身份的签密方案中密钥托管问题。此外,采用无线性对签密方法,减少了计算开销,提高了签密效率。基于CDHP和DLP困难问题假设下,本方案满足机密性和不可伪造性。
本发明设计了一种无证书无双线性对的高效、安全的广义签密方案。所设计的签密方案在一个逻辑步骤内同时实现签名和加密两种功能。所设计的方案满足机密性和不可伪造性,即在CDHP(计算Diffie-Hellem问题)假设下适应性选择密文攻击下的不可区分性,在DLP(离散对数问题)假设下适应性选择消息攻击下的不可为造型。该广义签密方案可工作于三种模式:签密、加密和签名。当需要实现数据的机密性、完整性和认证性时,采用签密模式,当只需要实现数据的机密性时采用加密模式,只需要数据的完整性和认证性时,采用签名模式。
下面分别给出本发明正确性和安全性的证明。
一、正确性:
加密的正确性
签名的正确性
二、安全性:
无证书公钥体制中存在两类攻击者:第一类攻击者(AI)能够替换用户公钥但是无法获得系统主密钥,第二类攻击者(AII)能够获得系统主密钥但是无法替换用户公钥。下面分别证明在这两类攻击下本方案均能满足机密性和不可为造性。其中机密性主要针对广义签密方案中的加密模式和签密模式,不可伪造性主要针对广义签密方案中的签名模式和签密模式。
(1)机密性
1)类型I攻击(AI)下的机密性。
定理1在随机预言模型下,所提出广义签密方案中加密和签密模式中如果攻击者AI如果能够在多项式时间内以ε区分密文,那么存在算法C将能够解决CDHP困难问题。
证明:假设C是一个CDHP困难问题的解决者,其困难问题的输入为(aP,bP),其目标是计算abP。C模拟挑战者与AI交互如下:
系统建立阶段。C设置系统主密钥为XN=bP并将系统参数params=(p,q,P,XN,H1,H2,H3)发送给AI,其中H1,H2,H3是由C控制的随机预言机。C随机选择这里为向H1询问的最大次数。
训练阶段。AI适应性进行多项式有界次以下询问,C维持列表L1,L2,L3,LS,LP分别用于跟踪AI对预言机H1,H2,H3、秘密值询问和部分私钥询问。开始时每个列表为空。
H1询问(IDi,Yi,Xi,XN):当C收到AI对(IDi,Yi,Xi,XN)的询问时,如果(IDi,Yi,Xi,XN,h1)在列表L1中存在,返回h1。否则,C随机选择h1∈zq *,将(IDi,Yi,Xi,XN,h1)加入列表L1中,返回h1。
H2询问(f1,IDi,m):当C收到AI对(f1,IDi,m)的询问时,如果(f1,IDi,m,f3)在列表L2中存在,返回f3。否则,C随机选择f3∈zq *,将(f1,IDi,m,f3)加入列表L2中,返回f3。
H3询问(v1,v2):当C收到AI对(v1,v2)的询问时,如果(v1,v2,h3)在列表L3中存在,返回h3。否则,C随机选择h3∈zq *,将(v1,v2,h3)加入列表L3中,返回h3。
秘密值询问(IDi):当C收到AI对(IDi)的询问时,如果(IDi,xi,Xi)在列表LS中存在,返回xi。否则,C随机选择xi∈zq *,将(IDi,xi,Xi)加入列表LS中,返回xi。
部分私钥询问(IDi,Xi):当IDi=IDγ时,C随机选择yi∈zq *,并计算Yi=yi×P,将(IDi,Xi,⊥,Yi)加入到列表LP中(C保存yi),返回⊥,否则,如果(IDi,Xi,zi,Yi)在列表LP中存在,返回zi。否则,C随机选择zi,h1∈zq *,计算Yi=zi×P-h1×XN将(IDi,Xi,zi,Yi)加入列表LP中,将(IDi,Yi,Xi,XN,h1)加入列表L1中,返回zi。
公钥询问(IDi,Xi):当C收到AI对(IDi,Xi)的询问时,如果(IDi,Xi,zi,Yi)在列表LP中存在,返回(Xi,Yi)。否则,C执行部分私钥询问(IDi,Xi),返回(Xi,Yi)。
公钥替换询问(IDi,Yi'):当C收到AI对(IDi,Yi')的询问时,C将列表(IDi,Xi,zi,Yi)替换为(IDi,Xi,⊥,Yi')。
广义签密询问(IDi,IDj,m):当C收到AI以IDi作为发送端用户,以IDj作为接收端用户对长度为l0的m进行签密询问(IDi,IDj,m)时,如果IDi=φ,IDj≠φ,工作于加密模式,只需要系统参数,C按照实际的加密算法进行加密。如果IDi≠φ,C执行如下操作:
a)如果IDi≠IDγ且IDi≠IDj,C执行实际的签密算法因为C知道发送端IDi的私钥。
b)如果IDi=IDγ且IDi≠IDj,
C随机选择r∈Zq *,计算f1=r×P,如果(f1,IDi,m,f3)在列表L2中存在,否则C随机选择f3并将(f1,IDi,m,f3)更新到列表L2中。
C通过查阅表L1获得(IDi,Yi,Xi,XN,h1)或者进行H1询问(IDi,Yi,Xi,XN),计算f2=f1/(Xi+Yi+h1'×XN+f3×P)。
C计算v1=r×Xj,v2=r×(Yj+XN×h1),并查阅L3中是否存在(v1,v2,h3),如果不存在,C随机选择h3并将(v1,v2,h3)更新到列表L3中。
C计算并返回密文μ=(f1,f2,f3,m')。
广义解签密询问(IDi,IDj,μ):
a)如果IDj≠IDγ且IDi≠IDj,C执行实际的解签算法因为C知道接收端IDj的私钥。
b)IDj=IDγ,C执行H1询问以获取(IDj,Yj,Xj,XN,h1),然后查阅表L2和L3,如果存在(f1,IDi,m,f3)以及(v1,v2,h3)∈L3满足:
验证f2×(XA+YA+h1'×Ppub+f3×P)=f1是否成立,如果成立,接受m,否则拒绝。
挑战阶段。AI输出两个长度相等的消息m0,m1,以及随机选择发送端IDA和接收端IDB,如果IDB=IDγ(概率为),C执行如下操作:
查询列表LP获取(IDγ,Xγ,⊥,Yγ)。
随机选择以及α∈{0,1}。
设置f1 *=a×P,η*=Yγ+h1 *×XN以及h1 *=H1(IDγ,Yγ,Xγ,XN),f3 *=H2(f1 *,IDA,m*)。
计算
定义
返回μ*=(f1 *,f2 *,f3 *,m*)。
AI进行概率多项式次数训练阶段的询问,注意AI不能对μ*进行解签密询问。
猜测阶段。当AI输出α',C计算集合其中v1i,v2i分别是H3询问的第一部分和第二部分。C选择S中的一个元素作为CDHP问题的输出。
在以上挑战阶段,发送者IDi可以是φ,这时工作于加密模式,否则工作于签密模式。
2)类型II攻击(AII)下的机密性。
定理2在随机预言模型下,所提出广义签密方案中加密和签密模式中如果攻击者AII如果能够在多项式时间内以ε区分密文,那么存在挑战者C将能够解决CDHP困难问题。
证明:假设C是一个CDHP困难问题的解决者,其困难问题的输入为(aP,bP),其目标是计算abP。C模拟挑战者与AII交互如下:
系统建立阶段。C随机选择xN∈zq *作为系统主密钥并且计算XN=xN×P作为系统公钥。C将系统参数params=(p,q,P,XN,H1,H2,H3)和主密钥xN发送给AII,其中H1,H2,H3是由C控制的随机预言机。C随机选择这里为向H1询问的最大次数。
训练阶段。在这个阶段,AII进行与定理1的证明中训练阶段的询问,但AII不进行公钥替代询问。除了部分私钥询问外,C进行与定理1的证明中训练阶段相同的应答。C对部分私钥询问(IDi,Xi)的应答如下:
当IDi=IDγ时,C设置Yi=a×P,将(IDi,Xi,⊥,Yi)加入到列表LP中,返回⊥,否则,如果(IDi,Xi,zi,Yi)在列表LP中存在,返回zi。否则,C随机选择zi,h1∈zq *,计算Yi=zi×P-h1×XN将(IDi,Xi,zi,Yi)加入列表LP中,将(IDi,Yi,Xi,XN,h1)加入列表L1中,返回zi。
挑战阶段。AII输出两个长度相等的消息m0,m1,以及随机选择发送端IDA和接收端IDB,如果IDB=IDγ(概率为),C执行如下操作:查询列表LP获取(IDγ,Xγ,⊥,Yγ)。随机选择以及α∈{0,1}。设置f1 *=a×P,η*=Yγ+h1 *×XN以及f3 *=H2(f1 *,IDA,m*),h1 *=H1(IDγ,Yγ,Xγ,XN)。计算定义返回μ*=(f1 *,f2 *,f3 *,m*)。AII进行概率多项式次数训练阶段的询问,注意AII不能对c*进行解签密询问。
猜测阶段。当AII输出α',C计算集合其中v1i,v2i分别是H3询问的第一部分和第二部分。C选择S中的一个元素作为CDHP问题的输出。
在以上挑战阶段,发送者IDi可以是φ,这时工作于加密模式,否则工作于签密模式。
(2)不可伪造性:
1)类型I攻击(AI)下的不可伪造性。
定理3在随机预言模型下,所提出广义签密方案中签名和签密模式中如果攻击者AI如果能够在多项式时间内成功伪造密文,那么存在算法C将能够解决DLP困难问题。
证明:假设C是一个DLP困难问题的解决者,其困难问题的输入为(P,aP),其目标是计算a。C模拟挑战者与AI交互如下:
系统建立阶段。C设置系统主密钥为XN=aP并将系统参数params=(p,q,P,XN,H1,H2,H3)发送给AI,其中H1,H2,H3是由C控制的随机预言机。C随机选择这里为向H1询问的最大次数。
训练阶段。在这个阶段,AI进行与定理1的证明中训练阶段的询问。除了广义签密和广义解签密询问外,C进行与定理1的证明中训练阶段相同的应答。C对广义签密和广义解签密询问的应答如下:
广义签密询问(IDi,IDj,m):当C收到AI以IDi作为发送端用户,以IDj作为接收端用户对长度为l0的m进行签密询问(IDi,IDj,m)时,
a)如果IDi≠IDγ,IDi≠IDj,C按照实际的签名或签密算法进行加密因为C知道发送端IDi的私钥。。
b)如果IDi=IDγ,IDi≠IDj,C执行
C随机选择r∈Zq *,计算f1=r×P,如果(f1,IDi,m,f3)在列表L2中存在,否则C随机选择f3并将(f1,IDi,m,f3)更新到列表L2中。。
C通过查阅表L1获得(IDi,Yi,Xi,XN,h1)或者进行H1询问(IDi,Yi,Xi,XN),计算f2=f1/(Xi+Yi+h1'×XN+f3×P)。
C计算v1=r×Xj,v2=r×(Yj+XN×h1),并查阅L3中是否存在(v1,v2,h3),如果不存在,C随机选择h3并将(v1,v2,h3)更新到列表L3中。
C计算并返回密文μ=(f1,f2,f3,m')。
广义解签密询问(IDi,IDj,μ):
a)如果IDj≠IDγ且IDi≠IDj,C执行实际的解签算法因为C知道接收端IDj的私钥。
b)IDj=IDγ,C执行H1询问以获取(IDj,Yj,Xj,XN,h1),然后查阅表L2和L3,如果存在(f1,IDi,m,f3)以及(v1,v2,h3)∈L3满足:
验证f2×(XA+YA+h1'×Ppub+f3×P)=f1是否成立,如果成立,接受m,否则拒绝。
伪造阶段。在这个阶段,AI发送一个伪造的签密μ(1)=(f1 (1),f2 (1),f3 (1),m(1))给挑战者C,以IDA作为发送端,IDB作为接收端。需要注意的是,在训练阶段不能对IDA进行部分私钥询问。此外,μ(1)不能是任何签密询问的输出。如果这个签密是有效的,C可以通过如下方式解决DLP问题:
a)如果IDA=IDγ(概率为),C分别查阅表L2,L3,如果存在(f1,IDi,m,f3),(v1,v2,h3)∈L3满足:f1 (1)=r×P,v1=r×XB,v2=r×(YB+h1×XN),提取m,否则放弃。如果μ(1)通过验证,C重复如上游戏,采用相同随机数但是不同的预言机H2采用不同的Hash值。根据分枝定理,AI将输出另一个签密μ(2)=(f1 (2),f2 (2),f3 (2),m(2)),如果该签密有效,以下等式将成立:
f2 (j)×(Xγ+Yγ+h1'×XN+f3 (j)×P)=f1 (j),j=1,2 (1)
由于Xγ=xγ×P,Yγ=yγ×P,XN=a×P,f1=r×P,式(1)可以写为:
f2 (j)×(xγ+yγ+h1'×a+f3 (j))=r,j=1,2 (2)
式(2)的两个方程中,只有yγ,a两个未知数。因此,C可以通过解两个独立的线性方程获得a,从而解决了DLP问题。
b)如果IDA≠IDγ,C放弃游戏。
在以上的伪造阶段,接收者IDB可以是φ,这时工作于签名模式,否则工作于签密模式。
1)类型II攻击(AII)下的不可伪造性。
定理4在随机预言模型下,所提出广义签密方案中签名和签密模式中如果攻击者AII如果能够在多项式时间内成功伪造密文,那么存在算法C将能够解决DLP困难问题。
证明:假设C是一个DLP困难问题的解决者,其困难问题的输入为(P,aP),其目标是计算a。C模拟挑战者与AII交互如下:
系统建立阶段。与定理2证明中系统建立阶段相同。
训练阶段。在这个阶段,AII进行与定理2的证明中训练阶段的询问。除了广义签密和广义解签密询问,C进行与定理2的证明中训练阶段相同的应答。C对广义签密和广义解签密询问的应答与定理3证明中相同。
伪造阶段。在这个阶段,AII发送一个伪造的签密μ(1)=(f1 (1),f2 (1),f3 (1),m(1))给挑战者C,以IDA作为发送端,IDB作为接收端。需要注意的是,在训练阶段不能对IDA进行部分私钥询问。此外,μ(1)不能是任何签密询问的输出。如果这个签密是有效的,C可以通过如下方式解决DLP问题:
b)如果IDA=IDγ(概率为),C分别查阅表L2,L3,如果存在(f1,IDi,m,f3),(v1,v2,h3)∈L3满足:f1=r×P,v1=r×XB,v2=r×(YB+h1×XN),提取m,否则放弃。如果μ(1)通过验证,则以下等式将成立:
f2 (1)×(Xγ+Yγ+h1'×XN+f3 (1))=f1, (3)
由于Xγ=xγ×P,Yγ=a×P,XN=xN×P,f1=r×P,式(3)可以写为:
f2 (1)×(xγ+a+h1'×xN+f3 (1))=r, (4)
式(4)中,只有a是未知数。因此,C可以通过解式(4)获得a,
从而解决了DLP问题。
b)如果IDA≠IDγ,C放弃游戏。
在以上的伪造阶段,接收者IDB可以是φ,这时工作于签名模式,否则工作于签密模式。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。