13. A method, comprising: receiving, by a processor, a plurality of artifact fingerprints generated from a plurality of artifacts, wherein the plurality of artifact fingerprints are generated by generating shingles from text within each of the plurality of artifacts so that there at least one character overlap between adjacent shingles; and cryptographically hashing the shingles to generate a plurality of artifact fingerprints; storing the artifact fingerprints in a database; receiving, by the processor from a querying entity, a plurality of query fingerprints generated by cryptographically hashing shingles of a plaintext query, wherein a character overlap between shingles generated from the plaintext query is greater than the at least one character overlap of the shingles generated from the artifacts; determining, by the processor, whether any of the query fingerprints match any of the artifact fingerprints stored in the database by performing a cosine distance calculation; and outputting an indication of an entity that provided an artifact containing a matched fingerprint to the querying entity without revealing plaintext of the artifact containing the matched fingerprint.
13. A method, comprising: receiving, by a processor, a plurality of artifact fingerprints generated from a plurality of artifacts, wherein the plurality of artifact fingerprints are generated by generating shingles from text within each of the plurality of artifacts so that there at least one character overlap between adjacent shingles; and cryptographically hashing the shingles to generate a plurality of artifact fingerprints; storing the artifact fingerprints in a database; receiving, by the processor from a querying entity, a plurality of query fingerprints generated by cryptographically hashing shingles of a plaintext query, wherein a character overlap between shingles generated from the plaintext query is greater than the at least one character overlap of the shingles generated from the artifacts; determining, by the processor, whether any of the query fingerprints match any of the artifact fingerprints stored in the database by performing a cosine distance calculation; and outputting an indication of an entity that provided an artifact containing a matched fingerprint to the querying entity without revealing plaintext of the artifact containing the matched fingerprint. 17. The method of claim 13 , wherein prior to cryptographically hashing the shingles generated from the text within each of the plurality of artifacts, the method further comprises: comparing, by the processor, the plurality of shingles generated from the text within each of the plurality of artifacts to a stop word list; and removing, by the second processor, any shingle of the shingles generated from the text within each of the plurality of artifacts matching a word in the stop word list.