RFC 6090

Fundamental Elliptic Curve Cryptography Algorithms
Informational
February 2011
Abstract: Describes fundamental algorithms for Elliptic Curve Cryptography (ECC) including ECDH key agreement and ECDSA digital signatures. ECC underpins 5G SUCI concealment (ECIES), TLS key exchange, and certificate-based authentication throughout 3GPP.
Canonical source: https://www.rfc-editor.org/rfc/rfc6090  |  IETF Datatracker

1. Introduction

▶

Elliptic Curve Cryptography provides equivalent security to RSA with much smaller key sizes, making it ideal for constrained environments and mobile devices. A 256-bit ECC key provides roughly equivalent security to a 3072-bit RSA key.

In 3GPP 5G, ECC is used for SUPI concealment (SUCI) via ECIES (Elliptic Curve Integrated Encryption Scheme), TLS 1.3 key exchange (ECDHE), certificate authentication (ECDSA), and JWS token signing.

2. Key ECC Algorithms

▶
Algorithm Purpose 3GPP Usage
ECDH Key agreement TLS 1.3 key exchange, GBA
ECDHE Ephemeral key agreement TLS 1.3 (Perfect Forward Secrecy)
ECDSA Digital signatures Certificate signing, JWS tokens
ECIES Hybrid encryption 5G SUCI (SUPI concealment)

3. ECDH Key Agreement

▶

ECDHE (Ephemeral ECDH) generates fresh key pairs for each session, providing Perfect Forward Secrecy. If long-term keys are compromised, past session keys remain secure.

  Party A                                    Party B
|                                          |
|  Private key: a (random scalar)          |
|  Public key: A = a × G                   |
|                                          |
|  Private key: b (random scalar)          |
|  Public key: B = b × G                   |
|                                          |
|  Exchange public keys                    |
|  A ----------------------------------------> B
|  <---------------------------------------- B
|                                          |
|  Shared secret:                          |
|  S = a × B = a × (b × G)                |
|           = b × A = b × (a × G)         |
|           = a × b × G                    |
|                                          |
|  Both parties derive the same S          |
|  without revealing private keys          |
G = curve generator point (public parameter)
All operations are on the elliptic curve group

4. 3GPP Recommended Curves

▶
Curve Key Size Security Level Usage
P-256 (secp256r1) 256 bits 128-bit TLS, SUCI Profile A, certificates
P-384 (secp384r1) 384 bits 192-bit High-security TLS
X25519 256 bits 128-bit TLS 1.3 key exchange (preferred)
Curve25519 256 bits 128-bit SUCI Profile B

5. 5G SUCI Concealment (ECIES)

▶
  UE                                         SIDF (in UDM)
|                                            |
|  SUPI = IMSI (to be concealed)             |
|  HN public key (from USIM provisioning)    |
|                                            |
|  1. Generate ephemeral key pair (ek, EK)   |
|  2. ECDH: S = ek × HN_pub                 |
|  3. KDF: enc_key, mac_key = HKDF(S)       |
|  4. Encrypt MSIN: C = AES(enc_key, MSIN)  |
|  5. MAC: T = HMAC(mac_key, C)             |
|                                            |
|  SUCI = [MCC|MNC|EK|C|T]                  |
|  (concealed identity sent over air)        |
|------------------------------------------->|
|                                            |
|  SIDF decrypts:                            |
|  1. ECDH: S = hn_priv × EK                |
|  2. Derive keys, verify MAC, decrypt MSIN |
|  3. Reconstruct SUPI                       |
|                                            |
|  SUPI returned to AUSF                     |
|                                            |

6. Security Considerations

▶
  • Private keys must be generated from cryptographically secure random number generators
  • Validate public keys before use — invalid curve attacks can leak private keys
  • Use constant-time implementations to prevent side-channel timing attacks
  • P-256 requires careful implementation — X25519/Curve25519 are designed to be harder to misuse