Score:3

What is the most viable and common hardware for public key cryptography implementation?

bm flag

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.

poncho avatar
my flag
A google of "fpga implementation of public key cryptography" gives a number of hits - might that answer your question?
dsp_curious avatar
bm flag
Not really. Implementable in FPGA does not necessarly mean viable, right?
us flag
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 https://en.wikipedia.org/wiki/GnuTLS
Score:3
cn flag

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.

Habib avatar
es flag
I think it is good to mention COPACABANA. A brute force technique based on FPGAs: https://www.iacr.org/archive/ches2006/09/09.pdf
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.