一种可显式验证公钥的多接收者签密方法转让专利

申请号 : CN201610203505.7

文献号 : CN105743641B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 庞辽军赵慧洋闫旭霞贾生盼

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

摘要 :

本发明公开了一种可显式验证公钥的多接收者签密方法,具体实现步骤包括:1、生成系统参数;2、用户注册;3、发送者签密;4、接收者解密;5、判断密文的有效性;6、接受明文消息,退出解密;7、拒绝接受明文消息,退出解密。本发明中设置用户的私钥是用户随机选取的秘密值,并且用户可以对KGC生成的加密公钥的正确性进行验证,解决了现有技术中的密钥托管问题。在用户注册中,任何人都可以对用户的公钥进行验证,解决了现有技术中的公钥替换攻击问题。本发明提高了系统整体的安全性和可靠性,实现了接收者的身份匿名性,具有安全,高效的优点,可以应用于网络安全技术领域。

权利要求 :

1.一种可显式验证公钥的多接收者签密方法,具体步骤包括如下:(1)生成系统参数:

(1a)密钥生成中心KGC将随机选取的一个公开模数N、一个大素数q、一个公开指数u、一个公开整数g作为密码系统参数;

(1b)密钥生成中心KGC将随机选取的密码系统主密钥d秘密保存;

(1c)密钥生成中心KGC将构造的5个密码单向哈希函数作为密码系统参数:其中,H0,H1,H2,H3,H4表示密钥生成中心KGC构造的5个密码单向哈希函数,{0,1}*表示由“0”和/或“1”构成的任意长的串,A→B表示定义域A到值域B的映射,Zq*表示基于素数q构成的非零乘法群,×表示笛卡尔乘积,l表示明文消息M的长度,{0,1}l表示长度为l的“0”或“1”构成的串;

(1d)密钥生成中心KGC发布公开模数N、大素数q、公开指数u、公开整数g、5个密码单向哈希函数H0,H1,H2,H3,H4;

(2)用户注册:

(2a)用户随机选取一个整数作为自己的私钥;

(2b)按照下式,用户计算验证份额:

v=g-SK(modN)

其中,v表示用户的验证份额,g表示公开整数,SK表示用户随机选取的自己的私钥,mod表示求模操作,N表示公开模数;

(2c)用户将自己的验证份额和自己的身份信息通过安全信道发送给密钥生成中心KGC;

(2d)密钥生成中心KGC收到用户的验证份额和身份信息后,按照下式,计算用户的加密公钥:d

P=(v-H0(ID)) (modN)

其中,P表示用户的加密公钥,v表示用户的验证份额,H0表示密码单向哈希函数,ID表示用户的身份信息,d表示密码系统主密钥,mod表示求模操作,N表示公开模数;

(2e)密钥生成中心KGC将用户的加密公钥发送给用户;

(2f)判断用户收到的加密公钥是否满足验证条件,若是,则执行步骤(2g),否则,则执行步骤(2i);

(2g)用户通知密钥生成中心KGC分别计算用户身份信息的哈希值H0(ID)、用户验证分额的哈希值H2(v);

(2h)密钥生成中心KGC对外公布由用户身份信息的哈希值H0(ID)、用户验证分额的哈希值H2(v)和用户的加密公钥P组成的用户公钥,用户在保存了自己的私钥之后退出用户注册过程;

(2i)用户向密钥生成中心KGC报错,退出用户注册过程;

(3)发送者签密:

(3a)发送者在已注册的用户中随机选取n个接收者,其中,n表示大于0的整数;

(3b)发送者判断每一个接收者的公钥是否都满足验证条件,若是,则执行步骤(3c),否则,退出发送者签密过程;

(3c)按照下式,发送者计算与每一个接收者之间的关联信息:其中,ks,i表示发送者s与第i个接收者Ri之间的关联信息,i=1,2,…,n,n表示发送者在已注册的用户中随机选取的接收者的数目,Pi表示第i个接收者Ri的加密公钥,u表示公开指数,H0表示密码单向哈希函数,IDi表示第i个接收者Ri的身份信息,SKs表示发送者s的私钥,mod表示求模操作,N表示公开模数;

