The user shares a unique key with an authentication server. When the user sends a randomly generated message (the challenge) encrypted by the secret key to the authentication server, if the message can be matched by the server using its shared secret key, the user is authenticated. When implemented together with the password authentication, this method also provides a possible solution for two-factor authentication systems.[9]