A computer-implemented method for communication between a first computer entity and a second computer entity, the method comprising performing, by the second computer entity, at least part of an authentication operation in which the second computer entity proves, to the first computer entity, knowledge of a predefined secret password π as a value whose knowledge is to be proven in the authentication operation,
- wherein each of the first and second computer entities comprises a computer processor executing associated computer instructions and operating on associated data;
- said at least part of the authentication operation comprising the second computer entity performing the following operations in interacting with the first computer entity:
- determining, from the password π known to the second computer entity as a value whose knowledge is to be proven in the authentication operation, a predefined position in a database, wherein the predefined position depends on the password π and wherein the predefined position and the password π are not revealed by the second computer entity to the first computer entity;
- executing a protocol in which the second computer entity sends one or more queries for data in a database, the queries being for data in the predefined position in the database, the queries not informing the first computer entity of the predefined position, wherein the second computer entity receives one or more responses to the queries from the first computer entity;
- wherein the first computer entity knows a first position in the database, wherein the first position is not revealed by the first computer entity to the second computer entity;
- wherein if the password π is known to the first computer entity and is used by the first computer entity to determine the first position then the predefined position is the same as the first position;
- proving that the second computer entity knows the password π as a value whose knowledge is to be proven in the authentication operations, wherein proving that the second computer entity knows the password π as a value whose knowledge is to be proven in the authentication operation comprises the second computer entity sending data depending on the predefined position to the first computer entity for enabling the first computer entity to check whether or not the first position determined by the first computer entity and unrevealed to the second computer entity is the same as the predefined position, the sent data not revealing the predefined position to the first computer entity.