(3d)按照下式,发送者计算每一个接收者的伪身份值:wi=H1(H0(IDi),ks,i)

其中,wi表示第i个接收者Ri的伪身份值,i=1,2,…,n,n表示发送者在已注册的用户中随机选取的接收者的数目,H1、H0表示两个密码单向哈希函数,IDi表示第i个接收者Ri的身份信息,ks,i表示发送者s与第i个接收者Ri之间的关联信息;

(3e)按照下式,发送者计算加密消息密文:

其中,EC表示加密消息密文,H2表示密码单向哈希函数,t表示发送者随机选取的整数,表示逐位异或操作,M表示明文消息;

(3f)按照下式,发送者构造接收者身份信息混合值:

其中,f(·)表示接收者身份信息混合值,x表示隐藏身份种子,∏表示连乘操作,n表示发送者s在已注册的用户中随机选取的接收者的数目,i表示计数游标,wi表示第i个接收者Ri的伪身份值,t表示发送者s随机选取的整数,mod表示求模操作,q表示大素数;

(3g)按照下式,发送者计算密文有效性参数:

h=H4(a0,a1,...,an-1,M,EC)

其中,h表示密文有效性参数,H4表示密码单向哈希函数,a0,a1,…,an-1表示接收者身份信息混合值f(·)的系数,M表示明文消息,EC表示加密消息密文;

(3h)发送者将加密消息密文、接收者身份信息混合值的系数、密文有效性参数和发送者的身份信息构成签密密文,并对签密密文进行广播;

(4)接收者解密:

(4a)接收者判断签密密文的签名是否满足验证条件,若是,则执行步骤(4b),否则,执行步骤(7);

(4b)按照下式,接收者计算与发送者之间的关联信息:其中,ks,i表示发送者s与第i个接收者Ri之间的关联信息,i=1,2,…,n,n表示发送者在已注册的用户中随机选取的接收者的数目,Ps表示发送者s的加密公钥,u表示公开指数,H0表示密码单向哈希函数,IDs表示发送者s的身份信息,SKi表示第i个接收者Ri的私钥;

(4c)按照下式,接收者计算伪身份值:

wi=H1(H0(IDi),ks,i)

其中,wi表示第i个接收者Ri的伪身份值,i=1,2,…,n,n表示发送者在已注册的用户中随机选取的接收者的数目,H1、H0表示两个密码单向哈希函数,IDi表示第i个接收者Ri的身份信息,ks,i表示发送者s与第i个接收者Ri之间的关联信息;

(4d)按照下式,接收者计算发送者随机选取的整数:

t=f(wi)

其中,t表示发送者s随机选取的整数,f(·)表示接收者身份信息混合值,wi表示第i个接收者Ri的伪身份值;

(4e)按照下式,接收者计算发送者发送的明文消息:

其中,M表示发送者s发送的明文消息,H3表示密码单向哈希函数,t表示发送者s随机选取的整数, 表示逐位异或操作,EC表示加密消息密文;

(4f)按照下式,接收者计算权限参数:

J=H4(a0,a1,...,an-1,M,EC)

其中,J表示权限参数,H4表示密码单向哈希函数,a0,a1,…,an-1表示接收者身份信息混合值f(·)的系数,M表示明文消息,EC表示加密消息密文;

(5)接收者判断权限参数与密文有效性参数是否相等;若是,则执行步骤(6),否则,执行步骤(7);

(6)接收者接受明文消息,并退出接收者解密过程;

(7)接收者拒绝明文消息,并退出接收者解密过程。

