Curve448

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found. In cryptography, Curve448 or Curve448-Goldilocks is an elliptic curve potentially offering 224 bits of security and designed for use with the elliptic-curve Diffie–Hellman (ECDH) key agreement scheme. Developed by Mike Hamburg of Rambus Cryptography Research, Curve448 allows fast performance compared with other proposed curves with comparable security.[1] The reference implementation is available under an MIT license.[2] The curve was favored by the Internet Research Task Force Crypto Forum Research Group (IRTF CFRG) for inclusion in Transport Layer Security (TLS) standards along with Curve25519. In 2017, NIST announced that Curve25519 and Curve448 would be added to "Special Publication 800-186", which specifies approved elliptic curves for use by the US Federal Government,[3] and in 2023 it was approved for use in FIPS 186-5.[4] Both are described in RFC 7748. The name X448 is used for the DH function.

Mathematical properties

Hamburg chose the Solinas trinomial prime base p = 2448 − 2224 − 1, calling it a "Goldilocks" prime "because its form defines the golden ratio φ ≡ 2224". The main advantage of a golden-ratio prime is fast Karatsuba multiplication.[5]

The curve Hamburg used is an untwisted Edwards curve Ed: y2 + x2 = 1 − 39081x2y2. The constant d = −39081 was chosen as the smallest absolute value that had the required mathematical properties, thus a nothing-up-my-sleeve number.

Curve448 is constructed such that it avoids many potential implementation pitfalls.[6]

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. http://ed448goldilocks.sourceforge.net/
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.