Disclosure of Invention
The invention aims to provide an authentication key agreement method for a user in an IBC domain to access resources in a PKI domain, which can effectively realize the authentication key agreement for the user in the IBC domain to access the resources in the PKI domain, and has the advantages of less resource consumption and high safety.
The technical scheme adopted by the invention for realizing the aim is that the authentication key negotiation method for the user in the IBC domain to access the resources in the PKI domain comprises the following operation steps:
A. application access
A user U of the IBC domain sends a request for accessing a resource S of the PKI domain to an authentication server TA of the IBC domain, and the identity legitimacy of the user U of the IBC domain is authenticated by the IBC domain authentication server TA; if the authentication is not passed, jumping to the step E; otherwise, forwarding the access request of the user U of the IBC domain to a PKI domain authentication server CA, and sending the public key PK of the PKI domain authentication server CA to the user UCA;
B. Generating and sending access authorization ticket
The PKI domain authentication server CA performs identity authentication on the IBC domain authentication server TA, and if the authentication fails, the step E is skipped; otherwise, the PKI domain authentication server CA generates an authentication server part K of a session key K for accessing the resources S in the PKI domain by the user U of the IBC domain1And encrypts and generates a corresponding access authorization Ticket1(ii) a Meanwhile, the PKI domain authentication server CA sends the identity ID of the user U of the IBC domain in the access request through the IBC domain authentication server TAUCalculating user U of IBC domainPublic key Q ofU;
PKI domain authentication server CA utilizes its own private key SKCAPublic key PK for resources S in PKI domainSAuthentication server part K of a session key K1And access authorization Ticket1Performing signature processing to obtain a signed message MsignAnd then the public key Q of the user U of the IBC domain is utilizedUFor signed message MsignEncrypting to obtain an encrypted message MA2CA->UAnd sending the user U to the IBC domain;
C. bidirectional identity authentication and negotiation session key
C1, user U of IBC domain utilizes self private key SUFor the encrypted message M sent by the PKI domain authentication server CAA2CA->UDecrypting to obtain the public key PK of the resource S in the PKI domainSAuthentication server part K of a session key K1And access authorization Ticket1Reuse the public key PK of the PKI domain authentication server CACAVerifying the validity of the signature, and if the verification fails, jumping to the step E; otherwise, the user U of the IBC domain generates the user part K of the session key K2And a user part K of the session key K2Padding the first place to make it and the authentication server part K of the session key K1Is the same, and then the authentication server part K for the session key K1And a filled user part K2Carrying out XOR processing to obtain a complete session key K;
c2, user U of IBC domain reusing public key PK of resource S in PKI domainSFor the user part K of the session key K2Encrypting to obtain user ciphertext S-k2(ii) a At the same time, the ID of the resource S in the PKI domain is identified by the session key KSEncrypting to obtain an identity identification ciphertext S-ID; then the user cipher text S-k is processed2And identity identification ciphertext S-ID together with access authorization Ticket Ticket in step B1Together sent to the resource S in the PKI domain;
c3, resource S in PKI domain uses its own private key SKSFor received user cipher text S-k2Decrypting to obtain the user part K of the resource end session key K2' of a compound of formula I; ticket for authorizing access1Decrypting and extracting to obtain the authentication server part K of the resource terminal session key K1' of a compound of formula I; then the user part K of the resource end session key K' is divided into two parts2The first place is filled with the authentication server part K of the resource side session key K1'the number of bits is the same, and then the authentication server part K of the resource side session key K' is applied1' and the populated user part K2Performing XOR processing to obtain a complete resource end session key K'; then the resource-end session key K ' is used for decrypting the received ID ciphertext S-ID so as to obtain the extracted ID IDS ' of the resource S in the PKI domain, and the extracted ID IDS ' and the ID of the resource S in the PKI domain are obtainedSB, verifying, and if the two are not consistent, skipping to the step E; otherwise, the resource S in the PKI domain uses the resource end session key K' to identify the IDSEncrypting to obtain a resource end identity identification ciphertext M of the resource S in the PKI domainA3S->UAnd sending the user U to the IBC domain;
c4, IBC domain user U uses session key K to identify cipher text M for received resource end identityA3S->UDecrypting to obtain a user side identity IDS 'of the resource S in the PKI domain, verifying the validity of the user side identity IDS' of the resource S in the PKI domain, and jumping to the step E if the verification fails; otherwise, the user U of the IBC domain completes the authentication key negotiation with the resource S of the PKI domain, and the user U of the IBC domain utilizes the session key K to safely access the resource S of the PKI domain;
D. re-authentication
Authentication server part K when session key K1When the life cycle of the user U exceeds the life cycle of the user U, if the user U of the IBC domain does not access the resource S of the PKI domain any more, jumping to the step E; if the user U of the IBC domain still needs to access the resource S of the PKI domain, jumping to the step A;
when the user part K of the session key K2Authentication server part K beyond its life cycle, but for the session key K1If the user U of the IBC domain does not access the resource S of the PKI domain any more while still in the life cycle, jumping to the step E; if the user U of the IBC domain still needs to access the resources of the PKI domainThe source S jumps to the step A or carries out quick re-authentication;
E. the session is aborted.
Compared with the prior art, the invention has the beneficial effects that:
the invention provides a cross-heterogeneous domain authentication key negotiation method when a user in an IBC domain accesses resources in a PKI domain, so that the user in the IBC domain can safely access the resources in the PKI domain.
And secondly, the IBC domain authentication server sends the public key of the PKI domain authentication server to the user in the domain, so that the validity of the message sent by the subsequent PKI domain authentication server can be ensured to be successfully verified, and meanwhile, the user does not need to store the certificate of the PKI domain authentication server, so that the consumption of system resources is reduced.
And thirdly, the session key is obtained by performing exclusive-or processing on the authentication server part and the user part of the session key, so that the security is greatly improved and the increased resource consumption is less compared with the session key generated by the authentication server.
Further, the specific way in which the user U of the IBC domain in step a of the present invention sends a request for accessing the resource S of the PKI domain to the authentication server TA of the IBC domain is:
user U of IBC domain selects random integer r1,r1∈Zq(ii) a In the formula, ZqRepresents a set of all integers smaller than q, q being a prime number exceeding 32 bits of binary bits; then random integer r1With the public key P of the systempubCarrying out point multiplication operation based on elliptic curve to obtain public key point parameter R3Then the public key point parameter R is used3Public key Q of authentication server TA with IBC domainTAMapping bilinear pairings to obtain mapping point parameters R1,R1=e(R3,QTA) Where e () represents a bilinear pairwise map; at the same time, a random integer r1Then, the elliptic curve generating element P is subjected to point multiplication operation based on the elliptic curve to obtain a generating element point parameter R2(ii) a Mapping point parameter R1Performing hash operation to obtain hash value H (R) of mapping point parameter1) And obtaining mapping by inverting the obtained hash valueHash value inverse H (R) of point parameter1)-1Then, the hash value of the mapping point parameter is inverted to H (R)1)-1Private key S of user U with IBC domainUObtaining the temporary identity Tid of the user by performing dot product operationU(ii) a Identify ID of user U of IBC domainUIdentity ID of a resource S of a PKI domainSAnd timestamp T at the time of message issuance1Form identity information plaintext segment m1,m1={IDU,IDS,T1And then, a public key Q of an authentication server TA of the IBC domain is utilizedTAFor identity information plaintext segment m1Carrying out encryption operation based on identity algorithm to obtain identity information ciphertext segment c1,c1=IBE{IDU,IDS,T1}QTAWherein IBE { … } QTAPublic key Q representing an authentication server TA utilizing IBC domainsTACarrying out encryption operation based on an identity algorithm;
subsequently, the user U of the IBC domain assigns the temporary identity Tid of the userUGenerating a meta-point parameter R2And identity information ciphertext section c1Composing request messages MA1,MA1=TidU,R2,c1(ii) a And sends it to the authentication server TA of the IBC domain.
Therefore, the temporary identity of the user is constructed by using the random number, the system public key of the IBC domain and the generating element of the elliptic curve through point multiplication, bilinear pairwise mapping and Hash, so that the temporary identity is difficult to crack and forge, the temporary identity can be transmitted in a plaintext form, the communication traffic and the calculated amount are reduced, and the safety of information transmission is ensured; and the temporary identity realizes the anonymity of the user identity, and prevents a malicious entity from tracking the user.
Further, the specific way in which the IBC domain authentication server TA in step a of the present invention authenticates the identity validity of the user U in the IBC domain is:
IBC domain authentication server TA will receive the request message MA1Generating meta-point parameter R in (1)2And private key S of authentication server TA of IBC domainTADoing bilinear mapping to recalculate mapping point parameter R1,R1=e(R2,STA) (ii) a Then the recalculated mapping point parameter R is repeated1Performing hash operation to obtain hash value H (R) of mapping point parameter1) Then, the point multiplication operation based on the elliptic curve is carried out with the generating element P of the elliptic curve to obtain a hash value generating element point parameter R4Then, the user U temporary identity Tid of the IBC domain is receivedUCarrying out bilinear pairwise mapping to obtain a retrieval number Ind of a user U of the IBC domain in an authentication server TA of the IBC domainU,IndU=e(TidU,R4) (ii) a By said search number IndUObtaining the identity ID of the user U of the IBC domain stored in the TA end of the authentication server of the IBC domainU'; private key S of authentication server TA of IBC domain is reusedTAFor request message MA1Identity information encrypted segment c in1Carrying out decryption operation to obtain the identity information plaintext segment m1Identity ID of IBC domain user in (1)U(ii) a If the time stamp T1Fresh and user U of IBC Domain stores identity ID of authentication Server TA of IBC DomainU' and identity information plaintext segment m1Identity ID of user U of IBC domain in (1)UIf the identity is consistent with the identity, the identity validity authentication is passed; otherwise, the authentication is not passed;
therefore, when the IBC domain authentication server verifies the identity of the user, the index value of the user in the IBC domain authentication server is obtained by performing point multiplication, bilinear pairwise mapping and Hash operation on the temporary identity, the generated element point parameter, the private key of the IBC domain authentication server and the generated element of the elliptic curve, and the identity validity of the user is verified by using a traditional identity-based signature algorithm, so that the calculated amount is greatly reduced, and the safety is not influenced.
Further, in step A of the present invention, the authentication server TA of the IBC domain sends the public key PK of the PKI domain authentication server CA to the user U of the IBC domainCAThe method comprises the following steps:
public key PK of PKI domain authentication server CACAID, IDCAAnd a time stamp T at the time of sending the message3Signing and encrypting together to form a public key ciphertext c2Then, the public key cryptograph c is used2Sent to the PKI domain authentication server CA.
Therefore, the IBC domain authentication server sends the public key ciphertext containing the public key of the PKI domain authentication server to the user in the domain, so that the validity of the message sent by the subsequent PKI domain authentication server can be ensured to be successfully verified, meanwhile, the user does not need to store the certificate of the PKI domain authentication server, and the consumption of system resources is reduced.
Further, the authentication server part K of the session key K in step B of the invention1The number of bits of (2) is 128 bits; in the step C1, the user U in the IBC domain generates the user part K of the session key K2Is 80 bits in length.
Thus, the session key is obtained by exclusive-or of the 80-bit user part padding and the 128-bit authentication server part, and compared with the session key obtained by only the 128-bit authentication server part, the life cycle of the key is shorter, the security of the session key is ensured, and the increased traffic is small.
Further, the specific method of the fast re-authentication in step D of the present invention is:
user U in IBC domain generates user part K of re-authentication session key K ″2And will re-authenticate the user part K of the session key K ″2"fill-in first place with authentication server part K re-authenticating session key K1Is the same, and then re-authenticates the authentication server portion K of the session key K ″1And a filled user part K2Performing XOR processing to obtain a complete re-authentication session key K'; then, go to step C2.
Thus, when the user portion of the session key exceeds its lifecycle, but the authentication server portion of the session key is still in its lifecycle; if the user of the IBC domain still needs to access the resources of the PKI domain, the method can carry out quick re-authentication without carrying out operations of applying for access and accessing the generation and distribution of the authorization bill again, and greatly reduces the interaction times, communication traffic and calculation amount of the method on the premise of ensuring the access safety.
The present invention will be described in further detail with reference to specific embodiments.
Examples
An authentication key negotiation method for a user in an IBC domain to access resources in a PKI domain comprises the following operation steps:
A. application access
A user U of the IBC domain sends a request for accessing a resource S of the PKI domain to an authentication server TA of the IBC domain, and the identity legitimacy of the user U of the IBC domain is authenticated by the IBC domain authentication server TA; if the authentication is not passed, jumping to the step E; otherwise, forwarding the access request of the user U of the IBC domain to a PKI domain authentication server CA, and sending the public key PK of the PKI domain authentication server CA to the user UCA;
B. Generating and sending access authorization ticket
The PKI domain authentication server CA performs identity authentication on the IBC domain authentication server TA, and if the authentication fails, the step E is skipped; otherwise, the PKI domain authentication server CA generates an authentication server part K of a session key K for accessing the resources S in the PKI domain by the user U of the IBC domain1And encrypts and generates a corresponding access authorization Ticket1(ii) a Meanwhile, the PKI domain authentication server CA sends the identity ID of the user U of the IBC domain in the access request through the IBC domain authentication server TAUCalculating the public key Q of the user U in the IBC domainU;
PKI domain authentication server CA utilizes its own private key SKCAPublic key PK for resources S in PKI domainSAuthentication server part K of a session key K1And access authorization Ticket1Performing signature processing to obtain a signed message MsignAnd then the public key Q of the user U of the IBC domain is utilizedUFor signed message MsignEncrypting to obtain an encrypted message MA2CA->UAnd sending the user U to the IBC domain;
C. bidirectional identity authentication and negotiation session key
C1, user U of IBC domain utilizes self private key SUFor the encrypted message M sent by the PKI domain authentication server CAA2CA->UDecrypting to obtain the public key PK of the resource S in the PKI domainSAuthentication server part K of a session key K1And access authorization Ticket1Reuse the public key PK of the PKI domain authentication server CACAVerifying the validity of the signature, and if the verification fails, jumping to the step E; otherwise, the user U of the IBC domain generates the user part K of the session key K2And a user part K of the session key K2Padding the first place to make it and the authentication server part K of the session key K1Is the same, and then the authentication server part K for the session key K1And a filled user part K2Carrying out XOR processing to obtain a complete session key K;
c2, user U of IBC domain reusing public key PK of resource S in PKI domainSFor the user part K of the session key K2Encrypting to obtain user ciphertext S-k2(ii) a At the same time, the ID of the resource S in the PKI domain is identified by the session key KSEncrypting to obtain an identity identification ciphertext S-ID; then the user cipher text S-k is processed2And identity identification ciphertext S-ID together with access authorization Ticket Ticket in step B1Together sent to the resource S in the PKI domain;
c3, resource S in PKI domain uses its own private key SKSFor received user cipher text S-k2Decrypting to obtain the user part K of the resource end session key K2' of a compound of formula I; ticket for authorizing access1Decrypting and extracting to obtain the authentication server part K of the resource terminal session key K1' of a compound of formula I; then the user part K of the resource end session key K' is divided into two parts2The first place is filled with the authentication server part K of the resource side session key K1'the number of bits is the same, and then the authentication server part K of the resource side session key K' is applied1' and the populated user part K2Performing XOR processing to obtain a complete resource end session key K'; then the resource-end session key K ' is used for decrypting the received ID ciphertext S-ID so as to obtain the extracted ID IDS ' of the resource S in the PKI domain, and the extracted ID IDS ' and the ID of the resource S in the PKI domain are obtainedSB, verifying, and if the two are not consistent, skipping to the step E; otherwise, the resource S in the PKI domain uses the resource end session key K' to identify the IDSEncrypting to obtain a resource end identity identification ciphertext M of the resource S in the PKI domainA3S->UAnd sending the user U to the IBC domain;
c4, IBC domain user U uses session key K to identify cipher text M for received resource end identityA3S->UDecrypting to obtain a user side identity IDS 'of the resource S in the PKI domain, verifying the validity of the user side identity IDS' of the resource S in the PKI domain, and jumping to the step E if the verification fails; otherwise, the user U of the IBC domain completes the authentication key negotiation with the resource S of the PKI domain, and the user U of the IBC domain utilizes the session key K to safely access the resource S of the PKI domain;
D. re-authentication
Authentication server part K when session key K1When the life cycle of the user U exceeds the life cycle of the user U, if the user U of the IBC domain does not access the resource S of the PKI domain any more, jumping to the step E; if the user U of the IBC domain still needs to access the resource S of the PKI domain, jumping to the step A;
when the user part K of the session key K2Authentication server part K beyond its life cycle, but for the session key K1While still in its lifecycle; if the user U of the IBC domain does not access the resource S of the PKI domain any more, jumping to the step E; if the user U of the IBC domain still needs to access the resource S of the PKI domain, skipping to the step A or carrying out quick re-authentication;
E. the session is aborted.
The specific way in which the user U of the IBC domain sends the request for accessing the resource S of the PKI domain to the authentication server TA of the IBC domain described in step a of this example is:
user U of IBC domain selects random integer r1,r1∈Zq(ii) a In the formula, ZqRepresents a set of all integers smaller than q, q being a prime number exceeding 32 bits of binary bits; then random integer r1With the public key P of the systempubCarrying out point multiplication operation based on elliptic curve to obtain public key point parameter R3Then the public key point parameter R is used3Public key Q of authentication server TA with IBC domainTAMapping bilinear pairings to obtain mapping point parameters R1,R1=e(R3,QTA) Where e () represents a bilinear pairwise map; at the same time, a random integer r1Then, the elliptic curve generating element P is subjected to point multiplication operation based on the elliptic curve to obtain a generating element point parameter R2(ii) a Mapping point parameter R1Performing hash operation to obtain hash value H (R) of mapping point parameter1) And obtaining the hash value inverse element H (R) of the mapping point parameter by performing inverse operation on the obtained hash value1)-1Then, the hash value of the mapping point parameter is inverted to H (R)1)-1Private key S of user U with IBC domainUObtaining the temporary identity Tid of the user by performing dot product operationU(ii) a Identify ID of user U of IBC domainUIdentity ID of a resource S of a PKI domainSAnd timestamp T at the time of message issuance1Form identity information plaintext segment m1,m1={IDU,IDS,T1And then, a public key Q of an authentication server TA of the IBC domain is utilizedTAFor identity information plaintext segment m1Carrying out encryption operation based on identity algorithm to obtain identity information ciphertext segment c1,c1=IBE{IDU,IDS,T1}QTAWherein IBE { … } QTAPublic key Q representing an authentication server TA utilizing IBC domainsTACarrying out encryption operation based on an identity algorithm;
subsequently, the user U of the IBC domain assigns the temporary identity Tid of the userUGenerating a meta-point parameter R2And identity information ciphertext section c1Composing request messages MA1,MA1=TidU,R2,c1(ii) a And sends it to the authentication server TA of IBC domain;
the specific way for the IBC domain authentication server TA to authenticate the identity validity of the user U of the requesting IBC domain in step a of this example is:
IBC domain authentication server TA will receive the request message MA1Generating meta-point parameter R in (1)2And private key S of authentication server TA of IBC domainTADoing bilinear mapping to recalculate mapping point parameter R1,R1=e(R2,STA) (ii) a Then the recalculated mapping point parameter R is repeated1Cooking wineThe hash value H (R) of the mapping point parameter is obtained by the High operation1) Then, the point multiplication operation based on the elliptic curve is carried out with the generating element P of the elliptic curve to obtain a hash value generating element point parameter R4Then, the user U temporary identity Tid of the IBC domain is receivedUCarrying out bilinear pairwise mapping to obtain a retrieval number Ind of a user U of the IBC domain in an authentication server TA of the IBC domainU,IndU=e(TidU,R4) (ii) a By said search number IndUObtaining the identity ID of the user U of the IBC domain stored in the TA end of the authentication server of the IBC domainUB, carrying out the following steps of; private key S of authentication server TA of IBC domain is reusedTAFor request message MA1Identity information encrypted segment c in1Carrying out decryption operation to obtain the identity information plaintext segment m1Identity ID of IBC domain user in (1)U(ii) a If the time stamp T1Fresh, and user U of IBC domain stores identity ID 'of authentication server TA of IBC domain'UAnd identity information plaintext segment m1Identity ID of user U of IBC domain in (1)UIf the identity is consistent with the identity, the identity validity authentication is passed; otherwise, the authentication is not passed;
in step A, the authentication server TA of the IBC domain sends the public key PK of the PKI domain authentication server CA to the user U of the IBC domainCAThe method comprises the following steps:
public key PK of PKI domain authentication server CACAID, IDCAAnd a time stamp T at the time of sending the message3Signing and encrypting together to form a public key ciphertext c2Then, the public key cryptograph c is used2Sent to the PKI domain authentication server CA.
Authentication server part K of session key K in step B of the present example1The number of bits of (2) is 128 bits; in step C1 of this example, user U of the IBC domain generates user part K of session key K2Is 80 bits in length.
The specific way of the fast re-authentication in step D of this example is:
user U in IBC domain generates user part K of re-authentication session key K ″2And will re-authenticate the user part K of the session key K ″2Padding to "head" to have it in re-authentication sessionAuthentication server part K of a secret key K ″1Is the same, and then re-authenticates the authentication server portion K of the session key K ″1And a filled user part K2Performing XOR processing to obtain a complete re-authentication session key K'; then, go to step C2.