2.根据权利要求1所述的一种可显式验证公钥的多接收者签密方法,其特征在于:步骤(1a)中所述的公开模数N为N=a*b,大素数q表示大于公开模数N的整数,密码系统主密钥d为满足u*d≡1(modφ(N))的整数,其中,a,b均表示大素数,且a与b的长度相等,*表示数的相乘操作,u表示与φ(N)互素的公开指数,φ(N)表示欧拉函数,d表示密码系统主密钥,mod表示求余操作。

3.根据权利要求1所述的一种可显式验证公钥的多接收者签密方法,其特征在于:步骤(2)中所述的用户包括一个发送者和多个接收者。

4.根据权利要求1所述的一种可显式验证公钥的多接收者签密方法,其特征在于:步骤(2f)中所述的加密公钥的验证条件是判定以下等式是否成立,若成立,表示满足加密公钥的验证条件,否则,表示不满足加密公钥的验证条件:Pu+H0(ID)=v(modN)

其中,P表示用户的加密公钥,u表示公开指数,H0表示密码单向哈希函数,ID表示用户的身份信息,v表示用户的验证份额,mod表示求余操作,N表示公开模数。

5.根据权利要求1所述的一种可显式验证公钥的多接收者签密方法,其特征在于:步骤(3b)中所述的接收者公钥的验证条件是判定以下等式是否成立,若成立,表示满足接收者公钥的验证条件,否则,表示不满足接收者公钥的验证条件:H2(Piu+H0(IDi))=H2(vi)

其中,H2表示密码单向哈希函数,Pi表示第i个接收者Ri的加密公钥,u表示公开指数,H0表示密码单向哈希函数,IDi表示第i个接收者Ri的身份信息,vi表示第i个接收者Ri的验证份额。

6.根据权利要求1所述的一种可显式验证公钥的多接收者签密方法,其特征在于:步骤(4a)中所述的签密密文签名的验证条件是判定以下等式是否成立,若成立,表示满足签密密文签名的验证条件,否则,表示不满足签密密文签名的验证条件:H2(Psu+H0(IDs))=H2(vs)

其中,H2表示密码单向哈希函数,Ps表示发送者s的加密公钥,u表示公开指数,H0表示密码单向哈希函数,IDs表示发送者s的身份信息,vs表示发送者s的验证份额。

说明书 :

一种可显式验证公钥的多接收者签密方法

技术领域

[0001] 本发明属于通信技术领域,更进一步涉及网络安全技术领域中的一种可显式验证公钥的多接收者签密方法。本发明以多接收者签密体制为基础,提出了一种无密钥托管问题、用户公钥可以显式验证的多接收者签密方法。本发明可用于分布式网络应用当中,解决了网络服务提供商对网络中的所有授权用户进行广播消息的安全问题以及所有授权用户公私钥的安全问题。

背景技术

