具有预判断功能的无证书多接收者匿名签密方法转让专利

申请号 : CN201810419120.3

文献号 : CN108768625B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 庞辽军魏萌萌李慧贤

申请人 : 西安电子科技大学

摘要 :

本发明公开了一种具有预判断功能的无证书多接收者匿名签密方法,用于解决现有无证书多接收者匿名签密方法公平性差的技术问题。技术方案是注册阶段,用户和密钥生成中心KGC共同生成用户的私钥和公钥。签密阶段,发送者将与隐藏接收者身份信息有关的参数生成预判断授权接收者参数,并利用自己的私钥生成预判断密文签名验证参数,再对明文进行加密。解签密阶段,接收者先利用自己的私钥进行计算,通过密文中的预判断授权接收者参数判断自己是不是授权的接收者,接收者再通过预判断密文签名验证参数预判断消息来源是否合法以及密文是否完整,否则,退出解签密过程。本发明实现了在满足判断公平的前提下预判断接收者是否授权的功能。

权利要求 :

1.一种具有预判断功能的无证书多接收者匿名签密方法,其特征在于包括以下步骤:步骤一、用户U随机选取一个整数xU作为自己的秘密值,按照下式计算自己的公钥参数XU:

XU=xUP

其中,用户U包括发送者S和接收者Ri,i表示计数游标,是大于0的整数,XU表示用户U的公钥参数,xU表示用户U的秘密值,P表示密钥生成中心KGC选取的椭圆曲线E上的生成元;

步骤二、用户U将自己的身份信息IDU和公钥参数XU通过公开信道发送给密钥生成中心KGC;

步骤三、密钥生成中心KGC收到用户U发送过来的身份信息IDU和公钥参数XU后,随机选取一个整数vU,按照以下式子分别计算用户U的部分公钥VU和部分私钥yU:VU=vUP

yU=sH0(XU+VU,IDU)+vUmodp其中,VU表示密钥生成中心KGC为用户U生成的部分公钥,vU表示密钥生成中心KGC为用户U随机选取的整数,yU表示密钥生成中心KGC为用户U生成的部分私钥,s表示密钥生成中心KGC选取的系统主密钥,H0表示由密钥生成中心KGC选取并公开的密码单向哈希函数,IDU表示用户U的身份信息,mod表示求模操作,p表示密钥生成中心KGC选取的大素数;

步骤四、密钥生成中心KGC将用户U的部分公钥VU通过公开信道发送给用户U,同时将用户U的部分私钥yU通过安全信道发送给用户U;

步骤五、用户U收到密钥生成中心KGC发送过来的部分公钥VU和部分私钥yU后,判断部分私钥yU是否满足如下等式;若是,则执行步骤六,否则,向密钥生成中心KGC报错,并退出用户注册过程:

yUP=H0(XU+VU,IDU)Ppub+VU其中,Ppub表示密钥生成中心KGC生成的系统公钥;

步骤六、按照以下式子,用户U分别计算自己的私钥SKU和公钥PKU,并对私钥SKU进行安全保存,同时将公钥PKU通过安全信道发送给密钥生成中心KGC,之后退出用户注册过程;

SKU=xU+yUmodp

PKU=XU+VU

其中,SKU表示用户U的私钥,PKU表示用户U的公钥;

步骤七、密钥生成中心KGC收到用户U发送的公钥PKU和部分私钥yU的消息后,对外公布用户U的公钥PKU,并退出用户注册过程;

步骤八、发送者S判断自己是否已经执行步骤一至步骤七的用户注册过程并且获取自己的公钥PKS和私钥SKS;若是,则直接执行步骤九,否则,发送者S执行用户注册过程获取自己的公钥PKS和私钥SKS后,再执行步骤九;

步骤九、发送者S在已注册的用户U中随机选取n个接收者R1,R2,...,Rn,其中,n表示发送者S随机选取的已注册接收者的数目,是大于0的整数;

步骤十、发送者S随机选取一个整数t,按照以下式子分别计算签密验证份额T、每一个接收者Ri的公钥隐藏参数Ki以及每一个接收者Ri的伪身份值ui:T=tP

Ki=t(PKi+H0(PKi,IDi)Ppub)ui=H0(Ki,IDi)

其中,T表示发送者S计算的签密验证份额,t表示发送者S随机选取的整数,Ki表示发送者S计算的第i个接收者Ri的公钥隐藏参数,PKi表示第i个接收者Ri的公钥,IDi表示第i个接收者Ri的身份信息,ui表示发送者S计算的第i个接收者Ri的伪身份值,i表示计数游标,i=

1,2,...,n,n表示发送者S随机选取的已注册接收者的数目,是大于0的整数;

步骤十一、发送者S随机选取一个整数l,按照以下式子,构造接收者Ri身份信息混合值f(ξ)和计算预判断授权接收者参数L:其中ai∈Zp*,A={a0,a1,...an-1}L=H1(T,l)

其中,l表示发送者S随机选取的整数,f(ξ)表示发送者S计算的接收者Ri身份信息混合值,ξ表示自变量,Π表示连乘操作,L表示发送者S计算的预判断授权接收者参数,H1表示由密钥生成中心KGC选取并公开的密码单向哈希函数,A表示发送者S计算的接收者Ri身份信息混合值f(ξ)的各项系数a0,a1,…,an-1的集合,a0,a1,…,an-1表示发送者S计算的接收者Ri身份信息混合值f(ξ)的各项的系数;

