Given an image and its corresponding MD5 hash, the goal is to construct a 2nd preimage.
The project is divided into 3 phases.
1. Preimage attack to the step-reduced MD5 algorithm. This is a simple competence test.
2. 2nd preimage attack against a personalized test image. This is needed because the real image is confidential and will be provided only to the one who is able to solve this phase.
3. 2nd preimage attack against the real image.
Details and step by step instructions:
1. Find a preimage for the 16-step reduced MD5 hash "3f794570a40bac07dbd8ef7430d4e617". The step count in main loop/iteration of the MD5 hash is 64 by default. Use 16 steps instead of 64 here. This means finding the preimage will be trivial, the implementation should not take more than a few hours.
The purpose of this puzzle is, since generating and uploading the test image takes time, we want to deal with qualified people only.
2. The preimage you just found, upload it somewhere.
3. Message us / bid here at freelancer. The message should contain the URL to the uploaded image.
4. After verification we construct a test image for you. The test image is very similar to the real one. It is ~8GB with ~3GB of valid data, rest is random. The test image will be also personalized, which means your username and a timestamp will be embedded.
5. You will receive a reply with URL to the test image just generated along with its MD5 hash.
6. Analyze the image and construct a 2nd one that hashes to the same MD5 hash. There is no restriction about the 2nd preimage (size, prefix, anything). The goal is to get an image which differs at least in 1 bit compared to the original.
7. Upload your image and message us with the URL.
8. After verification we will send you 3000USD as milestone.
9. The real preimage will be uploaded and you will receive the download URL and the image's MD5 hash.
10. Rerun your algorithm against the real image. Same restrictions apply here as about the test image.
11. Upload the 2nd preimage and message us with the URL.
12. After verification we will send you the rest of the money, 7000USD.
The procedure above tries to secure both parties. We wont pay anything in advance and you can be sure that you will get your money if you succeed.
IMPORTANT: the 2nd preimage attacks (phase 2 and 3) must work against the standard (NOT step reduced) MD5 algorithm!