The application provides a
password-based
authentication key agreement method based on a lattice, which allows a user to use a
password to agree with a
server on a
session key and authenticate the user identity. The method is constructed based on an ideal lattice, and its security is established on a ring-based
learning problem with errors, so that the method can effectively
resist quantum attacks. The user's credentials are saved in the form of
password-encrypted in the
server end, and only the user with the correct password can decrypt the legal credentials and establish the subsequent
session key. When the
session key is established, the user and the
server perform an
authenticated key exchange with a key hiding attribute to prevent the user's credential information from being leaked. Even if an enemy obtains the user's password-encrypted credential
ciphertext and exhaustively searches the password space to decrypt the
ciphertext to obtain a possible user credential set, the correct password corresponding to the credential cannot be identified from the set, so the application can
resist offline dictionary attacks. In addition, two-way key confirmation can ensure the consistency of the session key and verify the user identity.