步骤十二、按照以下式子,发送者S分别计算隐藏自己身份信息的参数σ、身份信息验证参数Z、对称密钥k以及密文消息δ:σ=H2(L,l,A)

k=H0(T,σ)

δ=Ek(M)

其中,σ表示发送者S计算的隐藏自己身份信息的参数,Z表示发送者S身份信息验证参数, 表示二进制逐位异或操作,IDS表示发送者S的身份信息,k表示发送者S计算的对称密钥,δ表示发送者S计算的密文消息,Ek(.)表示密钥生成中心KGC选取的对称加密算法,M表示明文消息,H2,H3表示由密钥生成中心KGC选取并公开的密码单向哈希函数;

步骤十三、按照以下式子,发送者S分别计算预判断密文签名部分参数β和预判断密文签名验证参数w:

β=H4(T,A,σ,L,Z,δ,IDS)w=t+SKS+βmodp

其中,β表示发送者S计算的预判断密文签名部分参数,w表示发送者S计算的预判断密文签名验证参数,SKS表示发送者S的私钥,H4表示由密钥生成中心KGC选取并公开的密码单向哈希函数;

步骤十四、发送者S将签密验证份额T、接收者Ri身份信息混合值f(ξ)的各项系数a0,a1,...,an-1的集合A、预判断授权接收者参数L、身份信息验证参数Z、密文消息δ和预判断密文签名验证参数w构成签密密文C=,并对签密密文C进行广播,之后退出发送者签密过程;

步骤十五、按照以下式子,接收者Ri分别计算公钥隐藏参数Ki′、自己的伪身份值ui′、接收者Ri身份信息混合值f(ξ)以及发送者S随机选取的整数l′:Ki′=SKiT

ui′=H0(Ki′,IDi)f(ξ)=ξn+an-1ξn-1+...+a1ξ+a0l′=f(ui′)

其中,Ki′表示第i个接收者Ri计算的自己的公钥隐藏参数,SKi表示第i个接收者Ri的私钥,ui′表示第i个接收者Ri计算的自己的伪身份值,l′表示第i个接收者Ri计算的发送者S随机选取的整数,i表示计数游标,i=1,2,...,τ,τ表示已在密钥生成中心KGC注册并接收到消息的接收者的数目,是大于0的整数;

步骤十六、接收者Ri预判断下面等式是否成立,若成立,执行步骤十八,否则,退出接收者解签密过程:

L=H1(T,l′)

步骤十七、按照以下式子,接收者Ri分别计算隐藏发送者S身份信息的参数σ′、发送者S身份信息IDS′以及预判断密文签名部分参数β′:σ′=H2(L,l′,A)

β′=H4(T,A,σ′,L,Z,δ,IDS′)其中,σ′表示第i个接收者Ri计算的隐藏发送者S身份信息的参数,IDS′表示第i个接收者Ri计算的发送者S的身份信息,β′表示第i个接收者Ri计算的预判断密文签名部分参数,i表示计数游标,i=1,2,...,n;

步骤十八、接收者Ri预判断下面等式是否成立;若成立,执行步骤十九,否则,退出接收者解签密过程:

(w-β′)P=T+PKS+H0(PKS,IDS)Ppub其中,PKS表示发送者S的公钥;

步骤十九、按照以下式子,接收者Ri分别计算对称密钥k′和明文消息M′并退出接收者解签密过程:

k′=H0(T,σ′)=k

M′=Dk′(δ)=Dk(δ)=M其中,k′表示第i个接收者Ri计算的对称密钥,M′表示第i个接收者Ri解密得到的明文消息,Dk(.)和Dk′(.)表示与密钥生成中心KGC选取的对称加密算法Ek(.)相对应的对称解密算法。

说明书 :

具有预判断功能的无证书多接收者匿名签密方法

技术领域

[0001] 本发明涉及一种无证书多接收者匿名签密方法,特别涉及一种具有预判断功能的无证书多接收者匿名签密方法。

背景技术

[0002] 多接收者通信在分布式网络应用中占有重要地位,而多接收者签密技术被认为是确保其安全性并提高通信效率的有效手段。在实际中,多接收者签密技术可用于付费浏览
系统、网络会议等场景。为了减少接收者在不同情况下的解签密计算、提高解签密计算效
率,需要多接收者签密技术作为支持。
[0003] 文献“Efficient  anonymous  multireceiver  certificateless encryption.IEEE Systems Journal.2017,11(4):2602-2613”公开了一种有效的匿名多接
收者无证书加密方法。在加密阶段,该方法将隐藏每个接收者身份信息的参数包含在密文
中发送给接收者。在解密阶段,每个接收者收到发送者发送过来的密文后,利用自己的私钥
以及已知参数计算出自己的隐藏身份信息参数,并在密文中查找是否有此值。如果有,说明
自己是授权接收者并继续执行解密过程,否则,说明自己不是授权接收者并退出解密过程。
这种方法导致预判断授权接收者是不公平的。一旦密文中的部分参数被破坏,就有可能导
致一部分授权接收者可以判断出自己是否授权,另一部分授权接收者由于密文中和自己相
关的预判断授权接收者的参数被破坏,则判断不出自己是否授权。另外,该方法没有预判断
消息来源以及密文完整性的功能。

发明内容

