0
$\begingroup$

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!

$\endgroup$
1
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ It might be worth pointing out that the difference between salted and unsalted only makes a difference if you have multiple target hashes you wish to find. With unsalted, the time to match them all will only be a little worse than the time to find one, with salted, the time taken will be proportional to the number you want to match. $\endgroup$ – Martin Bonner supports Monica Aug 19 at 14:21
  • $\begingroup$ Hashcat can calculate 2537.8 MH/s per second on GTX 2080 Ti. GPU is ~1000 times faster. $\endgroup$ – kelalaka Aug 19 at 17:56
  • $\begingroup$ Thanks for you comments all! Using Hashcat with powerful GPUs, is this somewhat more feasible? This is a ~5 year encrypted mystery/puzzle named Cicada 3301. A lot of people have offered to run hashes on their personal PC, and many offering use of computer labs etc. Would be internet history to successfully generate the hash that matches the one given in the clue (4 years ago). Alternative is solving 59 pages of Latin puzzles, ~4 have been completed so far. If the need is literally "millions of GPUs" then I guess this isn't feasible! $\endgroup$ – HTHazard Aug 19 at 18:07
  • $\begingroup$ It is feasible. Bitcoin miners reached ≈$2^{92}$ SHA-256 hashes per year in 06 Agust 2019. The only need is dedication. $\endgroup$ – kelalaka Aug 19 at 19:01
  • $\begingroup$ @kelalaka: yes, it is feasible for someone with a massive budget. It's not feasible for a couple of hundred volunteers with laptops. Note that the bitcoin miners (at least, the top end ones) do go with ASICs, and lots of them... $\endgroup$ – poncho Aug 19 at 19:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.