9

See RFC 5931 ยง 2.2.1 which talks about "finite field cryptography" as opposed to elliptic curve cryptography and it looks like it is describing the Diffie-Hellman protocol. But Diffie-Hellman is not a done over a finite field, so is this some different class of algorithm?

Melab
  • 4,178
  • 4
  • 24
  • 49

2 Answers2

9

"Finite field cryptography" is fancy language for group-based cryptography done over the integers modulo a prime (instantiating a field) to distinguish this more "classic" approach from the new fancier elliptic curve cryptography.

Example:
Finite Field Diffie-Hellman: Diffie-Hellman done in $\mathbb F_p$.

SEJPM
  • 46,697
  • 9
  • 103
  • 214
3

The term "finite field cryptography" exists to distinguish from group-based cryptography. It is true that every field contains two groups, but a group is not necessarily part of a field. Every prime number $p$ has a finite field $\mathbb{Z}_p$, and these prime fields are used in cryptosystems such as RSA and DSA.

The Diffie-Hellman key exchange operates strictly over a group, but it is okay to take field and ignore the unneeded parts, just focusing on doing exponentiation in the multiplicative group. (We can't use the additive group because multiplicative inverses are too easy to compute.)

Elliptic curves are a popular and powerful tool for asymmetric cryptography. These curves are merely groups, not fields - thus they don't fall under the umbrella term "finite field cryptography". You can add two points on a curve or take the additive inverse of a point. You can multiply a point by a scalar number, but this is just shorthand for repeatedly adding a point to itself. Elliptic curves are not fields because you cannot multiply two points together or take the multiplicative inverse of a point.

You could perhaps also look at the "finite" part of the term "finite field cryptography", but I am not aware of any practical cryptographic schemes that use an infinite field (such as unbounded rational numbers). This makes sense, because a finite field means that every value can be encoded in a constant amount of space (such as 256 bits), which is very convenient for practical implementations.

Nayuki
  • 232
  • 2
  • 10