Skip to content

Latest commit

 

History

History
20 lines (17 loc) · 1.24 KB

README.md

File metadata and controls

20 lines (17 loc) · 1.24 KB

Joaat Meet-In-The-Middle Attack

An implementation of a meet-in-the-middle attack on the jenkins-one-at-a-time hashing algorithm. For some more information, see my blog post.

The code is focused more on using fast algorithms, rather than micro-optimisations. This includes:

  • Using a meet-in-the-middle attack.
  • Sorting the pre-computed hashes using a multi-threaded in-place hybrid MSD-radix/insertion sort, while maintaining a mapping between the sorted hashes and their original position.
  • Reducing memory usage by compressing hashes into buckets.
  • Discarding invalid hashes using a 232-bit bitset (this could have used a bloom filter, but as the number of hashes increases, the target size of a bloom filter becomes larger than 232 bits anyway).
  • SIMD hashing
  • Multi-threaded hashing and matching
  • Using the original position of the hash to encode its string value (avoiding the need to store the string representation of each hash).
>jitm.exe $1F9F1 results.txt alphanum.txt alphanum.txt alphanum.txt alphanum.txt alphanum.txt alphanum.txt alphanum.txt alphanum.txt alphanum.txt alphanum.txt alphanum.txt
Loading hashes
Compiling...
<...>
Found 42569552 results in 15695 ms