Method for authenticating, in an authentication server, a user having at his/her disposal a calculator comprising - a memory zone for storing at least one unique identifier specific to the calculator and a first secret key; and - a processor for at least calculating a non-invertible function; the method comprising: - the calculator sending its unique identifier to the authentication server; - the authentication server sending to the calculator a piece of information (challenge) and an action code; - the calculator sending to the authentication server: -- a first result of the non-invertible function depending on the piece of information (challenge) received from the authentication server, on the first secret key and on at least one piece of data specific to a unique or quasi-unique element of the calculator; -- a second result of the non-invertible function depending on the result of a Turing test passed by the user, the Turing test being conditioned by the action code; and -- a third result of the non-invertible function depending on the piece of information (challenge) received from the authentication server, on the first secret key and on a second secret key; - the authentication server verifying the validity of the unique identifier and of the first, second and third result, and the authentication of the user if all four of them are valid. - a memory zone for storing at least one unique identifier specific to the calculator and a first secret key; and - a processor for at least calculating a non-invertible function; - the calculator sending its unique identifier to the authentication server; - the authentication server sending to the calculator a piece of information (challenge) and an action code; - the calculator sending to the authentication server: -- a first result of the non-invertible function depending on the piece of information (challenge) received from the authentication server, on the first secret key and on at least one piece of data specific to a unique or quasi-unique element of the calculator; -- a second result of the non-invertible function depending on the result of a Turing test passed by the user, the Turing test being conditioned by the action code; and -- a third result of the non-invertible function depending on the piece of information (challenge) received from the authentication server, on the first secret key and on a second secret key; -- a first result of the non-invertible function depending on the piece of information (challenge) received from the authentication server, on the first secret key and on at least one piece of data specific to a unique or quasi-unique element of the calculator; -- a second result of the non-invertible function depending on the result of a Turing test passed by the user, the Turing test being conditioned by the action code; and -- a third result of the non-invertible function depending on the piece of information (challenge) received from the authentication server, on the first secret key and on a second secret key; - the authentication server verifying the validity of the unique identifier and of the first, second and third result, and the authentication of the user if all four of them are valid.