Hay tres partes involucradas en un proceso repetido de transferencia de datos: Cliente C, Broker B y Proveedor P. Puede haber múltiples clientes C.
El agente B gestiona la base de datos de clientes de P. Cada cliente tiene un número de identificación nacional único.
El cliente C puede enviar solicitudes para recuperar información de un ID de cliente de la base de datos de clientes de P (que B gestiona).
El requisito es: B no debe conocer los ID de los clientes, incluso si B las solicitudes de información de la base de datos P y de C.
En otras palabras:
-
P puede compartir datos con el Broker B sin revelar ID de clientes (por ejemplo, cifrar la ID de cliente con una clave pública).
-
C puede consultar los datos de P que B administra, mediante el envío de la identificación del cliente cifrada a B.
-
B puede hacer coincidir la identificación cifrada de C con la clave cifrada de P para ubicar un registro de consumidor.
-
B no puede atacar con fuerza bruta el cifrado para obtener información sobre las ID de los verdaderos clientes.
Planeamos asignar a P una clave pública. P usa esta clave para cifrar las ID de los clientes de los datos que B administra. C usa esta clave para cifrar las ID de los clientes que deben ser consultas.
El número de ID de clientes únicos es de ~ 10 mil millones de números. Por lo tanto, es bastante rápido atacar por fuerza bruta a esta lista de 10 mil millones de números.
Mi pregunta es: ¿Existe una solución determinista de clave pública que satisfaga (1), (2), (3) y (4).