[0002] 在分布式网络应用(例如网络会议、圆桌会议、收费电视等)中,为了克服密钥托管问题和证书管理问题,保护通信系统中进行会话的所有参与者的身份隐私,以及确保会话内容仅可以被授权用户正确解密,而非授权用户无法正确解密,需要安全广播技术作为支持。安全广播是实现一个发送者向多个授权接收者发送相同消息的安全技术,能够实现上述网络应用的安全需求。
[0003] Hung Y.,Huang S.,Tseng Y.和Tsai T.在其发表的论文“Efficient Anonymous Multireceiver Certificateless Encryption(IEEE Systems Journal,2015)”中提出了一种有效的匿名无证书多接收者加密方法。该方法的主要步骤是:(1)用户(包括发送者和接收者)以自身的身份信息向密钥生成中心KGC(Key Generation Center)进行注册,KGC为每一个注册用户计算部分私钥,并将部分私钥秘密地分发给各个用户;之后用户随机选取一个秘密值作为自己的另一部分私钥,并根据随机选取的秘密值计算出自己相对应的公钥;故,用户的私钥由两部分组成:可信第三方KGC发送给用户的部分私钥和用户随机选取的秘密值;(2)加密时,发送者用授权接收者的身份信息、授权接收者的公钥以及所要发送的明文消息计算得到密文,并将密文进行广播;(3)解密时,授权接收者用自己的私钥计算得到明文和中间参数,若该中间参数与密文中的参数值相等,则授权接收者接收明文消息,否则,拒绝接收。该方法存在的不足之处是:首先,虽然用户的部分私钥是由KGC根据用户的身份信息和系统主密钥生成,但是用户收到KGC发过来的部分私钥后,无法对部分私钥的正确性进行验证,所以该文献提出的方案的安全性依然是建立在对可信第三方绝对信任的基础上,并没有解决密钥托管所带来的不能抵抗恶意的KGC攻击的问题;其次,在该文献提出的方案中,用户的公钥是根据用户随机选取的秘密值计算得到,与用户身份信息无关,所以任何人都无法验证用户公钥的合法性,方案易遭受公钥替换攻击。
[0004] 西安电子科技大学在其申请的专利“多接收者生物特征签密方法”(申请号201210148238.X,申请日期2012.05.14,公开日期2012.10.03)中提出了一种多接收者生物特征签密方法。该方法的主要步骤是:首先,用户向可信第三方KGC进行注册,KGC根据注册用户的身份信息为其计算私钥,并将生物特征数据与该私钥进行绑定得到一个对外公开的矫正参数;签密时,发送者用自己的生物特征以及授权接收者的身份信息进行计算得到密文,并进行广播;解密时,接收者首先进行发送者身份验证,判定发送者是否伪造以及自己是否为授权的接收者,进而确定是否需要进一步解密操作。该方法存在的不足之处是:首先,用户的私钥是由可信第三方KGC直接生成,故存在密钥托管所带来的不能抵抗恶意的KGC攻击的问题;其次,加密过程采用的是拉格朗日(Lagrange)多项式保护接收者的身份隐私,故解密过程中授权接收者可以得到其他授权接收者的身份信息,这样会泄露其他授权接收者的隐私,未能实现接收者的匿名性,存在安全问题。

发明内容

