Si tiene relativamente pocos fragmentos de texto (por ejemplo, alrededor de N = 1000 fragmentos de texto), y está bien que su sistema dé ocasionalmente un "falso positivo",
puedes considerar usar un hash truncado.
Por ejemplo:
Alice tiene una base de datos de alrededor de N = 1000 documentos confidenciales en una computadora segura que normalmente está apagada.
Alice está dispuesta a tener un índice de error falso positivo de e = 1/100.
Antes de que la computadora se apague, Alice la usa con cualquier función hash segura criptográficamente (SHA-3, BLAKE, Argon2, etc.) para codificar cada documento (quizás utilizando el mismo valor de sal publicado públicamente para los 1000), luego
truncar el hash a log2 (N / e) = log2 (1000 * 100) = alrededor de 17 bits,
luego copie esos hashes truncados de 17 bits en una memoria USB y luego coloque esa memoria USB en un servidor separado que Alice mantiene encendido y permite que el público acceda.
Más tarde, Bob tiene un documento presuntamente sensible en la mano y se pregunta si es el mismo que uno de esos documentos anteriores.
Así que Bob tiene el documento a mano y compara su hash truncado de 17 bits con cada uno de los aproximadamente 1000 valores de hash en el servidor (posiblemente utilizando una búsqueda binaria relativamente rápida).
El resultado siempre será uno de:
- No coincide: No, ese documento definitivamente no está en la computadora protegida
- Coincidencia: ese documento podría estar en la computadora protegida.
Este algoritmo es bastante resistente a "aprender el ataque de información restante",
porque hay tantos falsos positivos que es difícil para un atacante descubrir cuál es la información restante real.
Si alguien genera aleatoriamente un grupo de documentos (ninguno de los cuales coincide exactamente con ninguno de los documentos confidenciales), espero que aproximadamente el 1% de esos documentos tengan un valor hash coincidente coincidente, dando el "falso positivo" de "Eso El documento podría estar en la computadora segura ".
El 99% restante de esos documentos indica "No, ese documento definitivamente no está en la computadora protegida".