0

We are given a list of possible strings, there are $32^{16}$ ($=2^{80}$) to be exact.

We also have the unsalted SHA512 of the original target string.

How long would it take to go through those strings, generate an unsalted SHA512 hash and then check if that hash matches the target hash?

It's for a research project, we have labs full of computers/processing power, and additionally/potentially hundreds of people willing to run software on their computer for it as well, so possibly some sort of blockchain design?

We really are just looking for input or for someone to validate/invalidate this idea. Thanks for your feedback!

AleksanderCH
  • 6,511
  • 10
  • 31
  • 64

1 Answers1

1

A brute force search is probably impractical with your resources.

It appears that a CPU-based SHA-512 implementation might be able to do 2,000,000 short hashes per second per core (the figures I have are a bit slower - I'm assuming things will get a bit faster)

Given $32^{16}$ target images, that translates to approximately 20,000,000,000 core-years to search through the entire list (or about have that to get a 50% chance of finding it). If you have 1,000,000 volunteered computers, and each computer has 10 cores, that translates to an expected time of 1000 years to get to a 50% chance of finding it.

A quick look at GPU performance looks a little closer to practical; however you'll still need millions of dedicated GPUs to get the time down to a practical level.

About the only way to do it practically would be to go with FPGAs or (better yet) dedicated ASICs - either approach would appear to be out of scope for what you have.

poncho
  • 154,064
  • 12
  • 239
  • 382