Similarity Hashing Based on Levenshtein Distances
Cyber forensics, Computer forensics, Hashing (Computer science)
Computer Engineering | Computer Sciences | Electrical and Computer Engineering | Forensic Science and Technology
It is increasingly common in forensic investigations to use automated pre-processing techniques to reduce the massive volumes of data that are encountered. This is typically accomplished by comparing fingerprints (typically cryptographic hashes) of files against existing databases. In addition to finding exact matches of cryptographic hashes, it is necessary to find approximate matches corresponding to similar files, such as different versions of a given file.
This paper presents a new stand-alone similarity hashing approach called saHash, which has a modular design and operates in linear time. saHash is almost as fast as SHA-1 and more efficient than other approaches for approximate matching. The similarity hashing algorithm uses four sub-hash functions, each producing its own hash value. The four sub-hashes are concatenated to produce the final hash value. This modularity enables sub-hash functions to be added or removed, e.g., if an exploit for a sub-hash function is discovered. Given the hash values of two byte sequences, saHash returns a lower bound on the number of Levenshtein operations between the two byte sequences as their similarity score. The robustness of saHash is verified by comparing it with other approximate matching approaches such as +sdhash+.
Breitinger, Frank; Ziroff, Georg; Lange, Steffen; and Baier, Harald, "Similarity Hashing Based on Levenshtein Distances" (2014). Electrical & Computer Engineering and Computer Science Faculty Publications. 64.
Breitinger, Frank; Ziroff, Georg; Lange, Steffen; Baier, Harald (2014): Similarity Hashing Based on Levenshtein Distances. In: Peterson, Gilbert; Shenoi, Sujeet (Ed.): Advances in Digital Forensics X, pp. 133-147, Springer Berlin Heidelberg, 2014, ISBN: 978-3-662-44951-6.