Score:3

What does it mean: Hardware vs software implementation of a cryptosystem

us flag

While reading some cryptography papers, I passed by some new terms like the hardware and software implementation of encryption systems.

The question: what are the hardware and the software implementations of encryption systems? And what is the difference between them?

Score:5
ng flag

A software implementation is one running on a standard CPU or microprocessor, that executes mostly sequentially simple general instructions not dedicated to cryptography. The cryptographic algorithm is expressed as such instructions, perhaps after compilation from a less low level language, like C.

A hardware implementation runs on something else. That could be an ASIC, an FPGA. Nowadays that's often a dedicated area of a larger Integrated Circuit; e.g. a typical bank Smart Card includes dedicated hardware for 3DES, AES, RSA or/and Elliptic Curve Cryptography. Nowadays, the cryptographic algorithm is typically translated into a design expressed in some Hardware Description Language such as VHDL, then compiled into a silicon design or the configuration of an FPGA.

Hardware implementations are potentially orders of magnitude faster or/and less power-hungry than software ones, for the same algorithm. An extreme example of that is bitcoin miners, which boast efficiencies like 18⋅10-12 Joule per SHA-256. On the other hand, hardware implementations are much more complex to design. There are middle grounds, e.g. modern CPUs often include instructions that perform some step of a larger cryptographic algorithm, like AES-NI or SHA-256 extensions, with matching dedicated circuitry on the CPU die; and GPUs.

Hardware implementations generally can't be modified on the field (that's impossible for silicon). Such field changes are typically easier for software implementations (both for legitimate users and adversaries). There are exceptions: many FPGAs can be reprogrammed (sometime routinely, like at every system reset); an ASIC can be reconfigurable, within designed-in limits; software can be in ROM, thus immutable.

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.