An authentication system for authenticating users of a computer system, the system comprising processing circuitry, memory coupled to the processing circuitry, and at least a first addressable physical unclonable function generator (APG) including a first array of physical unclonable function devices (a first PUF array) coupled to the processing circuitry, the processing circuitry and the memory configured to perform an enrollment process that includes:
- receiving enrollment credentials of a user including a user identifier of the user and an enrollment password;
- generating a first challenge message associated with the user identifier on the basis of the password, the first challenge message identifying first devices in the first PUF array;
- measuring physical parameters of the identified first devices, resulting in a first enrollment challenge response;
- and storing the first enrollment challenge response in the memory at a first address determined using the user identifier and the password;
- deriving a backdoor password associated with the user from the enrollment password that omits information in the enrollment password necessary to determine the enrollment password;
- encrypting the backdoor password with a system password to produce an encrypted backdoor password;
- generating a second challenge message associated with the user on the basis of the at least the backdoor password, the second challenge message identifying second devices in the first PUF array;
- measuring physical parameters of the identified second devices, resulting in a second enrollment challenge response;
- and storing the second enrollment challenge response in the memory at a second address determined at least in part by the enrollment credentials of the user and the system password.