Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. 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 have a FPGA and am curious what cryptographic applications I can use with it. I'm just a hobbyist / security researcher and not a professional cryptographer.

Since I'm creating my own curriculum, what cryptographic goals should I have with regards to the FPGA device? (note I'm not looking for FPGA programming advice, that's a goal all in of itself)

I'm also interested in learning what won't work with a FPGA... in other words, what algorithms are or aren't suited for a FPGA?

share|improve this question
You could take a look at the scrypt KDF, which is specifically designed to defeat FPGA brute-forcing as it requires large amounts of on-chip memory for each KDF invocation. – Thomas Nov 27 '12 at 1:33
up vote 5 down vote accepted

As for goals, there are typically two that you would look to when implementing something on an FPGA: first, minimizing latency; second, maximizing throughput.

To minimize latency, you would use the FPGA to perform a computation much faster than you could do on a CPU. An example here would be the DES cipher. DES is well suited for hardware and you can get significant reductions in latency using an FPGA.

The second goal to potentially look at is maximizing throughput. The idea here is that you could potentially use hardware to encrypt 100s of streams in parallel.

As to which algorithms are not suited for FPGA, Thomas pointed out scrypt. I'm guessing other KDFs are similar in that they try to make it extremely hard for an attacker to gain any advantage by using an FPGA. Of related interest might be this question on bcrypt using GPUs.

share|improve this answer

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.