[0005] 本发明的目的是提供一种IBC域内的用户访问PKI域内的资源的认证密钥协商方法,该方法能有效实现IBC域内的用户访问PKI域内的资源的认证密钥协商,其消耗资源少,安全性高。
[0006] 本发明实现其发明目的所采用的技术方案是,一种IBC域内的用户访问PKI域内的资源的认证密钥协商方法,其操作步骤是:
[0007] A、申请访问
[0008] IBC域的用户U向IBC域的认证服务器TA发出访问PKI域的资源S的请求,IBC域认证服务器TA对IBC域的用户U的身份合法性进行认证;若认证未通过,则跳转至步骤E;否则,向PKI域认证服务器CA转发IBC域的用户U的访问请求,并且向该用户U发送PKI域认证服务器CA的公钥PKCA;
[0009] B、生成访问授权票据并发送
[0010] PKI域认证服务器CA对IBC域认证服务器TA进行身份认证,若认证未通过,则跳转至步骤E;否则,PKI域认证服务器CA生成IBC域的用户U访问PKI域内资源S的会话密钥K的认证服务器部分K1,并且加密、生成对应的访问授权票据Ticket1;同时,PKI域认证服务器CA通过IBC域认证服务器TA发送来的访问请求中的IBC域的用户U的身份标识IDU,计算出IBC域的用户U的公钥QU;
[0011] PKI域认证服务器CA利用自身私钥SKCA对PKI域内资源S的公钥PKS、会话密钥K的认证服务器部分K1和访问授权票据Ticket1,进行签名处理得到已签名消息Msign,再利用IBC域的用户U的公钥QU对已签名消息Msign进行加密,得到加密消息MA2CA->U,并将其发送给IBC域的用户U;
[0012] C、双向身份认证以及协商会话密钥
[0013] 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;
[0014] C2、IBC域的用户U再利用PKI域内资源S的公钥PKS,对会话密钥K的用户部分K2进行加密,得到用户密文S-k2;同时,利用会话密钥K对PKI域内的资源S的身份标识IDS进行加密,得到身份标识密文S-ID;再将用户密文S-k2和身份标识密文S-ID连同B步中的访问授权票据Ticket1,一起发送给PKI域内的资源S;
[0015] 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;
[0016] C4、IBC域的用户U用会话密钥K对收到的资源端身份标识密文MA3S->U进行解密,得到PKI域内的资源S的用户端身份标识IDS”,并验证PKI域内的资源S的用户端身份标识IDS”的有效性,若验证未通过,则跳转至步骤E;否则IBC域的用户U与PKI域的资源S的认证密钥协商完成,IBC域的用户U利用会话密钥K对PKI域的资源S进行安全访问;
[0017] D、重认证
[0018] 当会话密钥K的认证服务器部分K1超出其生命周期时,若IBC域的用户U不再访问PKI域的资源S,则跳转至步骤E;若IBC域的用户U仍需访问PKI域的资源S,则跳转至步骤A;
[0019] 当会话密钥K的用户部分K2超出其生命周期,但会话密钥K的认证服务器部分K1仍在其生命周期中时,若IBC域的用户U不再访问PKI域的资源S,则跳转至步骤E;若IBC域的用户U仍需访问PKI域的资源S,则跳转至步骤A或者进行快速重认证;
[0020] E、中止会话。
[0021] 与现有技术相比,本发明的有益效果是:
[0022] 一、本发明给出了IBC域内的用户访问PKI域内的资源时的跨异构域认证密钥协商方法,使得IBC域内的用户能够安全的访问PKI域内的资源。
[0023] 二、IBC域认证服务器向域内的用户发送PKI域认证服务器的公钥,可以保证能够顺利验证后续PKI域认证服务器发送来的消息的有效性,同时用户无需存储PKI域认证服务器的证书,减少了系统资源的消耗。
[0024] 三、会话密钥是由会话密钥的认证服务器部分和用户部分进行异或处理得到,较之单纯由认证服务器生成的会话密钥而言,其安全性得到大幅提高,并且增加的资源消耗少。
[0025] 进一步,本发明的A步骤中所述的IBC域的用户U向IBC域的认证服务器TA发出访问PKI域的资源S的请求的具体做法是:
[0026] 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),对得到的哈希值求逆运算得到映射点参-1 -1数的哈希值逆元H(R1) ,再将映射点参数的哈希值逆元H(R1) 与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进行基于身份算法的加密操作;
[0027] 随后,IBC域的用户U将用户的临时身份TidU、生成元点参数R2和身份信息密文段c1组成请求消息MA1,MA1=TidU,R2,c1;并将其发送给IBC域的认证服务器TA。
[0028] 这样,利用随机数与IBC域的系统公钥、椭圆曲线的生成元,通过点乘,双线性对映射和哈希构建出用户的临时身份,难以破解和伪造,可以采用明文的形式传输,既减少了通信量与计算量,也保证了信息传输的安全性;并且临时身份实现了用户身份的匿名性,防止了恶意实体对用户进行追踪。
[0029] 进一步,本发明的A步骤中所述的IBC域认证服务器TA对IBC域的用户U的身份合法性进行认证的具体做法是:
[0030] 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一致,则身份合法性认证通过;否则,认证不通过;
[0031] 这样,IBC域认证服务器验证用户身份时,通过对临时身份、生成元点参数、IBC域认证服务器私钥和椭圆曲线的生成元,做点乘,双线性对映射和哈希运算,得到用户在IBC域认证服务器的索引值,与传统的利用基于身份的签名算法对用户的身份合法性进行验证,大大减少了计算量,并且不会影响安全性。
[0032] 进一步,本发明的A步骤中IBC域的认证服务器TA向IBC域的用户U发送PKI域认证服务器CA的公钥PKCA作法是:
[0033] 将PKI域认证服务器CA的公钥PKCA、身份标识IDCA和发送消息时的时间戳T3一起进行签名、加密操作后组成公钥密文c2,再将公钥密文c2发送给PKI域认证服务器CA。
[0034] 这样,IBC域认证服务器向域内的用户发送包含PKI域认证服务器公钥的公钥密文,可以保证能够顺利验证后续PKI域认证服务器发送来的消息的有效性,同时用户无需存储PKI域认证服务器的证书,减少了系统资源的消耗。
[0035] 进一步,本发明的B步骤中的会话密钥K的认证服务器部分K1的位数为128位;所述的C1步骤中,IBC域的用户U生成会话密钥K的用户部分K2的长度为80位。
[0036] 这样,采用80位的用户部分进行填充与128位的认证服务器部分进行异或得到会话密钥,较之仅由128位的认证服务器部分得到的会话密钥,密钥的生命周期较短,会话密钥的安全得到保证,同时,增加的通信量很少。
[0037] 进一步,本发明的D步骤中的快速重认证的具体做法是:
[0038] IBC域内的用户U生成重认证会话密钥K″的用户部分K2″,并将重认证会话密钥K″的用户部分K2″首位处进行填充,使其与重认证会话密钥K″的认证服务器部分K1的位数相同,然后对重认证会话密钥K″的认证服务器部分K1和填充后的用户部分K2″进行异或处理得到完整的重认证会话密钥K″;然后,跳转至C2步骤。
[0039] 这样,当会话密钥的用户部分超出其生命周期,但会话密钥的认证服务器部分仍在其生命周期中时;若IBC域的用户仍需访问PKI域的资源,可进行快速重认证,而无需重新进行申请访问和访问授权票据生成和分发的操作,在保证访问安全的前提下,大大减少了方法的交互次数,通信量和计算量。
[0040] 下面结合具体实施方式对本发明作进一步的详细说明。