[0005] 本发明的目的在于克服上述现有技术在进行广播签密时存在的密钥托管问题、公钥替换攻击问题,提供一种无密钥托管问题、可显式验证公钥的多接收者签密方法。
[0006] 实现本方法目的的思路是:用户随机选取一个秘密值作为自己的私钥,而后根据自己的私钥计算出一个验证份额,并将这个验证份额与自己的身份信息一起发送给密钥生成中心。密钥生成中心根据用户发过来的验证份额及其身份信息,生成用户的加密公钥,并发送给用户。用户收到密钥生成中心发送过来的加密公钥后,对加密公钥进行验证,若成立,则接受加密公钥,否则,拒绝接受,并向密钥生成中心报错。在此过程中,用户的私钥是自己随机选取的秘密值,密钥生成中心只知道用户的加密公钥和对应的身份信息,故无法获取用户的私钥,解决了密钥托管问题;用户的公钥由用户身份的哈希值、验证份额的哈希值以及密钥生成中心发送给用户的加密公钥组成,任何人都可以通过特定等式验证用户公钥的正确性和合法性,故解决了公钥替换攻击问题;同时,发送者在签密消息时采用接收者身份信息混合值将所有接收者的身份信息融合在一起作为签密密文的一部分,从而在签密密文中不直接暴露接收者的身份信息列表,进而实现了接收者的身份匿名。因此,本方法解决了广播通信时潜在的密钥托管问题、公钥替换攻击问题,同时保护了接收者的身份隐私性。
[0007] 本发明的具体实现步骤包括如下:
[0008] (1)生成系统参数:
[0009] (1a)密钥生成中心KGC将随机选取的一个公开模数N、一个大素数q、一个公开指数u、一个公开整数g作为密码系统参数;
[0010] (1b)密钥生成中心KGC将随机选取的密码系统主密钥d秘密保存;
[0011] (1c)密钥生成中心KGC将构造的5个密码单向哈希函数作为密码系统参数:
[0012] 其中,H0,H1,H2,H3,H4表示密钥生成中心KGC构造的5个密码单向哈希函数,{0,1}*表示由“0”和/或“1”构成的任意长的串,A→B表示定义域A到值域B的映射,Zq*表示基于素数q构成的非零乘法群,×表示笛卡尔乘积,l表示明文消息M的长度,{0,1}l表示长度为l的“0”或“1”构成的串;
[0013] (1d)密钥生成中心KGC发布公开模数N、大素数q、公开指数u、公开整数g、5个密码单向哈希函数H0,H1,H2,H3,H4;
[0014] (2)用户注册:
[0015] (2a)用户随机选取一个整数作为自己的私钥;
[0016] (2b)按照下式,用户计算验证份额:
[0017] v=g-SK(modN)
[0018] 其中,v表示用户的验证份额,g表示公开整数,SK表示用户随机选取的自己的私钥,mod表示求模操作,N表示公开模数;
[0019] (2c)用户将自己的验证份额和自己的身份信息通过安全信道发送给密钥生成中心KGC;
[0020] (2d)密钥生成中心KGC收到用户的验证份额和身份信息后,按照下式,计算用户的加密公钥:
[0021] P=(v-H0(ID))d(modN)
[0022] 其中,P表示用户的加密公钥,v表示用户的验证份额,H0表示密码单向哈希函数,ID表示用户的身份信息,d表示密码系统主密钥,mod表示求模操作,N表示公开模数;
[0023] (2e)密钥生成中心KGC将用户的加密公钥发送给用户;
[0024] (2f)判断用户收到的加密公钥是否满足验证条件,若是,则执行步骤(2g),否则,则执行步骤(2i);
[0025] (2g)用户通知密钥生成中心KGC分别计算用户身份信息的哈希值H0(ID)、用户验证分额的哈希值H2(v);
[0026] (2h)密钥生成中心KGC对外公布由用户身份信息的哈希值H0(ID)、用户验证分额的哈希值H2(v)和用户的加密公钥P组成的用户公钥,用户在保存了自己的私钥之后退出用户注册过程;
[0027] (2i)用户向密钥生成中心KGC报错,退出用户注册过程;
[0028] (3)发送者签密:
[0029] (3a)发送者在已注册的用户中随机选取n个接收者,其中,n表示大于0的整数;
[0030] (3b)发送者判断每一个接收者的公钥是否都满足验证条件,若是,则执行步骤(3c),否则,退出发送者签密过程;
[0031] (3c)按照下式,发送者计算与每一个接收者之间的关联信息:
[0032]
[0033] 其中,ks,i表示发送者s与第i个接收者Ri之间的关联信息,i=1,2,…,n,n表示发送者在已注册的用户中随机选取的接收者的数目,Pi表示第i个接收者Ri的加密公钥,u表示公开指数,H0表示密码单向哈希函数,IDi表示第i个接收者Ri的身份信息,SKs表示发送者s的私钥,mod表示求模操作,N表示公开模数;
[0034] (3d)按照下式,发送者计算每一个接收者的伪身份值:
[0035] wi=H1(H0(IDi),ks,i)
[0036] 其中,wi表示第i个接收者Ri的伪身份值,i=1,2,…,n,n表示发送者在已注册的用户中随机选取的接收者的数目,H1、H0表示两个密码单向哈希函数,IDi表示第i个接收者Ri的身份信息,ks,i表示发送者s与第i个接收者Ri之间的关联信息;
[0037] (3e)按照下式,发送者计算加密消息密文:
[0038]
[0039] 其中,EC表示加密消息密文,H2表示密码单向哈希函数,t表示发送者随机选取的整数,表示逐位异或操作,M表示明文消息;
[0040] (3f)按照下式,发送者构造接收者身份信息混合值:
[0041]
[0042] 其中,f(·)表示接收者身份信息混合值,x表示隐藏身份种子,∏表示连乘操作,n表示发送者s在已注册的用户中随机选取的接收者的数目,i表示计数游标,wi表示第i个接收者Ri的伪身份值,t表示发送者s随机选取的整数,mod表示求模操作,q表示大素数;
[0043] (3g)按照下式,发送者计算密文有效性参数:
[0044] h=H4(a0,a1,...,an-1,M,EC)
[0045] 其中,h表示密文有效性参数,H4表示密码单向哈希函数,a0,a1,…,an-1表示接收者身份信息混合值f(·)的系数,M表示明文消息,EC表示加密消息密文;
[0046] (3h)发送者将加密消息密文、接收者身份信息混合值的系数、密文有效性参数和发送者的身份信息构成签密密文,并对签密密文进行广播;
[0047] (4)接收者解密:
[0048] (4a)接收者判断签密密文的签名是否满足验证条件,若是,则执行步骤(4b),否则,执行步骤(7);
[0049] (4b)按照下式,接收者计算与发送者之间的关联信息:
[0050]
[0051] 其中,ks,i表示发送者s与第i个接收者Ri之间的关联信息,i=1,2,…,n,n表示发送者在已注册的用户中随机选取的接收者的数目,Ps表示发送者s的加密公钥,u表示公开指数,H0表示密码单向哈希函数,IDs表示发送者s的身份信息,SKi表示第i个接收者Ri的私钥;
[0052] (4c)按照下式,接收者计算伪身份值:
[0053] wi=H1(H0(IDi),ks,i)
[0054] 其中,wi表示第i个接收者Ri的伪身份值,i=1,2,…,n,n表示发送者在已注册的用户中随机选取的接收者的数目,H1、H0表示两个密码单向哈希函数,IDi表示第i个接收者Ri的身份信息,ks,i表示发送者s与第i个接收者Ri之间的关联信息;
[0055] (4d)按照下式,接收者计算发送者随机选取的整数:
[0056] t=f(wi)
[0057] 其中,t表示发送者s随机选取的整数,f(·)表示接收者身份信息混合值,wi表示第i个接收者Ri的伪身份值;
[0058] (4e)按照下式,接收者计算发送者发送的明文消息:
[0059]
[0060] 其中,M表示发送者s发送的明文消息,H3表示密码单向哈希函数,t表示发送者s随机选取的整数,表示逐位异或操作,EC表示加密消息密文;
[0061] (4f)按照下式,接收者计算权限参数:
[0062] J=H4(a0,a1,...,an-1,M,EC)
[0063] 其中,J表示权限参数,H4表示密码单向哈希函数,a0,a1,…,an-1表示接收者身份信息混合值f(·)的系数,M表示明文消息,EC表示加密消息密文;
[0064] (5)接收者判断权限参数与密文有效性参数是否相等;若是,则执行步骤(6),否则,执行步骤(7);
[0065] (6)接收者接受明文消息,并退出接收者解密过程;
[0066] (7)接收者拒绝明文消息,并退出接收者解密过程。
[0067] 本发明与现有技术相比具有如下优点:
[0068] 第一,由于本发明在用户注册中,设置用户的私钥是用户随机选取的秘密值,密钥生成中心只能得到由用户私钥生成的验证份额和对应的身份信息,不能得到用户的私钥;同时,密钥生成中心根据验证份额和身份信息生成加密公钥发送给用户后,用户可以对加密公钥的正确性进行验证,克服了现有技术中不能抵抗恶意KGC攻击的问题,使得本发明具有抵抗恶意KGC攻击的优点。
[0069] 第二,由于本发明在用户注册过程中,设置用户的公钥由三部分组成:即用户身份的哈希值、验证份额的哈希值以及密钥生成中心生成的加密公钥,任何人都可以根据特定等式验证用户公钥的合法性,克服了现有技术中的用户公钥易被替换,遭到攻击的问题,使得本发明具有通过验证用户的公钥,防止用户公钥被伪造的优点。
[0070] 第三,由于本发明在签密过程中,采用接收者身份信息混合值将所有接收者的身份信息融合在一起作为签密密文的一部分,从而在签密密文中不直接暴露接收者的身份信息列表,克服了现有技术中的接收者身份隐私泄露问题,使得本发明具有可实现接收者身份匿名性的优点。