[0004] 为了克服现有无证书多接收者匿名签密方法公平性差的不足,本发明提供一种具有预判断功能的无证书多接收者匿名签密方法。该方法注册阶段,用户和密钥生成中心KGC
共同生成用户的私钥和公钥。签密阶段,发送者将与隐藏接收者身份信息有关的参数生成
预判断授权接收者参数,并利用自己的私钥参数等生成预判断密文签名验证参数,最后对
明文进行加密。解签密阶段,接收者先利用自己的私钥等参数进行计算,通过密文中的预判
断授权接收者参数判断自己是不是授权的接收者。如果是,继续执行解签密过程,否则,退
出解签密过程;接收者再通过预判断密文签名验证参数预判断消息来源是否合法以及密文
是否完整。如果是,继续执行解签密过程,否则,退出解签密过程。第一、本发明实现了在满
足判断公平的前提下预判断接收者是否授权的功能,避免了接收者因非授权而进行的预判
断消息来源和解密等不必要的操作;第二、同时实现了预判断消息来源以及密文完整性的
功能,避免了因消息来源不合法或密文不完整而进行的解密等不必要的操作。
[0005] 本发明解决其技术问题所采用的技术方案:一种具有预判断功能的无证书多接收者匿名签密方法,其特点是包括以下步骤:
[0006] 步骤一、用户U随机选取一个整数xU作为自己的秘密值,按照下式计算自己的公钥参数XU:
[0007] XU=xUP
[0008] 其中,用户U包括发送者S和接收者Ri,i表示计数游标,是大于0的整数,XU表示用户U的公钥参数,xU表示用户U的秘密值,P表示密钥生成中心KGC选取的椭圆曲线E上的生成
元;
[0009] 步骤二、用户U将自己的身份信息IDU和公钥参数XU通过公开信道发送给密钥生成中心KGC;
[0010] 步骤三、密钥生成中心KGC收到用户U发送过来的身份信息IDU和公钥参数XU后,随机选取一个整数vU,按照以下式子分别计算用户U的部分公钥VU和部分私钥yU:
[0011] VU=vUP
[0012] yU=sH0(XU+VU,IDU)+vUmodp
[0013] 其中,VU表示密钥生成中心KGC为用户U生成的部分公钥,vU表示密钥生成中心KGC为用户U随机选取的整数,yU表示密钥生成中心KGC为用户U生成的部分私钥,s表示密钥生
成中心KGC选取的系统主密钥,H0表示由密钥生成中心KGC选取的密码单向哈希函数,IDU表
示用户U的身份信息,mod表示求模操作,p表示密钥生成中心KGC选取的大素数;
[0014] 步骤四、密钥生成中心KGC将用户U的部分公钥VU通过公开信道发送给用户U,同时将用户U的部分私钥yU通过安全信道发送给用户U;
[0015] 步骤五、用户U收到密钥生成中心KGC发送过来的部分公钥VU和部分私钥yU后,判断部分私钥yU是否满足如下等式。若是,则执行步骤六,否则,向密钥生成中心KGC报错,并退
出用户注册过程:
[0016] yUP=H0(XU+VU,IDU)Ppub+VU
[0017] 其中,Ppub表示密钥生成中心KGC生成的系统公钥;
[0018] 步骤六、按照以下式子,用户U分别计算自己的私钥SKU和公钥PKU,并对私钥SKU进行安全保存,同时将公钥PKU通过安全信道发送给密钥生成中心KGC,之后退出用户注册过
程;
[0019] SKU=xU+yUmodp
[0020] PKU=XU+VU
[0021] 其中,SKU表示用户U的私钥,PKU表示用户U的公钥;
[0022] 步骤七、密钥生成中心KGC收到用户U发送的公钥PKU和部分私钥yU的消息后,对外公布用户U的公钥PKU,并退出用户注册过程;
[0023] 步骤八、发送者S判断自己是否已经执行步骤一至步骤七的用户注册过程并且获取自己的公钥PKS和私钥SKS。若是,则直接执行步骤九,否则,发送者S执行用户注册过程获
取自己的公钥PKS和私钥SKS后,再执行步骤九;
[0024] 步骤九、发送者S在已注册的用户U中随机选取n个接收者R1,R2,...,Rn,其中,n表示发送者S随机选取的已注册接收者的数目,是大于0的整数;
[0025] 步骤十、发送者S随机选取一个整数t,按照以下式子分别计算签密验证份额T、每一个接收者Ri的公钥隐藏参数Ki以及每一个接收者Ri的伪身份值ui:
[0026] T=tP
[0027] Ki=t(PKi+H0(PKi,IDi)Ppub)
[0028] ui=H0(Ki,IDi)
[0029] 其中,T表示发送者S计算的签密验证份额,t表示发送者S随机选取的整数,Ki表示发送者S计算的第i个接收者Ri的公钥隐藏参数,PKi表示第i个接收者Ri的公钥,IDi表示第i
个接收者Ri的身份信息,ui表示发送者S计算的第i个接收者Ri的伪身份值,i表示计数游标,
i=1,2,...,n,n表示发送者S随机选取的已注册接收者的数目,是大于0的整数;
[0030] 步骤十一、发送者S随机选取一个整数l,按照以下式子,构造接收者Ri身份信息混合值f(ξ)和计算预判断授权接收者参数L:
[0031] 其中ai∈Zp*,A={a0,a1,…an-1}
[0032] L=H1(T,l)
[0033] 其中,l表示发送者S随机选取的整数,f(ξ)表示发送者S计算的接收者Ri身份信息混合值,ξ表示自变量,∏表示连乘操作,L表示发送者S计算的预判断授权接收者参数,H1表
示由密钥生成中心KGC选取的密码单向哈希函数,A表示发送者S计算的接收者Ri身份信息
混合值f(ξ)的各项系数a0,a1,…,an-1的集合,a0,a1,…,an-1表示发送者S计算的接收者Ri身
份信息混合值f(ξ)的各项的系数;
[0034] 步骤十二、按照以下式子,发送者S分别计算隐藏自己身份信息的参数σ、身份信息验证参数Z、对称密钥k以及密文消息δ:
[0035] σ=H2(L,l,A)
[0036]
[0037] k=H0(T,σ)
[0038] δ=Ek(M)
[0039] 其中,σ表示发送者S计算的隐藏自己身份信息的参数,Z表示发送者S身份信息验证参数, 表示二进制逐位异或操作,IDS表示发送者S的身份信息,k表示发送者S计算的对
称密钥,δ表示发送者S计算的密文消息,Ek(.)表示密钥生成中心KGC选取的对称加密算法,
M表示明文消息,H2,H3表示由密钥生成中心KGC选取的密码单向哈希函数;
[0040] 步骤十三、按照以下式子,发送者S分别计算预判断密文签名部分参数β和预判断密文签名验证参数w:
[0041] β=H4(T,A,σ,L,Z,δ,IDS)
[0042] w=t+SKS+βmodp
[0043] 其中,β表示发送者S计算的预判断密文签名部分参数,w表示发送者S计算的预判断密文签名验证参数,SKS表示发送者S的私钥,H4表示由密钥生成中心KGC选取的密码单向
哈希函数;
[0044] 步骤十四、发送者S将签密验证份额T、接收者Ri身份信息混合值f(ξ)的各项系数a0,a1,...,a1的集合A、预判断授权接收者参数L、身份信息验证参数Z、密文消息δ和预判断
密文签名验证参数w构成签密密文C=,并对签密密文C进行广播,之后退出
发送者签密过程;
[0045] 步骤十五、按照以下式子,接收者Ri分别计算公钥隐藏参数Ki′、自己的伪身份值ui′、接收者Ri身份信息混合值f(ξ)以及发送者S随机选取的整数l′:
[0046] Ki′=SKiT
[0047] ui′=H0(Ki′,IDi)
[0048] f(ξ)=ξn+an-1ξn-1+…+a1ξ+a0
[0049] l′=f(ui′)
[0050] 其中,Ki′表示第i个接收者Ri计算的自己的公钥隐藏参数,SKi表示第i个接收者Ri的私钥,ui′表示第i个接收者Ri计算的自己的伪身份值,l′表示第i个接收者Ri计算的发送
者S随机选取的整数,i表示计数游标,i=1,2,...,τ,τ表示已在密钥生成中心KGC注册并接
收到消息的接收者的数目,是大于0的整数;
[0051] 步骤十六、接收者Ri预判断下面等式是否成立,若成立,执行步骤十八,否则,退出接收者解签密过程:
[0052] L=H1(T,l′)
[0053] 步骤十七、按照以下式子,接收者Ri分别计算隐藏发送者S身份信息的参数σ′、发送者S身份信息IDS′以及预判断密文签名部分参数β′:
[0054] σ′=H2(L,l′,A)
[0055] IDS′=H3(σ′,L)⊕Z
[0056] β′=H4(T,A,σ′,L,Z,δ,IDS′)
[0057] 其中,σ′表示第i个接收者Ri计算的隐藏发送者S身份信息的参数,IDS′表示第i个接收者Ri计算的发送者S的身份信息,β′表示第i个接收者Ri计算的预判断密文签名部分参
数,i表示计数游标,i=1,2,...,n;
[0058] 步骤十八、接收者Ri预判断下面等式是否成立。若成立,执行步骤十九,否则,退出接收者解签密过程:
[0059] (w-β′)P=T+PKS+H0(PKS,IDS)Ppub
[0060] 其中,PKS表示发送者S的公钥;
[0061] 步骤十九、按照以下式子,接收者Ri分别计算对称密钥k′和明文消息M′并退出接收者解签密过程:
[0062] k′=H0(T,σ′)=k
[0063] M′=Dk′(δ)=Dk(δ)=M
[0064] 其中,k′表示第i个接收者Ri计算的对称密钥,M′表示第i个接收者Ri解密得到的明文消息,Dk(.)和Dk′(.)表示与密钥生成中心KGC选取的对称加密算法Ek(.)相对应的对称解
密算法。
[0065] 本发明的有益效果是:该方法注册阶段,用户和密钥生成中心KGC共同生成用户的私钥和公钥。签密阶段,发送者将与隐藏接收者身份信息有关的参数生成预判断授权接收
者参数,并利用自己的私钥参数等生成预判断密文签名验证参数,最后对明文进行加密。解
签密阶段,接收者先利用自己的私钥等参数进行计算,通过密文中的预判断授权接收者参
数判断自己是不是授权的接收者。如果是,继续执行解签密过程,否则,退出解签密过程;接
收者再通过预判断密文签名验证参数预判断消息来源是否合法以及密文是否完整。如果
是,继续执行解签密过程,否则,退出解签密过程。本发明实现了在满足判断公平的前提下
预判断接收者是否授权的功能,避免了接收者因非授权而进行的预判断消息来源和解密等
不必要的操作;同时实现了预判断消息来源以及密文完整性的功能,避免了因消息来源不
合法或密文不完整而进行的解密等不必要的操作。
[0066] 具体的第一、本方法采用n阶多项式技术,将隐藏每个接收者身份信息的参数进行混合,之后生成预判断授权接收者参数,每个接收者用来判断自己是不是授权接收者的参
数是一样的,而不像背景技术中的方法不同的接收者用不同的参数来判断自己是不是授权
的接收者。在本方法中,当签密密文在传输过程中被破坏,所有的接收者都能判断或者都不
能判断自己是不是授权的接收者,因此,本方法实现了在满足判断公平的前提下预判断接
收者是否授权的功能,避免了接收者因非授权而进行的预判断消息来源和解密等不必要的
操作,例如非授权接收者不必执行步骤十七、十八、十九。
[0067] 第二、本方法实现了预判断消息来源以及密文完整性的功能,即步骤十八,避免了因消息来源不合法或密文不完整而进行的解密等不必要的操作,例如在消息来源不合法或
密文不完整的情况下,接收者不必执行步骤十九解密获得明文操作。而背景技术中的方法
并没有验证预判断消息来源以及密文完整性的功能,如果消息来源不合法或者密文完整性
被破坏,接收者依然要执行解密获得明文操作。
[0068] 下面结合附图和具体实施方式对本发明作详细说明。

