| Require: the user identity ; the password ; the biometric data ; the smart card. |
| Ensure: authentication result: 0 for failure; 1 for success. |
(1) | : 5G user sends a service request message including and security level of the access service read from the smart card. |
(2) | : checks the highest security level in the service request message. If, then |
| Output 1 and Terminate the authentication process. |
| Else if, then go to Step 3. |
| Else if, then go to Step 8. |
| Else if, then go to Step 3. |
| sends an attach response to notify . |
(3) | 5G user chooses a new random number and sends to . |
(4) | Upon the receipt of the message, works as follows. |
(i) | If the timestamp is invalid, Output 0. Else, go ahead. |
(ii) | Search by in the database and decrypt with to obtain . |
(iii) | Generate a new random number and compute and . |
(iv) | Send to user . |
(5) | Upon the receipt of the message, works as follows. |
(i) | If the timestamp is invalid, Output 0. Else, go ahead. |
(ii) | Compute and . |
(iii) | Decrypt with to obtain . |
(iv) | Compute . If the equation is established, then go ahead. Else, Output 0. |
(v) | Compute and send to . |
(6) | Upon the receipt of the message, works as follows. |
(i) | If the timestamp is invalid, Output 0. Else, go ahead. |
(ii) | Verify . If it is, then go ahead. Else, Output 0. |
(7) | If, then output 1. Else, if, go ahead. |
(8) | computes and sends to . |
(9) | Upon the receipt of the message, works as follows. |
(i) | If the timestamp is invalid, Output 0. Else, go ahead. |
(ii) | Compute . |
(iii) | Verify . If the equation is established, go ahead. Else, Output 0. |
(iv) | Generate new numbers and calculate and . |
(v) | Calculate and . |
(vi) | Send to . |
(10) | Upon the receipt of the message, works as follows. |
(i) | If the timestamp is invalid, Output 0. Else, go ahead. |
(ii) | Calculate and |
(iii) | . If the two equations are established, then go ahead. Else, Output 0. |
| Generate and . |
(iv) | Replace with . Output 1. |