附图说明

[0071] 附图1为本发明的流程图。

具体实施方式

[0072] 下面结合附图1对本发明做进一步的描述。
[0073] 步骤1,生成系统参数。
[0074] 密钥生成中心KGC根据系统安全参数随机选取一个公开模数N=a*b,其中,a,b为长度相等的大素数,*表示数的相乘操作。随机选取大素数q,q为大于公开模数N的整数。选取一个公开指数u,满足u与φ(N)互素,其中,φ(N)表示欧拉函数,φ(N)=(a-1)*(b-1)。随机选取密码系统主密钥d,满足u*d=1(modφ(N)),其中,mod表示求模操作。选取一个公开整数g,满足g具有最大的乘法阶。明文消息M的长度为l,构造5个密码单向Hash函数,记为:
[0075]
[0076] 密钥生成中心KGC构造并公开密码系统参数,密码系统参数的构造方法为:;同时密钥生成中心KGC秘密保存系统主密钥d。
[0077] 步骤2,用户注册。
[0078] 第一步,用户随机选取一个整数SK作为自己的私钥,计算用户的验证份额v为:v=g-SK(modN),其中,g表示公开整数,SK表示用户的私钥,mod表示求模操作,N表示公开模数。
[0079] 第二步,用户将验证份额v和身份信息ID通过安全信道发送给密钥生成中心KGC。密钥生成中心KGC接收用户的验证份额v和身份信息ID后,计算用户的加密公钥P为:
[0080] P=(v-H0(ID))d(mod N)
[0081] 其中,P表示用户的加密公钥,v表示用户的验证份额,H0表示密码单向哈希函数,ID表示用户的身份信息,d表示密码系统主密钥,mod表示求模操作,N表示公开模数;
[0082] 密钥生成中心KGC将用户的加密公钥P发送给用户。用户接收加密公钥P后,判断加密公钥P是否满足验证条件,若是,则通知密钥生成中心KGC执行本步骤的第三步,否则,向密钥生成中心KGC报错,并退出用户注册过程。
[0083] 加密公钥P的验证条件是指判断如下等式是否成立,若等式成立,则表示满足加密公钥的验证条件,若等式不成立,则表示不满足加密公钥的验证条件:
[0084] Pu+H0(ID)=v(mod N)
[0085] 其中,P表示用户的加密公钥,u表示公开指数,H0表示密码单向哈希函数,ID表示用户的身份信息,v表示用户的验证份额,mod表示求余操作,N表示公开模数。
[0086] 第三步,密钥生成中心KGC计算用户的公钥为(H0(ID),H2(v),P),其中,H0表示密码单向哈希函数,ID表示用户的身份信息,H2表示密码单向哈希函数,v表示用户的验证份额,P表示用户的加密公钥。密钥生成中心KGC对外公布用户的公钥(H0(ID),H2(v),P),用户保存自己的私钥SK。
[0087] 步骤3,发送者签密。
[0088] 第一步,发送者s在已注册的用户中,随机选取n个接收者R1,R2,…,Rn,对每个接收者Ri的公钥进行验证,若满足验证条件,则执行本步骤的第二步,否则,退出发送者签密过程。
[0089] 接收者公钥的验证条件是指判断如下等式是否成立,若等式成立,则表示满足接收者公钥的验证条件,若等式不成立,则表示不满足接收者公钥的验证条件:
[0090] H2(Piu+H0(IDi))=H2(vi)
[0091] 其中,H2表示密码单向哈希函数,Pi表示第i个接收者Ri的加密公钥,u表示公开指数,H0表示密码单向哈希函数,IDi表示第i个接收者Ri的身份信息,vi表示第i个接收者Ri的验证份额。
[0092] 第二步 ,发送者s计算自己 与每一个接收 者Ri之间的 关联信息和每一个接收者的伪身份值wi=H1(H0(IDi),ks,i),其中,i=1,
2,...,n,n表示发送者在已注册用户中随机选取的接收者的数目,Pi表示第i个接收者Ri的加密公钥,u表示公开指数,H0表示密码单向哈希函数,IDi表示第i个接收者Ri的身份信息,SKs表示发送者的私钥,mod表示求模操作,N表示公开模数,H1表示密码单向哈希函数。
[0093] 第三步,发送者s随机选取整数t,计算明文消息M的加密消息密文并构造接收者身份信息混合值: 其
中,f(·)表示接收者身份信息混合值,x表示隐藏身份种子,n表示发送者在已注册用户中随机选取的接收者的数目,Π表示连乘操作,i表示计数游标,wi表示第i个接收者Ri的伪身份值,t表示发送者s随机选取的整数,mod表示求模操作,q表示大素数,a0,a1,…,an-1表示接收者身份信息混合值f(·)的系数。
[0094] 第四步,发送者s计算密文有效性参数h=H4(a0,a1,...,an-1,M,EC),其中,H4表示密码单向哈希函数,a0,a1,…,an-1均表示接收者身份信息混合值f(·)的系数,M表示明文消息,EC表示加密消息密文。
[0095] 第五步,发送者s构造签密密文C=,并将签密密文C进行广播。
[0096] 步骤4,接收者解密。
[0097] 第一步,接收者Ri判断签密密文C的签名是否满足验证条件,若是,则执行本步骤的第二步,否则,执行步骤7。
[0098] 签密密文C的签名的验证条件是指判断如下等式是否成立,若等式成立,则表示满足签密密文签名的验证条件,若等式不成立,则表示不满足签密密文签名的验证条件:
[0099] H2(Psu+H0(IDs))=H2(vs)
[0100] 其中,H2表示密码单向哈希函数,Ps表示发送者s的加密公钥,u表示公开指数,H0表示密码单向哈希函数,IDs表示发送者s的身份信息,vs表示发送者s的验证份额。
[0101] 第二步,按照下式,接收者Ri计算与发送者s之间的关联信息:
[0102]
[0103] 其中,ks,i表示发送者s与第i个接收者Ri之间的关联信息,Ps表示发送者s的加密公钥,u表示公开指数,H0表示密码单向哈希函数,IDs表示发送者s的身份信息,SKi表示第i个接收者Ri的私钥。
[0104] 第三步,按照下式,接收者Ri计算伪身份值wi:
[0105] wi=H1(H0(IDi),ks,i)
[0106] 其中,wi表示第i个接收者Ri的伪身份值,H1、H0表示两个密码单向哈希函数,IDi表示第i个接收者Ri的身份信息,ks,i表示发送者s与第i个接收者Ri之间的关联信息。
[0107] 第四步,按照下式,接收者Ri计算发送者s随机选取的整数t:
[0108] t=f(wi)
[0109] 其中,f(·)表示接收者身份信息混合值,wi表示第i个接收者Ri的伪身份值。
[0110] 第五步,按照下式,接收者Ri计算发送者s发送的明文消息M:
[0111]
[0112] 其中,H3表示密码单向哈希函数,t表示发送者随机选取的整数, 表示逐位异或操作,EC表示加密消息密文。
[0113] 第六步,按照下式,接收者Ri计算权限参数J:
[0114] J=H4(a0,a1,...,an-1,M,EC)
[0115] 其中,H4表示密码单向哈希函数,a0,a1,…,an-1均表示接收者身份信息混合值f(·)的系数,M表示明文消息,EC表示加密消息密文。
[0116] 步骤5,接收者Ri判断权限参数J与密文有效性参数h是否相等。若是,则执行步骤6,否则,执行步骤7。
[0117] 步骤6,接收者接受明文消息,并退出接收者解密过程;
[0118] 步骤7,接收者拒绝明文消息,并退出接收者解密过程。