The purpose is the same as with hashing: given set of confidential documents, I want to process them and store something secure like salted hashes/bcrypt. Later, when new document is given, I want to check if it already exists in database.
Something like leak monitoring.
The problem is that if this new document is slightly modified version of the original one, system should also say that they are very similar.
Trying to solve this task, I considered first normalizing text (getting rid of punctuation, letter case, truncation, etc.) and then doing fuzzy duplicate search (near-duplicates and shingling).
Anyway, I am not sure that it is secure: for example, if shingle window is rather small, then brute force is possible. For window length = 3 and 50 letters, we get 125k combinations and few collisions. Salting wouldn't help either: attacker knows algorithm and can organize brute forcing not as 'xyz', but as 'xyzsalt' and try all 125k 'xyz' combinations. Who knows what else can be wrong with security of this aproach?
So, that is why I want to ask: are there some secure algorithms for fuzzy matching/near-duplicate searching?