1.一种IBC域内的用户访问PKI域内的资源的认证密钥协商方法,其操作步骤是:
A、申请访问
IBC域的用户U向IBC域的认证服务器TA发出访问PKI域的资源S的请求,IBC域认证服务器TA对IBC域的用户U的身份合法性进行认证;若认证未通过,则跳转至步骤E;否则,向PKI域认证服务器CA转发IBC域的用户U的访问请求,并且向该用户U发送PKI域认证服务器CA的公钥PKCA;
B、生成访问授权票据并发送
PKI域认证服务器CA对IBC域认证服务器TA进行身份认证,若认证未通过,则跳转至步骤E;否则,PKI域认证服务器CA生成IBC域的用户U访问PKI域内资源S的会话密钥K的认证服务器部分K1,并且加密、生成对应的访问授权票据Ticket1;同时,PKI域认证服务器CA通过IBC域认证服务器TA发送来的访问请求中的IBC域的用户U的身份标识IDU,计算出IBC域的用户U的公钥QU;
PKI域认证服务器CA利用自身私钥SKCA对PKI域内资源S的公钥PKS、会话密钥K的认证服务器部分K1和访问授权票据Ticket1,进行签名处理得到已签名消息Msign,再利用IBC域的用户U的公钥QU对已签名消息Msign进行加密,得到加密消息MA2CA->U,并将其发送给IBC域的用户U;
C、双向身份认证以及协商会话密钥
C1、IBC域的用户U利用自身私钥SU,对PKI域认证服务器CA发来的加密消息MA2CA->U解密,得到PKI域内资源S的公钥PKS、会话密钥K的认证服务器部分K1和访问授权票据Ticket1,再用PKI域认证服务器CA的公钥PKCA验证签名的有效性,若验证未通过,则跳转至步骤E;否则,IBC域的用户U生成会话密钥K的用户部分K2,并将会话密钥K的用户部分K2首位处进行填充,使其与会话密钥K的认证服务器部分K1的位数相同,然后对会话密钥K的认证服务器部分K1和填充后的用户部分K2进行异或处理得到完整的会话密钥K;
C2、IBC域的用户U再利用PKI域内资源S的公钥PKS,对会话密钥K的用户部分K2进行加密,得到用户密文S-k2;同时,利用会话密钥K对PKI域内的资源S的身份标识IDS进行加密,得到身份标识密文S-ID;再将用户密文S-k2和身份标识密文S-ID连同B步中的访问授权票据Ticket1,一起发送给PKI域内的资源S;
C3、PKI域内的资源S用自身私钥SKS对收到的用户密文S-k2解密,得到资源端会话密钥K’的用户部分K2';对访问授权票据Ticket1解密、提取,得到资源端会话密钥K’的认证服务器部分K1';再将资源端会话密钥K’的用户部分K2'首位处进行填充,使其与资源端会话密钥K’的认证服务器部分K1'的位数相同,然后对资源端会话密钥K’的认证服务器部分K1'和填充后的用户部分K2'进行异或处理得到完整的资源端会话密钥K’;再用资源端会话密钥K’解密收到的身份标识密文S-ID,从而得到PKI域内资源S的提取身份标识IDS’,将提取身份标识IDS’和PKI域的资源S的身份标识IDS进行验证,若二者不一致,则跳转至步骤E;否则,PKI域内的资源S用资源端会话密钥K’对其身份标识IDS进行加密,得到PKI域内的资源S的资源端身份标识密文MA3S->U,并将其发送给IBC域的用户U;
C4、IBC域的用户U用会话密钥K对收到的资源端身份标识密文MA3S->U进行解密,得到PKI域内的资源S的用户端身份标识IDS”,并验证PKI域内的资源S的用户端身份标识IDS”的有效性,若验证未通过,则跳转至步骤E;否则IBC域的用户U与PKI域的资源S的认证密钥协商完成,IBC域的用户U利用会话密钥K对PKI域的资源S进行安全访问;
D、重认证
当会话密钥K的认证服务器部分K1超出其生命周期时,若IBC域的用户U不再访问PKI域的资源S,则跳转至步骤E;若IBC域的用户U仍需访问PKI域的资源S,则跳转至步骤A;
当会话密钥K的用户部分K2超出其生命周期,但会话密钥K的认证服务器部分K1仍在其生命周期中,若IBC域的用户U不再访问PKI域的资源S时,则跳转至步骤E;若IBC域的用户U仍需访问PKI域的资源S,则跳转至步骤A或者进行快速重认证;
所述快速重认证的具体做法是:IBC域内的用户U生成重认证会话密钥K″的用户部分K2″,并将重认证会话密钥K″的用户部分K2″首位处进行填充,使其与重认证会话密钥K″的认证服务器部分K1的位数相同,然后对重认证会话密钥K″的认证服务器部分K1和填充后的用户部分K2″进行异或处理得到完整的重认证会话密钥K″;然后,跳转至C2步骤;
E、中止会话。
2.根据权利要求1所述的一种IBC域内的用户访问PKI域内的资源的认证密钥协商方法,其特征在于,所述的A步骤中IBC域的用户U向IBC域的认证服务器TA发出访问PKI域的资源S的请求的具体做法是:IBC域的用户U选取随机整数r1,r1∈Zq;式中,Zq表示小于q的所有整数组成的集合,q为超过32位二进制位的素数;然后将随机整数r1与系统的公钥Ppub进行基于椭圆曲线的点乘运算得到公钥点参数R3,再将公钥点参数R3与IBC域的认证服务器TA的公钥QTA作双线性对映射得到映射点参数R1,R1=e(R3,QTA),其中e()表示双线性对映射;同时,随机整数r1再与椭圆曲线的生成元P,进行基于椭圆曲线的点乘运算得到生成元点参数R2;对映射点参数R1做哈希运算得到映射点参数的哈希值,对得到的映射点参数的哈希值H(R1)求逆运算得到映射点参数的哈希值逆元H(R1)-1,再将映射点参数的哈希值逆元H(R1)-1与IBC域的用户U的私钥SU做点乘运算得到用户的临时身份TidU;将IBC域的用户U的身份标识IDU,PKI域的资源S的身份标识IDS和消息发出时的时间戳T1组成身份信息明文段m1,m1={IDU,IDS,T1},再利用IBC域的认证服务器TA的公钥QTA对身份信息明文段m1进行基于身份算法的加密操作,得到身份信息密文段c1,c1=IBE{IDU,IDS,T1}QTA,其中IBE{…}QTA表示利用IBC域的认证服务器TA的公钥QTA进行基于身份算法的加密操作;
随后,IBC域的用户U将用户的临时身份TidU、生成元点参数R2和身份信息密文段c1组成请求消息MA1,MA1=TidU,R2,c1;并将其发送给IBC域的认证服务器TA。
3.根据权利要求1所述的一种IBC域内的用户访问PKI域内的资源的认证密钥协商方法,其特征在于,所述的A步骤中IBC域认证服务器TA对发出请求的IBC域的用户U的身份合法性进行认证的具体做法是:IBC域认证服务器TA将收到的请求消息MA1中的生成元点参数R2和IBC域的认证服务器TA的私钥STA做双线性对映射重新算出映射点参数R1,R1=e(R2,STA);再对重新算出的映射点参数R1做哈希运算得到映射点参数的哈希值H(R1),再与椭圆曲线的生成元P做基于椭圆曲线的点乘运算,得到哈希值生成元点参数R4,再将其与收到的IBC域的用户U的临时身份TidU做双线性对映射,得出IBC域的用户U在IBC域的认证服务器TA的检索号IndU,IndU=e(TidU,R4);通过所述的检索号IndU得到IBC域的用户U存储在IBC域的认证服务器TA端的身份IDU';再利用IBC域的认证服务器TA的私钥STA对请求消息MA1中的身份信息密文段c1进行解密操作,得到身份信息明文段m1中的IBC域用户的身份IDU;若时间戳T1新鲜,并且IBC域的用户U存储在IBC域的认证服务器TA的身份IDU'和身份信息明文段m1中的IBC域的用户U的身份IDU一致,则身份合法性认证通过;否则,认证不通过。
4.根据权利要求1所述的一种IBC域内的用户访问PKI域内的资源的认证密钥协商方法,其特征在于,所述的A步骤中IBC域的认证服务器TA向IBC域的用户U发送PKI域认证服务器CA的公钥PKCA的具体做法是:将PKI域认证服务器CA的公钥PKCA、身份标识IDCA和发送消息时的时间戳T3一起进行签名、加密操作后组成公钥密文c2,再将公钥密文c2发送给PKI域认证服务器CA。
5.根据权利要求1所述的一种IBC域内的用户访问PKI域内的资源的认证密钥协商方法,其特征在于:所述的B步骤中的会话密钥K的认证服务器部分K1的位数为128位;所述的C1步骤中,IBC域的用户U生成会话密钥K的用户部分K2的长度为80位。