Se hai relativamente pochi pezzi di testo (ad esempio, intorno a N = 1000 pezzi di testo), e va bene che il tuo sistema occasionalmente dia un "falso positivo",
potresti prendere in considerazione l'utilizzo di un hash troncato.
Ad esempio:
Alice ha un database di circa N = 1000 documenti sensibili su un computer protetto che normalmente è spento.
Alice è disposta ad avere un tasso di errore falso positivo di e = 1/100.
Prima che il computer sia spento, Alice usa quel computer con qualsiasi funzione di hash crittograficamente protetta (SHA-3, BLAKE, Argon2, ecc.) per cancellare ogni documento (magari usando lo stesso valore di sale pubblicato pubblicamente per tutti i 1000), quindi
troncare l'hash a log2 (N / e) = log2 (1000 * 100) = circa 17 bit,
quindi copia gli hash troncati a 17 bit su una chiavetta USB, quindi posiziona la chiavetta USB in un server separato che Alice mantiene acceso e consente al pubblico di accedere.
Successivamente, Bob ha in mano alcuni documenti presumibilmente sensibili e si chiede se sia lo stesso di uno di quei documenti precedenti.
Quindi Bob mette il documento in mano e confronta il suo hash troncato a 17 bit con ciascuno dei circa 1000 valori hash sul server (probabilmente usando una ricerca binaria relativamente veloce).
Il risultato sarà sempre uno dei seguenti:
- Nessuna corrispondenza: no, quel documento non è sicuramente sul computer protetto
- Corrispondenza: il documento potrebbe trovarsi sul computer protetto.
Questo algoritmo è abbastanza resistente al "imparare l'attacco di informazioni rimanenti",
perché ci sono così tanti falsi positivi è difficile per un utente malintenzionato capire qual è l'effettiva informazione rimanente.
Se qualcuno genera casualmente un mucchio di documenti (nessuno dei quali corrisponde esattamente a nessuno dei documenti sensibili), mi aspetto che circa l'1% di quei documenti abbia un valore hash coincidente, dando il "falso positivo" di "Quello il documento potrebbe essere sul computer protetto ".
Il restante 99% di questi documenti indica "No, quel documento non è sicuramente sul computer protetto".