附图说明

[0069] 图1是本发明具有预判断功能的无证书多接收者匿名签密方法的流程图。

具体实施方式

[0070] 名词解释:
[0071] KGC:Key Generation Center,密钥生成中心,为可信第三方,负责产生发送者S和接收者Ri的公钥以及部分私钥,i表示计数游标,是大于0的整数;
[0072] γ:密钥生成中心KGC选取的系统安全参数;
[0073] Fp:密钥生成中心KGC选取的阶为大素数p的有限域;
[0074] E:密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线;
[0075] Gp:密钥生成中心KGC选取的椭圆曲线E上的加法循环群;
[0076] P:密钥生成中心KGC选取的椭圆曲线E上的生成元;
[0077] p:密钥生成中心KGC选取的大素数;
[0078] s:密钥生成中心KGC选取的系统主密钥;
[0079] ∈:限定域符号,例如z∈Zp*,表示z是非零乘法群Zp*中的一个元素;
[0080] Zp*:基于大素数p构成的非零乘法群;
[0081] Ppub:密钥生成中心KGC生成的系统公钥;
[0082] Hj:由密钥生成中心KGC选取的5个密码单向哈希函数,其中j=0,1,2,3,4;
[0083] {0,1}*:任意长的“0”或“1”构成的串;
[0084] ×:笛卡尔乘积,例如集合A={a,b},集合B={0,1},则两个集合的笛卡尔积为A×B={(a,0),(a,1),(b,0),(b,1)};
[0085] F→B:定义域F到值域B的映射;
[0086] params:密钥生成中心KGC构造的系统参数;
[0087] i:计数游标,是大于0的整数;
[0088] n:发送者S随机选取的已注册接收者的数目,是大于0的整数;
[0089] τ:已在密钥生成中心KGC注册并接收到消息的接收者的数目,是大于0的整数,其中,接收者包括授权接收者和非授权接收者,授权接收者表示发送者S随机选取的已注册接
收者,非授权接收者表示未被发送者S选取的已注册接收者;
[0090] k:发送者S计算的对称密钥;
[0091] k′:第i个接收者Ri计算的对称密钥,i表示计数游标,i=1,2,...,n,在接收者授权、消息来源合法以及密文完整的前提下与发送者S计算的对称密钥k相等;
[0092] Ek(.):密钥生成中心KGC选取的对称加密算法,例如DES加密算法;
[0093] Dk(.):与密钥生成中心KGC选取的对称加密算法Ek(.)相对应的对称解密算法,例如DES解密算法;
[0094] Dk′(.):与密钥生成中心KGC选取的对称加密算法Ek(.)相对应的对称解密算法,例如DES解密算法,在接收者授权、消息来源合法以及密文完整的前提下k′=k;
[0095] U:用户,包括发送者S和接收者Ri,i表示计数游标,是大于0的整数;
[0096] S:发送者;
[0097] Ri:接收者,i表示计数游标,是大于0的整数;
[0098] xU:用户U的秘密值,由用户U自己选取,用来生成用户U的私钥SKU的参数;
[0099] XU:用户U的公钥参数,由用户U自己生成,用来生成用户U的公钥PKU的参数;
[0100] IDU:用户U的身份信息;
[0101] vU:密钥生成中心KGC为用户U随机选取的整数;
[0102] VU:密钥生成中心KGC为用户U生成的部分公钥,用来生成用户U的公钥PKU的参数;
[0103] PKU:用户U的公钥,由用户U和密钥生成中心KGC共同生成;
[0104] yU:密钥生成中心KGC为用户U生成的部分私钥,用来生成用户U的私钥SKU的参数;
[0105] SKU:用户U的私钥,由用户U和密钥生成中心KGC共同生成;
[0106] IDS:发送者S的身份信息;
[0107] IDS′:第i个接收者Ri计算的发送者S的身份信息,i表示计数游标,i=1,2,...,n,n表示发送者S随机选取的已注册接收者的数目,是大于0的整数;
[0108] PKS:发送者S的公钥,由发者S和密钥生成中心KGC共同生成;
[0109] SKS:发送者S的私钥,由发送者S和密钥生成中心KGC共同生成;
[0110] IDi:第i个接收者Ri的身份信息,i表示计数游标,是大于0的整数;
[0111] PKi:第i个接收者Ri的公钥,由第i个接收者Ri和密钥生成中心KGC共同生成,i表示计数游标,是大于0的整数;
[0112] SKi:第i个接收者Ri的私钥,由第i个接收者Ri和密钥生成中心KGC共同生成,i表示计数游标,是大于0的整数;
[0113] t:发送者S随机选取的整数;
[0114] T:发送者S计算的签密验证份额,是签密密文C的一部分;
[0115] Ki:发送者S计算的第i个接收者Ri的公钥隐藏参数,i=1,2,...,n,n表示发送者S随机选取的已注册接收者的数目,是大于0的整数;
[0116] Ki′:第i个接收者Ri计算的自己的公钥隐藏参数,i表示计数游标,i=1,2,...,τ,τ表示已在密钥生成中心KGC注册并接收到消息的接收者的数目,是大于0的整数;
[0117] ui:发送者S计算的第i个接收者Ri的伪身份值,i表示计数游标,i=1,2,...,n,n表示发送者S随机选取的已注册接收者的数目,是大于0的整数;
[0118] ui′:第i个接收者Ri计算的自己的伪身份值,i表示计数游标,i=1,2,...,τ,τ表示已在密钥生成中心KGC注册并接收到消息的接收者的数目,是大于0的整数;
[0119] f(ξ):发送者S计算的接收者Ri身份信息混合值,ξ表示自变量,i表示计数游标,i=1,2,...,n,n表示发送者S随机选取的已注册接收者的数目,是大于0的整数;
[0120] ∏:连乘操作,例如
[0121] l:发送者S随机选取的整数;
[0122] l′:第i个接收者Ri计算的发送者S随机选取的整数,用来判断接收者是否授权的参数,i表示计数游标,i=1,2,...,τ,τ表示已在密钥生成中心KGC注册并接收到消息的接
收者的数目,是大于0的整数;
[0123] mod:求模操作,例如7mod4=3;
[0124] A:发送者S计算的接收者Ri身份信息混合值f(ξ)的各项系数a0,a1,...,an-1的集合,是签密密文C的一部分,ξ表示自变量,i表示计数游标,i=1,2,...,n,n表示发送者S随
机选取的已注册接收者的数目,是大于0的整数;
[0125] a0,a1,...,an-1:发送者S计算的接收者Ri身份信息混合值f(ξ)的各项的系数,ξ表示自变量,i表示计数游标,i=1,2,...,n,n表示发送者S随机选取的已注册接收者的数目,
是大于0的整数;
[0126] L:发送者S计算的预判断授权接收者参数,是签密密文C的一部分,用来判断接收者是否授权;
[0127] σ:发送者S计算的隐藏自己身份信息的参数;
[0128] σ′:第i个接收者Ri计算的隐藏发送者S身份信息的参数,用来判断消息来源是否合法、密文是否完整的参数,i=1,2,...,n,n表示发送者S随机选取的已注册接收者的数
目,是大于0的整数;
[0129] Z:发送者S身份信息验证参数,是签密密文C的一部分;
[0130] ⊕:二进制逐位异或操作,例如110⊕010=100;
[0131] δ:发送者S计算的密文消息,是签密密文C的一部分;
[0132] M:明文消息;
[0133] M′:第i个接收者Ri解密得到的明文消息,在接收者授权、消息来源合法以及密文完整的前提下与明文消息M相等,i表示计数游标,i=1,2,...,n,n表示发送者S随机选取的
已注册接收者的数目,是大于0的整数;
[0134] β:发送者S计算的预判断密文签名部分参数;
[0135] β′:第i个接收者Ri计算的预判断密文签名部分参数,用来判断消息来源是否合法、密文是否完整的参数,i表示计数游标,i=1,2,...,n,n表示发送者S随机选取的已注册
接收者的数目,是大于0的整数;
[0136] w:发送者S计算的预判断密文签名验证参数,是签密密文C的一部分;
[0137] C:签密密文;
[0138] :由发送者S计算的签密验证份额T、接收者Ri身份信息混合值f(ξ)的各项系数a0,a1,...,an-1的集合A、预判断授权接收者参数L、发送者S的身份信息验证参数
Z、发送者S计算的密文消息δ和预判断密文签名验证参数w构成的签密密文C的有序元素集
合,ξ表示自变量,i表示计数游标,i=1,2,...,n,n表示发送者S随机选取的已注册接收者
的数目,是大于0的整数。
[0139] 参照图1。本发明具有预判断功能的无证书多接收者匿名签密方法具体步骤如下:
[0140] 首先,需要做密钥生成中心KGC生成系统参数这一步的准备工作。
[0141] 密钥生成中心KGC根据选取的系统安全参数γ选取一个大素数p,确定阶为大素数p的有限域Fp,并选取有限域Fp上的安全椭圆曲线E,确定椭圆曲线E上的加法循环群Gp,选取
*
椭圆曲线E的生成元P;随机选取系统主密钥s∈Zp并安全保存,并计算Ppub=sP作为系统公
钥;选取5个密码单向哈希函数,分别记为:
[0142] H0:GP×{0,1}*→Zp*;H1:GP×ZP*→ZP*;H2:ZP*×ZP*×Zp*×Zp*×…×Zp*→{0,1}*;
[0143] H3:{0,1}*×Zp*→{0,1}*;H4:Gp×Zp*×Zp*×…×Zp*×{0,1}*×Zp*×{0,1}*×{0,* * *
1}×{0,1}→Zp ;密钥生成中心KGC任意选取一种对称加密算法Ek(.)以及相对应的对称解
密算法Dk(.);密钥生成中心KGC构造系统参数params=Ek(.),Dk(.)>并对其进行公开;
[0144] 其中,KGC表示密钥生成中心,γ表示密钥生成中心KGC选取的系统安全参数,p表示密钥生成中心KGC选取的大素数,Fp表示密钥生成中心KGC选取的阶为大素数p的有限域,
E表示密钥生成中心KGC选取的有限域Fp上的安全椭圆曲线,Gp表示密钥生成中心KGC选取的
椭圆曲线E上的加法循环群,P表示密钥生成中心KGC选取的椭圆曲线E上的生成元,s表示密
钥生成中心KGC选取的系统主密钥,∈表示限定域符号,Zp*表示基于大素数p构成的非零乘
法群,Ppub表示密钥生成中心KGC生成的系统公钥,H0,H1,H2,H3,H4表示由密钥生成中心KGC选
取的5个密码单向哈希函数,{0,1}*表示任意长的“0”或“1”构成的串,×表示笛卡尔乘积,F
→B表示定义域F到值域B的映射,Ek(.)表示密钥生成中心KGC选取的对称加密算法,Dk(.)表
示与密钥生成中心KGC选取的对称加密算法Ek(.)相对应的对称解密算法,k表示发送者S计
算的对称密钥,params表示密钥生成中心KGC构造的系统参数。
[0145] 在上述步骤完成之后,即可执行以下步骤:
[0146] 注意到,步骤一至步骤七是用户注册过程,而用户注册步骤中的用户U包括发送者S和接收者Ri,这也就意味着在执行签密以及解签密的过程中,发送者S属于用户U,接收者Ri
也属于用户U;
[0147] 步骤一、用户U随机选取一个整数xU∈Zp*作为自己的秘密值,按照下式计算自己的公钥参数XU:
[0148] XU=xUP
[0149] 其中,XU表示用户U的公钥参数,xU表示用户U的秘密值,P表示密钥生成中心KGC选取的椭圆曲线E上的生成元;
[0150] 步骤二、用户U将自己的身份信息IDU、公钥参数XU通过公开信道发送给密钥生成中心KGC;
[0151] 步骤四、密钥生成中心KGC收到用户U发送过来的身份信息IDU、公钥参数XU后,随机*
选取一个整数vU∈Zp,按照以下式子分别计算用户U的部分公钥VU和部分私钥yU:
[0152] VU=vUP
[0153] yU=sH0(XU+VU,IDU)+vUmodp
[0154] 其中,VU表示密钥生成中心KGC为用户U生成的部分公钥,vU表示密钥生成中心KGC为用户U随机选取的整数,yU表示密钥生成中心KGC为用户U生成的部分私钥,IDU表示用户U
的身份信息,mod表示求模操作;
[0155] 步骤四、密钥生成中心KGC将用户U的部分公钥VU通过公开信道发送给用户U,同时将用户U的部分私钥yU通过安全信道发送给用户U;
[0156] 步骤五、用户U收到密钥生成中心KGC发送过来的部分公钥VU和部分私钥yU后,判断部分私钥yU是否满足如下等式。若是,则执行步骤七,否则,向密钥生成中心KGC报错,并退
出用户注册过程:
[0157] yUP=H0(XU+VU,IDU)Ppub+VU
[0158] 步骤六、按照以下式子,用户U分别计算自己的私钥SKU和公钥PKU,并对私钥SKU进行安全保存,同时将公钥PKU通过安全信道发送给密钥生成中心KGC,之后退出用户注册过
程;
[0159] SKU=xU+yUmodp
[0160] PKU=XU+VU
[0161] 其中,SKU表示用户U的私钥,PKU表示用户U的公钥;
[0162] 步骤七、密钥生成中心KGC收到用户U发送的公钥PKU和部分私钥yU的消息后,对外公布用户U的公钥PKU,并退出用户注册过程;
[0163] 步骤八、发送者S判断自己是否已经执行步骤一至步骤七的用户注册过程并且获取了自己的公钥PKS和私钥SKS。若是,则直接执行步骤九,否则,发送者S执行用户注册过程
获取自己的公钥PKS和私钥SKS后,再执行步骤九;
[0164] 步骤九、发送者S在已注册的用户U中随机选取n个接收者R1,R2,...,Rn,其中,n表示发送者S随机选取的已注册接收者的数目,是大于0的整数;
[0165] 步骤十、发送者S随机选取一个整数t∈Zp*,按照以下式子分别计算签密验证份额T、每一个接收者Ri的公钥隐藏参数Ki以及每一个接收者Ri的伪身份值ui:
[0166] T=tP
[0167] Ki=t(PKi+H0(PKi,IDi)Ppub)
[0168] ui=H0(Ki,IDi)
[0169] 其中,T表示发送者S计算的签密验证份额,t表示发送者S随机选取的整数,Ki表示发送者S计算的第i个接收者Ri的公钥隐藏参数,PKi表示第i个接收者Ri的公钥,IDi表示第i
个接收者Ri的身份信息,ui表示发送者S计算的第i个接收者Ri的伪身份值,i表示计数游标,
i=1,2,...,n,n表示发送者S随机选取的已注册接收者的数目,是大于0的整数;
[0170] 步骤十一、发送者S随机选取一个整数l∈Zp*,按照以下式子,构造接收者Ri身份信息混合值f(ξ)和计算预判断授权接收者参数L:
[0171] 其中ai∈Zp*,A={a0,a1,…an-1}
[0172] L=H1(T,l)
[0173] 其中,l表示发送者S随机选取的整数,f(ξ)表示发送者S计算的接收者Ri身份信息混合值,ξ表示自变量,∏表示连乘操作,L表示发送者S计算的预判断授权接收者参数,A表
示发送者S计算的接收者Ri身份信息混合值f(ξ)的各项系数a0,a1,…,an-1的集合,a0,a1,…,
an-1表示发送者S计算的接收者Ri身份信息混合值f(ξ)的各项的系数;
[0174] 步骤十二、按照以下式子,发送者S分别计算隐藏自己身份信息的参数σ、身份信息验证参数Z、对称密钥k以及密文消息δ:
[0175] σ=H2(L,l,A)
[0176]
[0177] k=H0(T,σ)
[0178] δ=Ek(M)
[0179] 其中,σ表示发送者S计算的隐藏自己身份信息的参数,Z表示发送者S身份信息验证参数,⊕表示二进制逐位异或操作,IDS表示发送者S的身份信息,k表示发送者S计算的对
称密钥,δ表示发送者S计算的密文消息,Ek(.)表示密钥生成中心KGC选取的对称加密算法,
M表示明文消息;
[0180] 步骤十三、按照以下式子,发送者S分别计算预判断密文签名部分参数β和预判断密文签名验证参数w:
[0181] β=H4(T,A,σ,L,Z,δ,IDS)
[0182] w=t+SKS+βmodp
[0183] 其中,β表示发送者S计算的预判断密文签名部分参数,w表示发送者S计算的预判断密文签名验证参数,SKS表示发送者S的私钥;
[0184] 步骤十四、发送者S将签密验证份额T、接收者Ri身份信息混合值f(ξ)的各项系数a0,a1,...,an-1的集合A、预判断授权接收者参数L、身份信息验证参数Z、密文消息δ和预判断
密文签名验证参数w构成签密密文C=,并对签密密文C进行广播,之后退出
发送者签密过程;
[0185] 接收者Ri收到签密密文C后,判断自己是否已经执行步骤一至步骤七的用户注册过程并且获取了自己的公钥PKi和私钥SKi。若是,则直接执行步骤十五,否则,退出接收者解
签密过程;
[0186] 步骤十五、按照以下式子,接收者Ri分别计算公钥隐藏参数Ki′、自己的伪身份值ui′、接收者Ri身份信息混合值f(ξ)以及发送者S随机选取的整数l′:
[0187] Ki′=SKiT
[0188] ui′=H0(Ki′,IDi)
[0189] f(ξ)=ξn+an-1ξn-1+…+a1ξ+a0
[0190] l′=f(ui′)
[0191] 其中,Ki′表示第i个接收者Ri计算的自己的公钥隐藏参数,SKi表示第i个接收者Ri的私钥,ui′表示第i个接收者Ri计算的自己的伪身份值,l′表示第i个接收者Ri计算的发送
者S随机选取的整数,i表示计数游标,i=1,2,...,τ,τ表示已在密钥生成中心KGC注册并接
收到消息的接收者的数目,是大于0的整数;
[0192] 步骤十六、接收者Ri预判断下面等式是否成立,若成立,执行步骤十八,否则,退出接收者解签密过程:
[0193] L=H1(T,l′)
[0194] 步骤十七、按照以下式子,接收者Ri分别计算隐藏发送者S身份信息的参数σ′、发送者S身份信息IDS′以及预判断密文签名部分参数β′:
[0195] σ′=H2(L,l′,A)
[0196]
[0197] β′=H4(T,A,σ′,L,Z,δ,IDS′)
[0198] 其中,σ′表示第i个接收者Ri计算的隐藏发送者S身份信息的参数,IDS′表示第i个接收者Ri计算的发送者S的身份信息,β′表示第i个接收者Ri计算的预判断密文签名部分参
数,i表示计数游标,i=1,2,...,n;
[0199] 步骤十八、接收者Ri预判断下面等式是否成立。若成立,执行步骤十九,否则,退出接收者解签密过程:
[0200] (w-β′)P=T+PKS+H0(PKS,IDS)Ppub
[0201] 其中,PKS表示发送者S的公钥;
[0202] 步骤十九、按照以下式子,接收者Ri分别计算对称密钥k′和明文消息M′并退出接收者解签密过程:
[0203] k′=H0(T,σ′)=k
[0204] M′=Dk′(δ)=Dk(δ)=M
[0205] 其中,k′表示第i个接收者Ri计算的对称密钥,M′表示第i个接收者Ri解密得到的明文消息,Dk(.)和Dk′(.)表示与密钥生成中心KGC选取的对称加密算法Ek(.)相对应的对称解
密算法。