Authentification method for a communication network
09820147 · 2017-11-14
Assignee
Inventors
Cpc classification
H04W12/04
ELECTRICITY
H04W4/90
ELECTRICITY
H04L9/0844
ELECTRICITY
H04L9/0827
ELECTRICITY
International classification
H04L9/08
ELECTRICITY
H04L9/32
ELECTRICITY
H04W12/04
ELECTRICITY
Abstract
An authentication method for a communication network includes a registration step, an inquiry step, an answering step and a verification step. The authentication method further includes an emergency authentication mode if a response code is not received by a requesting end within a predetermined period of time or if a first confirmation code is verified to be incorrect by a requesting end. In another embodiment, an authentication method for a communication network includes a registration step, a first inquiry step, a second inquiry step, a first answering step, a second answering step and a verification step. The authentication method in the other embodiment also includes an emergency authentication mode if a second response code is not received by the requesting end within a predetermined period of time or if a third tested code is verified to be incorrect.
Claims
1. An authentication method for a low-computational-capacity device in a communication network, the method comprising: a registration step (S1) including the operations of: transmitting a registration request to a receiving end (C) by a requesting end (A); and transmitting an identification code (SID.sub.A), a request key (K.sub.A), a preliminary registration code (Ts.sub.a), a set of pseudo identification codes (PID) and a set of emergency keys (K.sub.em) to the requesting end (A) by the receiving end (C), wherein the set of pseudo identification codes (PID) comprises a plurality of pseudo identification codes (pid.sub.j), wherein the set of emergency keys (K.sub.em) comprises a plurality of emergency keys (K.sub.em), and wherein one of the plurality of emergency keys (K.sub.em) of the set of emergency keys (K.sub.em) corresponds to one of the plurality of pseudo identification codes (pid.sub.j) of the set of pseudo identification codes (PID); an inquiry step (S2) performed by the requesting end (A), the inquiry step (S2) including the operations of: generating a first arbitrary code (N.sub.a1) having a predetermined value; performing an XOR (exclusive or) operation between the first arbitrary code (N.sub.a1) and the request key (K.sub.A) to generate a calculated code (N.sub.X); setting a value of a hash function of a combined data of the identification code (SID.sub.A), the request key (K.sub.A), the first arbitrary code (N.sub.a1) and the preliminary registration code (Ts.sub.a) as a verification code (AID.sub.A); combining the verification code (AID.sub.A), the calculated code (N.sub.X) and the preliminary registration code (Ts.sub.a) as a request code (R.sub.1); and transmitting the request code (R.sub.1) to the receiving end (C); an answering step (S3) performed by the receiving end (C) if the preliminary registration code (Ts.sub.a) is verified to be correct by the receiving end (C), the answering step (S3) including the operations of: performing an XOR operation between the request key (K.sub.A) and the calculated code (N.sub.X) to generate a second arbitrary code (N.sub.a2) having the predetermined value; verifying the verification code (AID.sub.A) with a determined value of the hash function of a combined data of the identification code (SID.sub.A), the request key (K.sub.A), the second arbitrary code (N.sub.a2) and the preliminary registration code (Ts.sub.a); generating a first authentication key (CK.sub.1) after the verification code (AID.sub.A) is verified to be correct; performing an XOR operation between the first authentication key (CK.sub.1) and a value of the hash function of a combined data of the request key (K.sub.A), the identification code (SID.sub.A) and the preliminary registration code (Ts.sub.a) to generate a calculated verification code (N.sub.X′): increasing a value of a variable (m) by an increment; setting the value of the variable (m) as a first new registration code (TS.sub.a1-new); performing an XOR operation between the first new registration code (Ts.sub.a1-new) and a value of the hash function of a combined data of the request key (K.sub.A), the identification code (SID.sub.A) and the second arbitrary code (N.sub.a2) to generate a final registration code (Ts); setting a value of the hash function of a combined data of the calculated verification code (N.sub.X′), the second arbitrary code (N.sub.a2), the final registration code (Ts), the request key (K.sub.A) and the identification code (SID.sub.A) as a first confirmation code (V.sub.1); setting a value of the hash function of a combined data of the request key (K.sub.A), the identification code (SID.sub.A) and the first new registration code (Ts.sub.a1-new) as a first new request key (K.sub.A1-new); updating the request key (K.sub.A) with the first new request key (K.sub.A1-new); combining the calculated verification code (N.sub.X′), the first confirmation code (V.sub.1) and the final registration code (Ts) as a response code (R.sub.2); and transmitting the response code (R.sub.2) to the requesting end (A); and a verification step (S4) performed by the requesting end (A) if the first confirmation code (V.sub.1) is verified to be correct using a determined value (V.sub.1-chk) of the hash function of a combined data of the calculated verification code (N.sub.X′), the first arbitrary code (N.sub.a1), the final registration code (Ts), the request key (K.sub.A) and the identification code (SID.sub.A), the verification step (S4) including the operations of: performing an XOR operation between the calculated verification code (N.sub.X′) and a value of the hash function of a combined data of the request key (K.sub.A), the identification code (SID.sub.A) and the preliminary registration code (Ts.sub.a) to generate a second authentication key (CK.sub.2); performing an XOR operation between the final registration code (Ts) and a value of the hash function of a combined data of the request key (K.sub.A), the identification code (SID.sub.A) and the first arbitrary code (N.sub.a1) to generate a second new registration code (TS.sub.a2-new); setting the value of the hash function of a combined data of the request key (K.sub.A), the identification code (SID.sub.A) and the second new registration code (Ts.sub.a2-new) as a second new request key (K.sub.A2-new); updating the preliminary registration code (Ts.sub.a) with the second new registration code (TS.sub.a1-new); and updating the request key (K.sub.A) with the second new request key (K.sub.A2-new); executing an emergency authentication mode if the response code (R.sub.2) is not received by the requesting end (A) within a predetermined period of time or if the first confirmation code (V.sub.1) is verified to be incorrect by the requesting end (A), the emergency authentication mode including: an emergency inquiry step (S2′) performed by the requesting end (A), the emergency inquiry step (S2′) including the operations of: generating a first arbitrary emergency code (eN.sub.a1) having a preset value; setting another one of the plurality of pseudo identification codes (pid.sub.j) of the set of pseudo identification codes (PID) as an one-time alias identity (eAID.sub.A); setting another one of the plurality of emergency keys (K.sub.emj) of the set of emergency keys (K.sub.em) as the request key (K.sub.A); performing an XOR operation between the request key (K.sub.A) and the first arbitrary emergency code (eN.sub.a1) to generate a calculated emergency code (eN.sub.X); combining the one-time alias identity (eAID.sub.A) and the calculated emergency code (eN.sub.X) as an emergency request code (eR.sub.1); and transmitting the emergency request code (eR.sub.1) to the receiving end (C); an emergency answering step (S3′) performed by the receiving end (C) if the one-time alias identity (eAID.sub.A) is verified to contain the other one of the plurality of pseudo identification codes (pid.sub.j) and if the other one of the plurality of emergency keys (K.sub.emj) is verified to be in correspondence to the other one of the plurality of pseudo identification codes (pid.sub.j), the emergency answering step (S3′) including the operations of: setting the other one of the plurality of emergency keys (K.sub.emj) as the request key (K.sub.A); performing an XOR operation between the request key (K.sub.A) and the calculated emergency code (eN.sub.X) to generate a second arbitrary emergency code (eN.sub.a2) having the preset value; generating a first secret authentication key (eCK.sub.1); performing an XOR operation between the first secret authentication key (eCK.sub.1) and a value of the hash function of a combined data of the request key (K.sub.A) and the identification code (SID.sub.A) to generate a calculated emergency verification code (eN.sub.X′); increasing the value of the variable (em) by the increment; setting the value of the variable (em) as a first new emergency registration code (eTs.sub.a1-new); performing an XOR operation between the first new emergency registration code (eTs.sub.a1-new) and a value of the hash function of a combined data of the request key (K.sub.A), the identification code (SID.sub.A) and the secondary arbitrary emergency code (eN.sub.a2) to generate a final emergency registration code (eTs); setting a value of the hash function of a combined data of the calculated emergency verification code (eN.sub.X′), the secondary arbitrary emergency code (eN.sub.a2), the final emergency registration code (eTs), the request key (K.sub.A) and the identification code (SID.sub.A) as a first emergency confirmation code (eV.sub.1); generating a first new emergency request key (eK.sub.A1-new); performing an XOR operation between the first new emergency request key (eK.sub.A1-new) and a value of the hash function of a combined data of the identification code (SID.sub.A) and the other one of the plurality of emergency keys (K.sub.emj) to generate an emergency registration code (x); updating the request key (K.sub.A) with the first new emergency request key (eK.sub.A1-new); combining the calculated emergency verification code (eN.sub.X′), the first emergency confirmation code (eV.sub.1), the final emergency registration code (eTs) and the emergency registration code (x) as an emergency response code (eR.sub.2); and transmitting the emergency response code (eR.sub.2) to the requesting end (A); and an emergency verification step (S4′) performed by the requesting end (A) if the first emergency confirmation code (eV.sub.1) is verified to be correct using a determined value (eV.sub.1-chk) of the hash function of a combined data of the calculated emergency verification code (eN.sub.X′), the first arbitrary emergency code (eN.sub.a1), the final emergency registration code (eTs), the request key (K.sub.A) and the identification code (SID.sub.A), the emergency verification step (S4′) including the operations of: performing an XOR operation between the calculated emergency verification code (eN.sub.X′) and a value of the hash function of a combined data of the request key (K.sub.A), the identification code (SID.sub.A) and the preliminary registration code (Ts.sub.a) to generate a second secret authentication key (eCK.sub.2); performing an XOR operation between the final emergency registration code (eTs) and a value of the hash function of a combined data of the request key (K.sub.A), the identification code (SID.sub.A) and the first arbitrary emergency code (eN.sub.a1) to generate a second new emergency registration code (eTs.sub.a2-new); performing an XOR operation between the emergency registration code (x) and a value of the hash function of a combined data of the identification code (SID.sub.A) and the other one of the plurality of emergency keys (K.sub.emj) to generate a second new emergency request key (eK.sub.A2-new); updating the request key (K.sub.A) with the second new emergency request key (eK.sub.A2-new); and updating the preliminary registration code (Ts.sub.a) with the second new emergency registration code (eTs.sub.a2-new).
2. The authentication method for the communication network as claimed in claim 1, wherein the identification code (SID.sub.A) is a communication key, a signature, a certificate or a license.
3. The authentication method for the communication network as claimed in claim 1, wherein the preliminary registration code (Ts.sub.a) is a series of numbers arranged in a descending or ascending order.
4. The authentication method for the communication network as claimed in claim 1, wherein the pseudo identification code (pid.sub.j) is a random number of a timestamp.
5. An authentication method for a low-computational-capacity device in a communication network, the method comprising: a registration step (P1) including the operations of: transmitting a registration request to a receiving end (C) by a requesting end (A); transmitting a first identification code (SID.sub.A), a request key (K.sub.A), a preliminary registration code (Ts.sub.a), a set of pseudo identification codes (PID) and a set of emergency keys (K.sub.em) to the requesting end (A) by the receiving end (C), wherein the set of pseudo identification codes (PID) comprises a plurality of pseudo identification codes (pid.sub.j), wherein the set of emergency keys (K.sub.em) comprises a plurality of emergency keys (K.sub.em), and wherein one of the plurality of emergency keys (K.sub.em) of the set of emergency keys (K.sub.en) corresponds to one of the plurality of pseudo identification codes (pid.sub.j) of the set of pseudo identification codes (PID); and transmitting a second identification code (SID.sub.B) and an inquiry key (K.sub.B) to an inquiry end (B), as performed by the receiving end (C); a first inquiry step (P2a) performed by the requesting end (A), the first inquiry step (P2a) including the operations of: generating a first arbitrary code (N.sub.a1) having a first predetermined value; performing an XOR operation between the first arbitrary code (N.sub.a1) and the request key (K.sub.A) to generate a first calculated code (N.sub.x1); setting a value of a hash function of a combined data of the first identification code (SID.sub.A), the request key (K.sub.A), the first arbitrary code (N.sub.a1) and the preliminary registration code (Ts.sub.a) as a verification code (AID.sub.A); combining the verification code (AID.sub.A), the first calculated code (N.sub.X1) and the preliminary registration code (Ts.sub.a) as a first request code (R.sub.1a); and transmitting the first request code (R.sub.1a) to an inquiry end (B); a second inquiry step (P2b) performed by the inquiry end (B), the second inquiry step (P2b) including the operations of: generating a second arbitrary code (N.sub.b1) having a second predetermined value; performing an XOR operation between the second arbitrary code (N.sub.b1) and the inquiry key (K.sub.B) to generate a second calculated code (N.sub.y1); setting a value of a hash function of a combined data of the first request code (R.sub.1a), the inquiry key (K.sub.B), the second arbitrary code (N.sub.b1) and the second identification code (SID.sub.B) as a first tested code (V.sub.1′); combining the first request code (R.sub.1a), the second identification code (SID.sub.B), the first tested code (V.sub.1′) and the second calculated code (N.sub.y1) as a second request code (R.sub.1b); and transmitting the second request code (R.sub.1b) to the receiving end (C); a first answering step (P3a) performed by the receiving end (C) if the preliminary registration code (Ts.sub.a) is verified to be correct by the receiving end (C), the first answering step (P3a) including the operations of: performing an XOR operation between the request key (K.sub.A) and the first calculated code (N.sub.X1) to generate a third arbitrary code (N.sub.a2) having the first predetermined value of the first arbitrary code (N.sub.a1); performing an XOR operation between the inquiry key (K.sub.B) and the second calculated code (N.sub.y1) to generate a fourth arbitrary code (N.sub.b2) having the second predetermined value of the second arbitrary code (N.sub.b1); verifying the first tested code (V.sub.1′) with a determined value of the hash function of a combined data of the first request code (R.sub.1a), the inquiry key (K.sub.B), the fourth arbitrary code (N.sub.b2) and the second identification code (SID.sub.B); verifying the verification code (AID.sub.A) with a determined value of the hash function of a combined data of the first identification code (SID.sub.A), the request key (K.sub.A), the third arbitrary code (N.sub.a2) and the preliminary registration code (Ts.sub.a), wherein, if both the first tested code (V.sub.1′) and the verification code (AID.sub.A) are verified to be correct, the first answering step (P3a) further includes the operations of: generating a first authentication key (CK.sub.1); performing an XOR operation between the first authentication key (CK.sub.1) and a value of the hash function of a combined data of the request key (K.sub.A), the first identification code (SID.sub.A) and the preliminary registration code (Ts.sub.a) to generate a first calculated verification code (N.sub.X1′); performing an XOR operation between the first authentication key (CK.sub.1) and a value of the hash function of a combined data of the inquiry key (K.sub.B) and the fourth arbitrary code (N.sub.b2) to generate a second calculated verification code (N.sub.y1′); setting a value of the hash function of a combined data of the second calculated verification code (N.sub.y1′), the fourth arbitrary code (N.sub.b2), the inquiry key (K.sub.B) and the second identification code (SID.sub.B) as a second tested code (V.sub.2′); increasing a value of a variable (m) by an increment; setting the value of the variable (m) as a first new registration code (TS.sub.a1-new); performing an XOR operation between the first new registration code (Ts.sub.a1-new) and a value of the hash function of a combined data of the request key (K.sub.A), the first identification code (SID.sub.A) and the third arbitrary code (N.sub.a2) to generate a final registration code (Ts); setting a value of the hash function of a combined data of the first calculated verification code (N.sub.X1′), the third arbitrary code (N.sub.a2), the final registration code (Ts), the request key (K.sub.A) and the first identification code (SID.sub.A) as a third tested code (V.sub.3′); setting a value of the hash function of a combined data of the inquiry key (K.sub.B), the fourth arbitrary code (N.sub.b2) and the second identification code (SID.sub.B) as a first new inquiry key (K.sub.B1-new); updating the inquiry key (K.sub.B) with the first new inquiry key (K.sub.B1-new); setting a value of the hash function of a combined data of the request key (K.sub.A), the first identification code (SID.sub.A) and the first new registration code (Ts.sub.a1-new) as a first new request key (K.sub.A1-new); updating the request key (K.sub.A) with the first new request key (K.sub.A1-new); combining the first calculated verification code (N.sub.X1′), the second calculated verification code (N.sub.y1′), the second tested code (V.sub.2′), the third tested code (V.sub.3′) and the final registration code (Ts) as a first response code (R.sub.2a); and transmitting the first response code (R.sub.2a) to the inquiry end (B); a second answering step (P3b) performed by the inquiry end (B) if the second tested code (V.sub.2′) is verified to be correct using a determined value (V.sub.2-chk′) of the hash function of a combined data of the second calculated verification code (N.sub.y1′), the second arbitrary code (N.sub.b1), the inquiry key (K.sub.B) and the second identification code (SID.sub.B) the second answering step (P3b) including the operations of: performing an XOR operation between the second calculated verification code (N.sub.y1′) and a value of the hash function of a combined data of the inquiry key (K.sub.B) and the second arbitrary code (N.sub.b1) to generate a second authentication key (CK.sub.2); setting a value of the hash function of a combined data of the inquiry key (K.sub.B), the second arbitrary code (N.sub.b1) and the second identification code (SID.sub.B) as a second new inquiry key (K.sub.B2-new); updating the inquiry key (K.sub.B) with the second new inquiry key (K.sub.B2-new); combining the first calculated verification code (N.sub.X1′), the third tested code (V.sub.3′) and the final registration code (Ts) as a second response code (R.sub.2b); and transmitting the second response code (R.sub.2b) to the requesting end (A); and a verification step (P4) performed by the requesting end (A) if the third tested code (V.sub.3′) is verified to be correct using a determined value (V.sub.3-chk′) of the hash function of a combined data of the first calculated verification code (N.sub.X1′), the first arbitrary code (N.sub.a1), the final registration code (Ts), the request key (K.sub.A) and the first identification code (SID.sub.A), the verification step (P4) including the operations of: performing an XOR operation between the first calculated verification code (N.sub.X1′) and a value of the hash function of a combined data of the request key (K.sub.A), the first identification code (SID.sub.A) and the preliminary registration code (Ts.sub.a) to generate a third authentication key (CK.sub.3); performing an XOR operation between the final registration code (Ts) and a value of the hash function of a combined data of the request key (K.sub.A), the first identification code (SID.sub.A) and the first arbitrary code (N.sub.a1) to generate a second new registration code (Ts.sub.a2-new); setting a value of the hash function of a combined data of the request key (K.sub.A), the first identification code (SID.sub.A) and the second new registration code (Ts.sub.a2-new) as a second new request key (K.sub.A2-new); updating the preliminary registration code (Ts.sub.a) with the second new registration code (Ts.sub.a2-new); and updating the request key (K.sub.A) with the second new request key (K.sub.A2-new); executing an emergency authentication mode if the second response code (R.sub.2b) is not received by the requesting end (A) within a predetermined period of time or if the third tested code (V.sub.3′) is verified to be incorrect, the emergency authentication mode including: a first emergency inquiry step (P2a′) performed by the requesting end (A), the first emergency inquiry step (P2a′) including the operations of: generating a first arbitrary emergency code (eN.sub.a1) having a first preset value; setting another one of the plurality of pseudo identification codes (pid.sub.j) of the set of pseudo identification codes (PID) as an one-time alias identity (eAID.sub.A); setting another one of the plurality of emergency keys (K.sub.emj) of the set of emergency keys (K.sub.em) as the request key (K.sub.A); performing an XOR operation between the request key (K.sub.A) and the first arbitrary emergency code (eN.sub.a1) to generate a first calculated emergency code (eN.sub.X1); combining the one-time alias identity (eAID.sub.A) and the first calculated emergency code (eN.sub.X1) as a first emergency request code (eR.sub.1a); and transmitting a first emergency request code (eR.sub.1a) to the inquiry end (B); a second emergency inquiry step (P2b′) performed by the inquiry end (B), the second emergency inquiry step (P2b′) including the operations of: generating a second arbitrary emergency code (eN.sub.b1) having a second present value; performing an XOR operation between the second arbitrary emergency code (eN.sub.b1) and the inquiry key (K.sub.B) to generate a second calculated emergency code (eN.sub.y1); setting a value of the hash function of a combined data of the first emergency request code (eR.sub.1a), the inquiry key (K.sub.B), the second arbitrary emergency code (eN.sub.b1) and the second identification code (SID.sub.B) as a first emergency tested code (eV.sub.1′); combining the first emergency request code (eR.sub.1a), the second identification code (SID.sub.B), the first emergency tested code (eV.sub.1′) and the second calculated emergency code (eN.sub.y1) as a second emergency request code (eR.sub.1b); and transmitting the second emergency request code (eR.sub.1b) to the receiving end (C); a first emergency answering step (P3a′) performed by the receiving end (C), the first emergency answering step (P3a′) including the operations of: performing an XOR operation between the request key (K.sub.A) and the first calculated emergency code (eN.sub.X1) to generate a third arbitrary emergency code (eN.sub.a2) having the first preset value of the first arbitrary emergency code (eN.sub.a1); performing an XOR operation between the inquiry key (K.sub.B) and the second calculated emergency code (eN.sub.y1) to generate a fourth arbitrary emergency code (eN.sub.b2) having the second present value of the second arbitrary emergency code (eN.sub.b1); verifying the first emergency tested code (eV.sub.1′) with a determined value of the hash function of a combined data of the first emergency request code (eR.sub.1a), the inquiry key (K.sub.B), the fourth arbitrary emergency code (eN.sub.b2) and the second identification code (SID.sub.B); wherein, if the one-time alias identity (eAID.sub.A) is verified to contain the other one of the plurality of pseudo identification codes (pid.sub.j) and if the first emergency tested code (eV.sub.1′) is verified to be correct, the first emergency answering step (P3a′) further includes the operations of: generating a first secret authentication key (eCK.sub.1); performing an XOR operation between the first secret authentication key (eCK.sub.1) and a value of the hash function of a combined data of the request key (K.sub.A) and the first identification code (SID.sub.A) to generate a first calculated emergency verification code (eN.sub.X1′); performing an XOR operation between the first secret authentication key (eCK.sub.1) and a value of the hash function of a combined data of the inquiry key (K.sub.B) and the fourth arbitrary emergency code (eN.sub.b2) to generate a second calculated emergency verification code (eN.sub.y1′); setting a value of the hash function of a combined data of the second calculated emergency verification code (eN.sub.y1′), the fourth arbitrary emergency code (eN.sub.b2), the inquiry key (K.sub.B) and the second identification code (SID.sub.B) as a second emergency tested code (eV.sub.2′); increasing the value of the variable (em) by the increment; setting the value of the variable (em) as a first new emergency registration code (eTs.sub.a1-new); performing an XOR operation between the first new emergency registration code (eTs.sub.a1-new) and a value of the hash function of a combined data of the request key (K.sub.A), the first identification code (SID.sub.A) and the third arbitrary emergency code (eN.sub.a2) to generate a final emergency registration code (eTs); setting a value of the hash function of a combined data of the first calculated emergency verification code (eN.sub.X1′), the third arbitrary emergency code (eN.sub.a2), the final emergency registration code (eTs), the request key (K.sub.A) and the first identification code (SID.sub.A) as a third emergency tested code (eV.sub.3′); setting a value of the hash function of a combined data of the inquiry key (K.sub.B), the fourth arbitrary emergency code (eN.sub.b2) and the second identification code (SID.sub.B) as a first new emergency inquiry key (eK.sub.B1-new); generating a first new emergency request key (eK.sub.A1-new); performing an XOR operation between the first new emergency request key (eK.sub.A1-new) and a value of the hash function of a combined data of the identification code (SID.sub.A) and the request key (K.sub.A) to generate an emergency registration code (x); updating the request key (K.sub.A) with the first new emergency request key (eK.sub.A1-new); combining the first calculated emergency verification code (eN.sub.X1′), the second calculated emergency verification code (eN.sub.y1′), the second emergency tested code (eV.sub.2′), the third emergency tested code (eV.sub.3′), the final emergency registration code (eTs) and the emergency registration code (x) as a first emergency response code (eR.sub.2a); and transmitting the first emergency response code (eR.sub.2a) to the inquiry end (B); a second emergency answering step (P3b′) performed by the inquiry end (B) if the second emergency tested code (eV.sub.2′) is verified to be correct using a determined value (eV.sub.2-chk′) of the hash function of a combined data of the second calculated emergency verification code (eN.sub.y1′), the second arbitrary emergency code (eN.sub.b1), the inquiry key (K.sub.B) and the second identification code (SID.sub.B), the second emergency answering step (P3b′) including the operations of: performing an XOR operation between the second calculated emergency verification code (eN.sub.y1′) and a value of the hash function of a combined data of the inquiry key (K.sub.B) and the second arbitrary emergency code (eN.sub.b1) to generate a second secret authentication key (eCK.sub.2); setting a value of the hash function of a combined data of the inquiry key (K.sub.B), the second arbitrary emergency code (eN.sub.b1) and the second identification code (SID.sub.B) as a second new emergency inquiry key (eK.sub.B2-new); updating the inquiry key (K.sub.B) with the second new emergency inquiry key (eK.sub.B2-new); combining the first calculated emergency verification code (eN.sub.X1′), the third emergency tested code (eV.sub.3′) and the final emergency registration code (eTs) as a second emergency response code (eR.sub.2b); and transmitting the second emergency response code (eR.sub.2b) to the requesting end (A); and an emergency verification step (P4′) performed by the requesting end (A) if the third emergency tested code (eV.sub.3′) is verified to be correct using a determined value (eV.sub.3-chk′) of the hash function of a combined data of the first calculated emergency verification code (eN.sub.X1′), the first arbitrary emergency code (eN.sub.a1), the final emergency registration code (eTs), the request key (K.sub.A) and the identification code (SID.sub.A), the emergency verification step (P4′) including the operations of: performing an XOR operation between the first calculated emergency verification code (eN.sub.X1′) and a value of the hash function of a combined data of the request key (K.sub.A) and the identification code (SID.sub.A) to generate a third secret authentication key (eCK.sub.3); performing an XOR operation between the final emergency registration code (eTs) and a value of the hash function of a combined data of the request key (K.sub.A), the identification code (SID.sub.A) and the first arbitrary emergency code (eN.sub.a1) to generate a second new emergency registration code (eTs.sub.a2-new); performing an XOR operation between the emergency registration code (x) and a value of the hash function of a combined data of the identification code (SID.sub.A) and the request key (K.sub.A) to generate a second new emergency request key (eK.sub.A2-new); updating the request key (K.sub.A) with the second new emergency request key (eK.sub.A2-new); and updating the preliminary registration code (Ts.sub.a) with the second new emergency registration code (eTs.sub.a2-new).
6. The authentication method for the communication network as claimed in claim 5, wherein each of the first identification code (SID.sub.A) and the second identification code (SID.sub.B) is a communication key, a signature, a certificate or a license.
7. The authentication method for the communication network as claimed in claim 5, wherein the preliminary registration code (Ts.sub.a) is a series of numbers arranged in a descending or ascending order.
8. The authentication method for the communication network as claimed in claim 5, wherein the pseudo identification code (pid.sub.j) is a random number of a timestamp.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The present invention will become more fully understood from the detailed description given hereinafter and the accompanying drawings which are given by way of illustration only, and thus are not limitative of the present invention, and wherein:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10) In the various figures of the drawings, the same numerals designate the same or similar parts. Furthermore, when the terms “first”, “second”, “third”, “fourth”, “inner”, “outer”, “top”, “bottom”, “front”, “rear” and similar terms are used hereinafter, it should be understood that these terms have reference only to the structure shown in the drawings as it would appear to a person viewing the drawings, and are utilized only to facilitate describing the invention.
DETAILED DESCRIPTION OF THE INVENTION
(11)
(12) In the registration step S1, the user end (requesting end) sends a registration request to the server end (receiving end). Upon the receipt of the registration request, the server end sends an identification code (SID.sub.A), a request key (K.sub.A), a preliminary registration code (Ts.sub.a), a set of pseudo identification codes (PID) and a set of emergency keys (K.sub.em) to the user end. The set of pseudo identification codes (PID) includes a plurality of pseudo identification codes (pid.sub.j), and the set of emergency keys (K.sub.em) includes a plurality of emergency keys (K.sub.em). In this regard, one of the plurality of emergency keys (K.sub.em) corresponds to one of the plurality of pseudo identification codes (pid.sub.j) of the set of pseudo identification codes (PID). Now, the registration step S1 is completed and the user end will proceed to acquire the data from the server end that is needed for the authentication purpose.
(13) In the inquiry step S2, with reference made to
(14) First, the user end 1 generates a first arbitrary code (N.sub.a1) having a predetermined value. The first arbitrary code (N.sub.a1) can be any code that is generated in a random manner. Then, the user end 1 performs an XOR (exclusive or) operation between the first arbitrary code (N.sub.a1) and the request key (K.sub.A) to generate a calculated code (N.sub.X). The identification code (SID.sub.A), the request key (K.sub.A), the first arbitrary code (N.sub.a1) and the preliminary registration code (Ts.sub.a) are cascaded as a combined data, and the user end 1 sets the value of a hash function of the combined data as a verification code (AID.sub.A). Next, the user end 1 combines the verification code (AID.sub.A), the calculated code (N.sub.X) and the preliminary registration code (Ts.sub.a) as a request code (R.sub.1). Finally, the user end 1 sends the request code (R.sub.1) to the server end 2.
(15) In the answering step S3, with reference made to
(16) First, the server end 2 verifies the preliminary registration code (Ts.sub.a). Since the preliminary registration code (Ts.sub.a) was previously sent to the user end 1 by the server end 2, if the preliminary registration code (Ts.sub.a) is not correct, the user end 1 and the server end 2 may be no longer in synchronization. In this regard, the server end 2 will ask the user end 1 to try another pseudo identification code (pid.sub.j) and another emergency key (K.sub.em), and then terminates the connection. If the preliminary registration code (Ts.sub.a) is verified to be correct, the server end 2 performs an XOR operation between the request key (K.sub.A) and the calculated code (N.sub.X) to generate a second arbitrary code (N.sub.a2) that is supposed to have the predetermined value of the first arbitrary code (N.sub.a1). The identification code (SID.sub.A), the request key (K.sub.A), the second arbitrary code (N.sub.a2) and the preliminary registration code (Ts.sub.a) are cascaded as a combined data, and the server end 2 determines the value of the hash function of the combined data. At this point, the server end 2 verifies the verification code (AID.sub.A) with the determined value of the combined data. If the verification code (AID.sub.A) is verified to be correct, the server end 2 generates a first authentication key (CK.sub.1). In this regard, the request key (K.sub.A), the identification code (SID.sub.A) and the preliminary registration code (Ts.sub.a) are cascaded as a combined data, and the server end 2 determines the value of the hash function of the combined data. Then, the server end 2 performs an XOR operation between the first authentication key (CK.sub.1) and the value of the hash function of the combined data to generate a calculated verification code (N.sub.X′). Then, the server end 2 increases the value of a variable (m) by an increment. The increment may be 1, but is not limited thereto. Next, the server end 2 sets the value of the variable (m) as a first new registration code (Ts.sub.a1-new). At this point, the request key (K.sub.A), the identification code (SID.sub.A) and the second arbitrary code (N.sub.a2) are cascaded as a combined data, and the server end 2 determines the value of the hash function of the combined data. Then, the server end 2 performs an XOR operation between the first new registration code (Ts.sub.a1-new) and the determined value of the hash function of the combined data to generate a final registration code (Ts). The calculated verification code (N.sub.X′), the second arbitrary code (N.sub.a2), the final registration code (Ts), the request key (K.sub.A) and the identification code (SID.sub.A) are cascaded as a combined data, and the server end 2 sets the value of the hash function of the combined data as a first confirmation code (V.sub.1). Then, the request key (K.sub.A), the identification code (SID.sub.A) and the first new registration code (Ts.sub.a1-new) are cascaded as a combined data, and the server end 2 sets the value of the hash function of the combined data as a first new request key (K.sub.A1-new). Next, the server end 2 updates the request key (K.sub.A) with the first new request key (K.sub.A1-new), combines the calculated verification code (N.sub.X′), the first confirmation code (V.sub.1) and the final registration code (Ts) as a response code (R.sub.2), and finally sends the response code (R.sub.2) to the user end 1.
(17) In the verification step S4, with reference made to
(18) First, the user end 1 verifies whether the first confirmation code (V.sub.1) is correct first. Specifically, the user end 1 determines a value (V.sub.1.sub._.sub.chk) of the hash function of the combined data of the calculated verification code (N.sub.X′), the first arbitrary code (N.sub.a1), the final registration code (Ts), the request key (K.sub.A) and the identification code (SID.sub.A), then determines whether the determined value (V.sub.1.sub._.sub.chk) is consistent with the first confirmation code (V.sub.1). If not, the first confirmation code (V.sub.1) is verified to be incorrect, and the server end 2 terminates the connection. If the determined result is consistent, the first confirmation code (V.sub.1) is verified to be correct. Upon the consistent result, the request key (K.sub.A), the identification code (SID.sub.A) and the preliminary registration code (Ts.sub.a) are cascaded as a combined data, and the user end 1 performs an XOR operation between the calculated verification code (N.sub.X′) and the value of the hash function of the combined data to generate a second authentication key (CK.sub.2). Then, the request key (K.sub.A), the identification code (SID.sub.A) and the first arbitrary code (N.sub.a1) are cascaded as a combined data, and the user end 1 performs an XOR operation between the final registration code (Ts) and the value of the hash function of the combined data to generate a second new registration code (Ts.sub.a2-new). Next, the request key (K.sub.A), the identification code (SID.sub.A) and the second new registration code (Ts.sub.a2-new) are cascaded as a combined data, and the user end 1 sets the value of the hash function of the combined data as a second new request key (K.sub.A2-new). Finally, the user end 1 updates the preliminary registration code (Ts.sub.a) with the second new registration code (Ts.sub.a2-new), and updates the request key (KA) with the second new request key (KA.sub.2a-new).
(19) In the authentication method of the first embodiment above, the second authentication key (CK.sub.2) generated by the user end 1 can be used for authentication purpose with another user end (not shown). Specifically, the server end 2 may send its first authentication key (CK.sub.1) to the other user end (not shown) for authentication with the user end 1. In this regard, if the second authentication key (CK.sub.2) of the user end 1 is consistent with the first authentication key (CK.sub.1) of the other user end (not shown), the authentication will be deemed successful. As such, the two user ends can start to communicate with each other. To the contrary, if the second authentication key (CK.sub.2) of the user end 1 is inconsistent with the first authentication key (CK.sub.1) of the other user end (not shown), the authentication is not successful. Consequently, the communication between the two user ends cannot be established.
(20) In the first embodiment above, if the response code (R.sub.2) generated in the answering step S3 is not received by the user end 1 within a predetermined period of time, or if the response code (R.sub.2) is received by the user end 1 but the first confirmation code (V.sub.1) is verified to be incorrect in the verification step S4, an emergency authentication mode is executed. The emergency authentication mode includes an emergency inquiry step S2′, an emergency answering step S3′ and an emergency verification step S4′, as shown in
(21) In the emergency inquiry step S2′, with reference made to
(22) First, the user end 1 generates a first arbitrary emergency code (eN.sub.a1) having a preset value, and sets another one of the plurality of pseudo identification codes (pid.sub.j) of the set of pseudo identification codes (PID), which has never been used before, as an one-time alias identity (eAID.sub.A). The other one of the plurality of pseudo identification codes (pid.sub.j) that has never been used before is defined as an unused pseudo identification code (pid.sub.j) hereinafter. The user end 1 also sets another one of the plurality of emergency keys (K.sub.emj) of the set of emergency keys (K.sub.em), which has never been used before, as the request key (K.sub.A). Similarly, the other one of the plurality of emergency keys (K.sub.emj) that has never been used before is defined as an unused emergency key (K.sub.emj) hereinafter. Then, the user end 1 performs an XOR operation between the request key (K.sub.A) and the first arbitrary emergency code (eN.sub.a1) to generate a calculated emergency code (eN.sub.X), combines the one-time alias identity (eAID.sub.A) and the calculated emergency code (eN.sub.X) as an emergency request code (eR.sub.1), and finally sends the emergency request code (eR.sub.1) to the server end (C).
(23) In the emergency answering step S3′, with reference made to
(24) First, the server end 2 verifies whether the unused pseudo identification code (pid.sub.j) is contained in the one-time alias identity (eAID.sub.A) and whether the unused emergency key (K.sub.emj) is in correspondence to the unused pseudo identification code (pid.sub.j). If the unused pseudo identification code (pid.sub.j) is not contained in the one-time alias identity (eAID.sub.A) or if the unused emergency key (K.sub.emj) is not in correspondence to the unused pseudo identification code (pid.sub.j), the server end 2 will ask the user end 1 to try another unused pseudo identification code (pid.sub.j) and another unused emergency key (K.sub.em), and then terminates the connection. If the unused pseudo identification code (pid.sub.j) is contained in the one-time alias identity (eAID.sub.A) and the unused emergency key (K.sub.emj) is in correspondence to the unused pseudo identification code (pid.sub.j), the server end 2 sets the unused emergency keys (K.sub.emj) as the request key (K.sub.A), performs an XOR operation between the request key (K.sub.A) and the calculated emergency code (eN.sub.X) to generate a second arbitrary emergency code (eN.sub.a2) that is supposed to have the preset value of the first arbitrary emergency code (eN.sub.a1). Then, the server end 2 generates a first secret authentication key (eCK.sub.1). At this point, the request key (K.sub.A) and the identification code (SID.sub.A) are cascaded as a combined data, and the server end 2 performs an XOR operation between the first secret authentication key (eCK.sub.1) and the value of the hash function of the combined data to generate a calculated emergency verification code (eN.sub.X′). Then, the server end 2 increases the value of the variable (m) by an increment. The increment may be 1, but is not limited thereto. Next, the server end 2 sets the value of the variable (m) as a first new emergency registration code (Ts.sub.a1-new). At this point, the request key (K.sub.A), the identification code (SID.sub.A) and the secondary arbitrary emergency code (eN.sub.a2) are cascaded as a combined data, and the server end 2 performs an XOR operation between the first new emergency registration code (eTs.sub.a1-new) and the value of the hash function of the combined data to generate a final emergency registration code (eTs). Then, the calculated emergency verification code (eN.sub.X′), the secondary arbitrary emergency code (eN.sub.a2), the final emergency registration code (eTs), the request key (K.sub.A) and the identification code (SID.sub.A) are cascaded as a combined data, and the server end 2 sets the value of the hash function of the combined data as a first emergency confirmation code (eV.sub.1). Next, the server end 2 generates a first new emergency request key (eK.sub.A1-new). Next, the identification code (SID.sub.A) and the unused emergency key (K.sub.emj) are cascaded as a combined data, and the server end 2 performs an XOR operation between the first new emergency request key (eK.sub.A1-new) and the value of the hash function of the combined data to generate an emergency registration code (x). Finally, the server end 2 updates the request key (K.sub.A) with the first new emergency request key (eK.sub.A1-new), combines the calculated emergency verification code (eN.sub.X′), the first emergency confirmation code (eV.sub.1), the final emergency registration code (eTs) and the emergency registration code (x) as an emergency response code (eR.sub.2), and sends the emergency response code (eR.sub.2) to the user end 1.
(25) In the emergency verification step S4′, with reference made to
(26) First, the user end 1 verifies whether the first emergency confirmation code (eV.sub.1) is correct first. Specifically, the user end 1 determines a value (eV.sub.1.sub._.sub.chk) of the hash function of the combined data of the calculated emergency verification code (eN.sub.X′), the second arbitrary emergency code (eN.sub.a2), the final emergency registration code (eTs), the request key (K.sub.A) and the identification code (SID.sub.A), then determines whether the determined value (eV.sub.1.sub._.sub.chk) is consistent with the first emergency confirmation code (eV.sub.1). If not, the first emergency confirmation code (eV.sub.1) is verified to be incorrect, and the server end 2 terminates the connection. If the determined result is consistent, the first emergency confirmation code (eV.sub.1) is verified to be correct. Upon the consistent result, the request key (K.sub.A), the identification code (SID.sub.A) and the preliminary registration code (Ts.sub.a) are cascaded as a combined data, and the user end 1 performs an XOR operation between the calculated emergency verification code (eN.sub.X′) and the value of the hash function of the combined data to generate a second secret authentication key (eCK.sub.2). Then, the request key (K.sub.A), the identification code (SID.sub.A) and the first arbitrary emergency code (eN.sub.a1) are cascaded as a combined data, and the user end 1 performs an XOR operation between the final emergency registration code (eTs) and the value of the hash function of the combined data to generate a second new emergency registration code (eTs.sub.a2-new). Next, the identification code (SID.sub.A) and the unused emergency key (K.sub.emj) are cascaded as a combined data, and the user end 1 performs an XOR operation between the emergency registration code (x) and the value of the hash function of the combined data to generate a second new emergency request key (eK.sub.A2-new). Finally, the user end 1 updates the request key (K.sub.A) with the second new emergency request key (eK.sub.A2-new), and updates the preliminary registration code (Ts.sub.a) with the second new emergency registration code (eTs.sub.a2-new).
(27)
(28) In the registration step P1, the first user end 1a (requesting end) sends a registration request to the server end 2 (receiving end). Upon the receipt of the registration request, the server end 2 sends a first identification code (SID.sub.A), a request key (K.sub.A), a preliminary registration code (Ts.sub.a), a set of pseudo identification codes (PID) and a set of emergency keys (K.sub.em) to the first user end 1a. The set of pseudo identification codes (PID) includes a plurality of pseudo identification codes (pid.sub.j), and the set of emergency keys (K.sub.em) includes a plurality of emergency keys (K.sub.em). In this regard, one of the plurality of emergency keys (K.sub.em) corresponds to one of the plurality of pseudo identification codes (pid.sub.j) of the set of pseudo identification codes (PID). Finally, the server end 2 sends a second identification code (SID.sub.B) and an inquiry key (K.sub.B) to the second user end 1b (inquiring end). Similarly, the server end 2 also sends a second identification code (SID.sub.B) and an inquiry key (K.sub.B) to the second user end 1b.
(29) In the first inquiry step P2a, with reference made to
(30) First, the first user end 1a generates a first arbitrary code (N.sub.a1) having a first predetermined value, and performs an XOR operation between the first arbitrary code (N.sub.a1) and the request key (K.sub.A) to generate a first calculated code (N.sub.X1). Then, the first identification code (SID.sub.A), the request key (K.sub.A), the first arbitrary code (N.sub.a1) and the preliminary registration code (Ts.sub.a) are cascaded as a combined data, and the first user end 1a sets the value of the hash function of the combined data as an verification code (AID.sub.A). Next, the first user end 1a combines the verification code (AID.sub.A), the first calculated code (N.sub.X1) and the preliminary registration code (Ts.sub.a) as a first request code (R.sub.1a), and sends the first request code (R.sub.1a) to the second user end 1b.
(31) In the second inquiry step P2b, with reference made to
(32) First, the second user end 1b generates a second arbitrary code (N.sub.b1) having a second predetermined value. Then, the second user end 1b performs an XOR operation between the second arbitrary code (N.sub.b1) and the inquiry key (K.sub.B) to generate a second calculated code (N.sub.y1). At this point, the first request code (R.sub.1a), the inquiry key (K.sub.B), the second arbitrary code (N.sub.b1) and the second identification code (SID.sub.B) are cascaded as a combined data, and the second user end 1b sets the value of the hash function of the combined data as a first tested code (V.sub.1′). Then, the second user end 1b combines the first request code (R.sub.1a), the second identification code (SID.sub.B), the first tested code (V.sub.1′) and the second calculated code (N.sub.y1) as a second request code (R.sub.1b). Finally, the second user end 1b transmits the second request code (R.sub.1b) to the server end 2.
(33) In the first answering step P3a, with reference made to
(34) First, the server end 2 verifies whether the preliminary registration code (Ts.sub.a) is correct or not. If not, the first user end 1a and the server end 2 may be no longer in synchronization. In this regard, the server end 2 will ask the first user end 1a to try another pseudo identification code (pid.sub.j) and another emergency key (K.sub.em), and then terminates the connection. If the preliminary registration code (Ts.sub.a) is correct, the server end 2 performs an XOR operation between the request key (K.sub.A) and the first calculated code (N.sub.X1) to generate a third arbitrary code (N.sub.a2) that is supposed to have the first predetermined value of the first arbitrary code (N.sub.a1), and performs an XOR operation between the inquiry key (K.sub.B) and the second calculated code (N.sub.y1) to generate a fourth arbitrary code (N.sub.b2) that is supposed to have the second predetermined value of the second arbitrary code (N.sub.b1). Then, the first request code (R.sub.1a), the inquiry key (K.sub.B), the fourth arbitrary code (N.sub.b2) and the second identification code (SID.sub.B) are cascaded as a combined data, and the server end 2 verifies the first tested code (V.sub.1′) with the determined value of the hash function of the combined data. Similarly, the first identification code (SID.sub.A), the request key (K.sub.A), the third arbitrary code (N.sub.a2) and the preliminary registration code (Ts.sub.a) are cascaded as a combined data, and the server end 2 verifies the verification code (AID.sub.A) with the determined value of the hash function of the combined data. In this regard, if any one of the first tested code (V.sub.1′) and the verification code (AID.sub.A) is verified to be incorrect, the server end 2 terminates the connection. If they are correct, the server end 2 generates a first authentication key (CK.sub.1). Then, the request key (K.sub.A), the first identification code (SID.sub.A) and the preliminary registration code (Ts.sub.a) are cascaded as a combined data, and the server end 2 performs an XOR operation between the first authentication key (CK.sub.1) and the value of the hash function of the combined data to generate a first calculated verification code (N.sub.X1′). Next, the inquiry key (K.sub.B) and the fourth arbitrary code (N.sub.b2) are cascaded as a combined data, and the server end 2 performs an XOR operation between the first authentication key (CK.sub.1) and the value of the hash function of the combined data to generate a second calculated verification code (N.sub.y1′). Next, the second calculated verification code (N.sub.y1′), the fourth arbitrary code (N.sub.b2), the inquiry key (K.sub.B) and the second identification code (SID.sub.B) are cascaded as a combined data, and the server end 2 sets the value of the hash function of the combined data as a second tested code (V.sub.2′). Next, the server end 2 increases the value of a variable (m) by an increment. The increment may be 1, but is not limited thereto. Then, the request key (K.sub.A), the first identification code (SID.sub.A) and the third arbitrary code (N.sub.a2) are cascaded as a combined data, and the server end 2 performs an XOR operation between the first new registration code (Ts.sub.a1-new) and the value of the hash function of the combined data to generate a final registration code (Ts). Then, the first calculated verification code (N.sub.x1′), the third arbitrary code (N.sub.a2), the final registration code (Ts), the request key (K.sub.A) and the first identification code (SID.sub.A) are cascaded as a combined data, and the server end 2 sets the value of the hash function of the combined data as a third tested code (V.sub.3′). At this point, the inquiry key (K.sub.B), the fourth arbitrary code (N.sub.b2) and the second identification code (SID.sub.B) are cascaded as a combined data, and the server end 2 sets the value of the hash function of the combined data as a first new inquiry key (K.sub.B1-new). Then, the server end 2 updates the inquiry key (K.sub.B) with the first new inquiry key (K.sub.B1-new). Similarly, the request key (K.sub.A), the first identification code (SID.sub.A) and the first new registration code (Ts.sub.a1-new) are cascaded as a combined data, and the server end 2 sets the value of the hash function of the combined data as a first new request key (K.sub.A1-new). Then, the server end 2 updates the request key (K.sub.A) with the first new request key (K.sub.A1-new). Finally, the server end 2 combines the first calculated verification code (N.sub.X1′), the second calculated verification code (N.sub.y1′), the second tested code (V.sub.2′), the third tested code (V.sub.3′) and the final registration code (Ts) as a first response code (R.sub.2a), and sends the first response code (R.sub.2a) to the second user end 1b.
(35) In the second answering step P3b, with reference made to
(36) First, the second user end 1b verifies whether the second tested code (V.sub.2′) is correct or not. Specifically, the second calculated verification code (N.sub.y1′), the second arbitrary code (N.sub.b1), the inquiry key (K.sub.B) and the second identification code (SID.sub.B) are cascaded as a combined data, and the second user end 1b determines a value (V.sub.2.sub._.sub.chk′) of the hash function of the combined data is consistent with the second tested code (V.sub.2′). If not, the second tested code (V.sub.2′) is verified to be incorrect, and the second user end 1b terminates the connection. If the value (V.sub.2.sub._.sub.chk′) is consistent with the second tested code (V.sub.2′), the second tested code (V.sub.2′) is verified to be correct. In this regard, the inquiry key (K.sub.B) and the second arbitrary code (N.sub.b1) are cascaded as a combined data, and the second user end 1b performs an XOR operation between the second calculated verification code (N.sub.y1′) and the value of the hash function of the combined data to generate a second authentication key (CK.sub.2). Then, the inquiry key (K.sub.B), the second arbitrary code (N.sub.b1) and the second identification code (SID.sub.B) are cascaded as a combined data, and the second user end 1b sets the value of the hash function of the combined data as a second new inquiry key (K.sub.B2-new). Finally, the second user end 1b updates the inquiry key (K.sub.B) with the second new inquiry key (K.sub.B2-new), combines the first calculated verification code (N.sub.1′), the third tested code (V.sub.3′) and the final registration code (Ts) as a second response code (R.sub.2b), and sends the second response code (R.sub.2b) to the first user end 1a.
(37) In the verification step P4, with reference made to
(38) First, the first user end 1a verifies whether the third tested code (V.sub.3′) is correct first. Specifically, the first calculated verification code (N.sub.X1′), the first arbitrary code (N.sub.a1), the final registration code (Ts), the request key (K.sub.A) and the first identification code (SID.sub.A) are cascaded as a combined data, and the first user end 1a determines whether the value (V.sub.3.sub._.sub.chk′) of the hash function of the combined data is consistent with the third tested code (V.sub.3′). If not, the third tested code (V.sub.3′) is verified to be incorrect, and the first user end 1a terminates the connection. If the determination is consistent, the request key (K.sub.A), the first identification code (SID.sub.A) and the preliminary registration code (Ts.sub.a) are cascaded as a combined data, and the first user end 1a performs an XOR operation between the first calculated verification code (N.sub.X1′) and the value of the hash function of the combined data to generate a third authentication key (CK.sub.3). Then, the request key (K.sub.A), the first identification code (SID.sub.A) and the first arbitrary code (N.sub.a1) are cascaded as a combined data, and the first user end 1a performs an XOR operation between the final registration code (Ts) and the value of the hash function of the combined data to generate a second new registration code (Ts.sub.a1-new). Next, the request key (K.sub.A), the first identification code (SID.sub.A) and the second new registration code (Ts.sub.a1-new) are cascaded as a combined data, and the first user end 1a sets the value of the hash function of the combined data as a second new request key (K.sub.A2-new). Finally, the first user end 1a updates the preliminary registration code (Ts.sub.a) with the second new registration code (Ts.sub.a1-new), and updates the request key (K.sub.A) with the second new request key (K.sub.A2-new).
(39) In the second embodiment above, if the second response code (R.sub.2b) generated in the second answering step P3b is not received by the first user end 1a within a predetermined period of time, or if the second response code (R.sub.2b) is received by the first user end 1a but the third tested code (V.sub.3′) is verified to be incorrect in the verification step P4, an emergency authentication mode is executed. The emergency authentication mode includes a first emergency inquiry step P2a′, a second emergency inquiry step P2b′, a first emergency answering step P3a′, a second emergency answering step P3b′ and an emergency verification step P4′, as shown in
(40) In the first emergency inquiry step P2a′, with reference made to
(41) First, the first user end 1a generates a first arbitrary emergency code (eN.sub.a1) having a first preset value, and sets another one of the plurality of pseudo identification codes (pid.sub.j) of the set of pseudo identification codes (PID), which has never been used before, as an one-time alias identity (eAID.sub.A). The other one of the plurality of pseudo identification codes (pid.sub.j) that has never been used before is defined as an unused pseudo identification code (pid.sub.j) hereinafter. The first user end 1a also sets another one of the plurality of emergency keys (K.sub.emj) of the set of emergency keys (K.sub.em), which has never been used before, as the request key (K.sub.A). Similarly, the other one of the plurality of emergency keys (K.sub.emj) that has never been used before is defined as an unused emergency key (K.sub.emj) hereinafter. Then, the first user end 1a performs an XOR operation between the request key (K.sub.A) and the first arbitrary emergency code (eN.sub.a1) to generate a first calculated emergency code (eN.sub.X1). Next, the first user end 1a combines the one-time alias identity (eAID.sub.A) and the first calculated emergency code (eN.sub.X1) as a first emergency request code (eR.sub.1a), and sends the first emergency request code (eR.sub.1a) to the second user end 1b.
(42) In the second emergency inquiry step P2b′, with reference made to
(43) First, the second user end 1b generates a second arbitrary emergency code (eN.sub.b1) having a second preset value, and performs an XOR operation between the second arbitrary emergency code (eN.sub.b1) and the inquiry key (K.sub.B) to generate a second calculated emergency code (eN.sub.y1). Then, the first emergency request code (eR.sub.1a), the inquiry key (K.sub.B), the second arbitrary emergency code (eN.sub.b1) and the second identification code (SID.sub.B) are cascaded as a combined data, and the second user end 1b sets the value of the hash function of the combined data as a first emergency tested code (eV.sub.1′). Next, the second user end 1b combines the first emergency request code (eR.sub.1a), the second identification code (SID.sub.B), the first emergency tested code (eV.sub.1′) and the second calculated emergency code (eN.sub.y1) as a second emergency request code (eR.sub.1b), and sends the second emergency request code (eR.sub.1b) to the server end 2.
(44) In the first emergency answering step P3a′, with reference made to
(45) First, the server end 2 performs an XOR operation between the request key (K.sub.A) and the first calculated emergency code (eN.sub.X1) to generate a third arbitrary emergency code (eN.sub.a2) having the first preset value of the first arbitrary emergency code (eN.sub.a1), and performs an XOR operation between the inquiry key (K.sub.B) and the second calculated emergency code (eN.sub.y1) to generate a fourth arbitrary emergency code (eN.sub.b2) having the second present value of the second arbitrary emergency code (eN.sub.b1). In this regard, the first emergency request code (eR.sub.1a), the inquiry key (K.sub.B), the fourth arbitrary emergency code (eN.sub.b2) and the second identification code (SID.sub.B) are cascaded as a combined data, and the server end 2 verifies whether the first emergency tested code (eV.sub.1′) is correct using the value of the hash function of the combined data. In addition, the server end 2 verifies whether the unused pseudo identification code (pid.sub.j) is contained in the one-time alias identity (eAID.sub.A). If the unused pseudo identification code (pid.sub.j) is not contained in the one-time alias identity (eAID.sub.A) or if the first emergency tested code (eV.sub.1′) is incorrect, the server end 2 will ask the first user end 1a to try another unused pseudo identification code (pid.sub.j) and another unused emergency key (K.sub.em), and then terminates the connection. If the unused pseudo identification code (pid.sub.j) is contained in the one-time alias identify (eAID.sub.A) and the first emergency tested code (eV.sub.1′) is correct, the server end 2 generates a first secret authentication key (eCK.sub.1), which will be used in next transaction between the user and server. At this point, the request key (K.sub.A) and the first identification code (SID.sub.A) are cascaded as a combined data, and the server end 2 performs an XOR operation between the first secret authentication key (eCK.sub.1) and the value of the hash function of the combined data to generate a first calculated emergency verification code (eN.sub.X1′). Then, the inquiry key (K.sub.B) and the fourth arbitrary emergency code (eN.sub.b2) are cascaded as a combined data, and the server end 2 performs an XOR operation between the first secret authentication key (eCK.sub.1) and the value of the hash function of the combined data to generate a second calculated emergency verification code (eN.sub.y1′). Then, the second calculated emergency verification code (eN.sub.y1′), the fourth arbitrary emergency code (eN.sub.b2), the inquiry key (K.sub.B) and the second identification code (SID.sub.B) are cascaded as a combined data, and the server end 2 sets the value of the hash function of the combined data as a second emergency tested code (eV.sub.2′). Next, the value of the variable (em) is increased by the increment, and the value of the variable (em) is set as a first new emergency registration code (eTs.sub.a1-new). Next, the request key (K.sub.A), the first identification code (SID.sub.A) and the third arbitrary emergency code (eN.sub.a2) are cascaded as a combined data, and the server end 2 performs an XOR operation between the first new emergency registration code (eTs.sub.a1-new) and the value of the hash function of the combined data to generate a final emergency registration code (eTs). Then, the first calculated emergency verification code (eN.sub.X1′), the third arbitrary emergency code (eN.sub.a2), the final emergency registration code (eTs), the request key (K.sub.A) and the first identification code (SID.sub.A) are cascaded as a combined data, and the server end 2 sets the value of the hash function of the combined data as a third emergency tested code (eV.sub.3′). Then, the inquiry key (K.sub.B), the fourth arbitrary emergency code (eN.sub.b2) and the second identification code (SID.sub.B) are cascaded as a combined data, and the server end 2 sets the value of the hash function of the combined data as a first new emergency inquiry key (eK.sub.B1-new). Next, the server end 2 generates a first new emergency request key (eK.sub.A1-new). In this regard, the identification code (SID.sub.A) and the request key (K.sub.A) are cascaded as a combined data, and the server end 2 performs an XOR operation between the first new emergency request key (eK.sub.A1-new) and the value of the hash function of the combined data to generate an emergency registration code (x). Then, the server end 2 updates the request key (K.sub.A) with the first new emergency request key (eK.sub.A1-new). Finally, the server end 2 combines the first calculated emergency verification code (eN.sub.X1′), the second calculated emergency verification code (eN.sub.y1′), the second emergency tested code (eV.sub.2′), the third emergency tested code (eV.sub.3′), the final emergency registration code (eTs) and the emergency registration code (x) as a first emergency response code (eR.sub.2a), and sends the first emergency response code (eR.sub.2a) to the second user end 1b.
(46) In the second emergency answering step P3b′, with reference made to
(47) First, the second user end 1b verifies whether the second emergency tested code (eV.sub.2′) is correct first. Specifically, the second calculated emergency verification code (eN.sub.y1′), the second arbitrary emergency code (eN.sub.b1), the inquiry key (K.sub.B) and the second identification code (SID.sub.B) are cascaded as a combined data, and the second user end 1b verifies whether the second emergency tested code (eV.sub.2′) is correct using the value (eV.sub.2.sub._.sub.chk′) of the hash function of the combined data. If the second emergency tested code (eV.sub.2′) is incorrect, the second user end 1b terminates the connection. If the second emergency tested code (eV.sub.2′) is correct, the inquiry key (K.sub.B) and the second arbitrary emergency code (eN.sub.b1) are cascaded as a combined data, and the second user end 1b performs an XOR operation between the second calculated emergency verification code (eN.sub.y1′) and the value of the hash function of the combined data to generate a second secret authentication key (eCK.sub.2). Then, the inquiry key (K.sub.B), the second arbitrary emergency code (eN.sub.b1) and the second identification code (SID.sub.B) are cascaded as a combined data, and the second user end 1b sets the value of the hash function of the combined data as a second new emergency inquiry key (eK.sub.B2-new). Next, second user end 1b updates the inquiry key (K.sub.B) with the second new emergency inquiry key (eK.sub.B2-new), and combines the first calculated emergency verification code (eN.sub.X1′), the third emergency tested code (eV.sub.3′) and the final emergency registration code (eTs) as a second emergency response code (eR.sub.2b). Finally, the second user end 1b sends the second emergency response code (eR.sub.2b) to the first user end 1a.
(48) In the emergency verification step P4′, with reference made to
(49) First, the first user end 1a verifies whether the third emergency tested code (eV.sub.3′) is correct first. Specifically, the first calculated emergency verification code (eN.sub.X1′), the first arbitrary emergency code (eN.sub.a1), the final emergency registration code (eTs), the request key (K.sub.A) and the identification code (SID.sub.A) are cascaded as a combined data, and the first user end 1a verifies the third emergency tested code (eV.sub.3′) using the value (eV.sub.3.sub._.sub.chk′) of the hash function of the combined data. If the third emergency tested code (eV.sub.3′) is incorrect, the first user end 1a terminates the connection. If the third emergency tested code (eV.sub.3′) is correct, the request key (K.sub.A) and the identification code (SID.sub.A) are cascaded as a combined data, and the first user end 1a performs an XOR operation between the first calculated emergency verification code (eN.sub.X1′) and the value of the hash function of the combined data to generate a third secret authentication key (eCK.sub.3). Then, the request key (K.sub.A), the identification code (SID.sub.A) and the first arbitrary emergency code (eN.sub.a1) are cascaded as a combined data, and the first user end 1a performs an XOR operation between the final emergency registration code (eTs) and the value of the hash function of the combined data to generate a second new emergency registration code (eTs.sub.a2-new). Finally, the identification code (SID.sub.A) and the request key (K.sub.A) are cascaded as a combined data, and the first user end 1a performs an XOR operation between the emergency registration code (x) and the value of the hash function of the combined data to generate a second new emergency request key (eK.sub.A2-new). Finally, the first user end 1a updates the request key (K.sub.A) with the second new emergency request key (eK.sub.A2-new), and updates the preliminary registration code (Ts.sub.a) with the second new emergency registration code (eTs.sub.a2-new).
(50) It also noted that in the second embodiment above, the second user end 1b may also act as a server (e.g. a cloud server).
(51) Although the invention has been described in detail with reference to its presently preferable embodiments, it will be understood by one of ordinary skill in the art that various modifications can be made without departing from the spirit and the scope of the invention, as set forth in the appended claims.