3
$\begingroup$

I am an FPGA engineer and my last experiences were related to digital communication implementation. I am about to start an experience for the cryptography market.

In digital radio communication, FPGA technology is common and viable in "niche" markets: modulators for broadcast or space telemetry for example. Some are not viable for FPGAs but for ASICs as GPS receivers or mobile baseband processing.

I was wondering what is the trend in Public Key Cryptography. Is there a niche market for FPGAs? Or are all cryptography implementations in ASICs? For example, TLS is a large scale market and I guess its algorithms are implemented in ASICs/processors, am I right?

I would like to put some bright light on my questions.

$\endgroup$
3
  • 1
    $\begingroup$ A google of "fpga implementation of public key cryptography" gives a number of hits - might that answer your question? $\endgroup$
    – poncho
    Commented Apr 18, 2022 at 19:08
  • $\begingroup$ Not really. Implementable in FPGA does not necessarly mean viable, right? $\endgroup$ Commented Apr 19, 2022 at 8:28
  • $\begingroup$ Do you intend to cover the complexity of a suite of encryption algorithms as intended by TLS with an FPGA? Certainly possible. In my experience the workshare with processors is defined by what cannot by done in time in software. TLS is e.g. here en.wikipedia.org/wiki/GnuTLS $\endgroup$ Commented Apr 19, 2022 at 9:45

1 Answer 1

3
$\begingroup$

Disclaimer: I make software which tends to run on mass-market processors. So I'm not familiar with the kind of niche markets where FPGA would make sense.

It's very hard to design a cryptographic algorithm. Designing something that works functionally is easy, but designing something secure is hard — and if you don't need something secure, there's no point in doing any cryptography. As a consequence, cryptography tends to use only a small number of standard primitives. This is further exacerbated by the fact that one of the biggest use cases of cryptography is communication, and this requires all parties to agree on the algorithms, thus again standardization around a small number of primitives.

As a result, there's no room for niche primitives. So if something is worth accelerating, it's typically worth either designing an ASIC or even expanding a general-purpose processor. For example, AES acceleration is available on most high-end processors (x86, arm, …) and a growing number of microcontrollers. This is increasingly the case for SHA2 as well. Acceleration of public-key cryptography is less widespread, but common on some markets such as smartphones and some microcontroller market segments.

I can only think of two niche applications where dedicated circuits are worthwhile. One is brute-force work, for applications such as password cracking and cryptocurrency mining, which typically uses standard primitives in a very specific way where it can be advantageous to make a dedicated circuit for that specific way. For these applications, all of off-the-shelf CPU, off-the-shelf GPU, ASIC and FPGA are in the running, depending on the nature and amount of work. Another application is experimenting with new algorithms or new implementation techniques. For that use case, FPGA are definitely worthwhile — then you design a specialized circuit (or not) based on observations made on the FPGA.

$\endgroup$
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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