A method for authenticating, by a second user, the identity of a first user,
that
includes a challenge communication from the second user to the first user, a response
communication from the first user to the second user, and a verification by the
second user, includes the steps: selection by the first user of a private key f
in a ring R and a public key that includes (f) in a ring B that is mapped
from f using the ring homomorphism : RB, and publication by the
first user of the public key; generation of the challenge communication by the
second user that includes selection of a challenge c in the ring R; generation
of the response communication by the first user that includes computation of a
response comprising h in the ring R, where h is a function of c and f; and performing
of a verification by the second user that includes determination of (c)
from c, (h) from h, and an evaluation that depends on (h), (c)
and (f).