Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the potential that the ASICs being developed for mining could be used for other cryptographic applications such as building rainbow tables? I know that for instance those that crack GSM with rainbow tables utilize systems similar to those for mining for building rainbow tables and decrypting GSM packets. Such systems are also used for building MD5, SHA, rainbow tables for traditional password/shadowfile cracking.

share|improve this question
up vote 22 down vote accepted

The ASICs are optimized for bitcoin mining. Not just Sha256(Sha256(x)) hashing, but very specifically bitcoin mining. You can't even use them for the Sha256(Sha256(x)) hashing in the rest of the bitcoin system, like hashing transactions.

The ASICs are made for hashing 80 bytes, where you give them the midstate from hashing the first chunk (64 bytes), and 12 bytes from the second chunk. They then try all variations of the last 4 bytes to try and find a hash that starts with 4 zero-bytes. Only values that result in the 4 zero-bytes are reported at all. That's basically what mining is.

The ASIC could aid in password cracking if:

  • the hashes are generated with sha256(sha256(x))
  • salt + password = 80 bytes
  • the hash starts with 4 zero-bytes

TLDR; forget about it.

share|improve this answer

ASICs for BTC mining are optimized for one calculation: SHA256(SHA256(x)). They can not be used to calculate MD5(x) or even SHA256(x), so unless you use double-SHA256 to hash your passwords, you should not be worried.

share|improve this answer
If you use double-SHA256 for password hashes and someone is able to download your database, an ASIC miner chip would make bruteforce cracking these passwords a lot faster. The hashrate of the chip is the rate at which they can attempt to find the password for a hash. – bananer Jan 23 '13 at 14:39
The question though is how does this change current risk models for double-SHA256 based authentication designs? Should people avoid using it? Would double-SHA be more secure now than double-SHA256? – gesell Jan 23 '13 at 15:51
Right, using double-SHA256 as a hash function in security systems is a bad idea going forward. Applying a hash function twice usually does not make a lot of sense anyways, if you want a stronger hash just use SHA512. For more info on the SHA family of hash functions, see – bananer Jan 23 '13 at 17:27
You probably shouldn't be worried about double-sha256 passwords either since for the purpose of password cracking you're looking for a collision in a 2^256 key space. The current gen ASICs make that much faster, but an exhaustive search of that large a key space with a 60GH/s ASIC would still take 6.1e+58 years – David Perry Jan 23 '13 at 17:56
@bananer: The hashrate is the rate at which they can attempt to find the password assuming they can load candidate passwords to the chip at that rate, which would be nearly impossible with an ASIC meant for mining. They just don't have high-bandwidth paths into their mining cores because they have no need for them and that would take up lots of space. – David Schwartz Jan 24 '13 at 5:45

A potential use I can think of is for aiding mailing servers using a variant of HashCash to validate they're not spammers: should HashCash users start using SHA-2 instead of SHA-1 for the proof-of-work, then ASIC miners could be reused to aid mail severs send authenticated mails to large distribution lists, thus reducing the cost for honest corporate (or even personal, should the need arise!) massive mailing.

Of course, this also means spammers could simply get these machines to reduce the chance their mails get identified as the garbage they are - buying an ASIC would simply become another "investment" needed to start a spamming business. So here goes the egg and chicken problem...

share|improve this answer

Lets say you want to build a rainbow table of double-sha-256, you then want to calculate 2^256 hashes which is 1.579*10^77 hashes lets divived by on the average ASIC power we have (one at 30Ghash/s):

1.579*10^77 hash / 30,000,000,000 hash/s
3.8596*10^66 seconds
Or 1.2238*10^59 years

Which is, correct me, more than the time of the UNIVERSE!

And if we took the actual bitcoin network power (@ about 20 Thash/s), we would still wait 1.8358*10^56 YEARS. Which is not even really faster.

So well good luck trying to do a rainbow table, I guess.

share|improve this answer
Each of the 1.579e77 hashes would also need 32 bytes (256 bit) in your database. What is that, like a galaxy worth of microSDs? – bananer Jan 24 '13 at 23:51
Yeah I didn't thought of that or what would be the space needed in 1 TB harddrive? – Gopoi Jan 25 '13 at 1:43
It's still useful to build rainbow tables for passwords, even if you can't cover all cases, as most people use short passwords without special characters. I bet there are ASICs out there built to do it too... – Highly Irregular Jan 25 '13 at 18:51
Highly Irregular raises a valid point... How difficult would it be to create a rainbow table for all passwords with just English alphanumeric chars (including whitespace) of, at most, 15 characters long? Using an ASIC to do the hashing, this starts to look feasible, probably doable in some months - after which such rainbow tables could be used to scan the addresses, looking for weakly created private keys... – Joe Pineda May 30 '13 at 23:43

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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