Information Security Stack Exchange is a question and answer site for information security professionals. Join them; it only takes a minute:

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

I'm currently researching what malicious activities can one do with a computer containing a high-end GPU. So far the only uses I found were Bitcoin mining and password cracking. Are there any other possible malicious uses for such computers?

share|improve this question
up vote 7 down vote accepted

A high-end GPU makes it very easy to do any sort of computational process that can be highly parallelized, each individual process doesn't need a lot of memory, and requires similar operations to be done to differing starting input.

So if you have md5 hashes with salts that you want to find the password that goes with, its trivial; e.g., generate a simple scheme to feed the GPU billions of passwords per second to try simultaneously and compare to the hashes you have. You could also do things like try constructing hash rainbow tables as well.

Another good candidate would be brute-forcing decryption of a file that's encrypted with a strong cipher. A GPU could plausibly be used to parallelize the process of doing trial decryption under many candidate passphrases.

I wouldn't say bitcoin mining is malicious; its basically the intended method of generating currency (except a GPU makes it more efficient).

Off the top of my head could also use a GPU to better crack simple CAPTCHAs using computer vision techniques.

share|improve this answer
Proof of concept: IGHASHGPU can easily brute force MD5 hashes at a rate of 1 billion tests per second on high end hardware. – Frank Farmer May 19 '12 at 16:45
Your comments about brute-force decryption are inaccurate and reflect a misunderstanding of the link you posted. That link is about encrypting a single large file by someone who knows the password, which for CBC mode is not parallelizable. This question is about decrypting a file by someone who doesn't know the password. The latter is parallelizable: each guess at the password can be tried separately, in parallel. To test a guess, you only need to decrypt a few blocks, not the whole file. (And if you wanted to decrypt the whole file, CBC mode decryption parallelizes well.) – D.W. May 21 '12 at 0:45
@D.W. - You are probably right. The step of generating a decryption key from a password is easily parallelizable with a GPU (exactly similar to hashing). Applying each key to completely decrypt a file is not easily parallelizable with a GPU, and I was imagining some sort of bottleneck there with checking that the file appears to have been successfully decrypted (unlike a hash where you know the exact outcome hash you want the password to turn into). However, you can just attempt to decrypt say the first (few) block(s) and do a check if it appears to be valid data. – dr jimbob May 21 '12 at 4:15
OK, thanks, dr jimbob. I've edited the answer to reflect this. – D.W. May 21 '12 at 4:33

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.