Elliptic Curve Cryptography (ECC)
Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields.
Algorithms: 1. ECDSA (Signatures). 2. ECDH (Key Exchange). 3. EdDSA (Modern signatures). Curves: NIST P-256, Curve25519, secp256k1 (Bitcoin).
graph LR
Center["Elliptic Curve Cryptography (ECC)"]:::main
Rel_data_modeling["data-modeling"]:::related -.-> Center
click Rel_data_modeling "/terms/data-modeling"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explain Like I'm 5
Imagine you are trying to find a specific point on a giant, complex roller coaster track. It's very easy for you to zoom along the track following the rules, but for someone else trying to look at where you ended up and figure out where you started, it's almost impossible. That 'roller coaster' is an elliptic curve, and it's what makes this type of [encryption](/en/terms/encryption) so strong.
🤓 Expert Deep Dive
Technically, ECC's security rests on the 'Elliptic Curve Discrete Logarithm Problem' (ECDLP). Unlike integer factorization used in RSA, there is no sub-exponential algorithm known to solve the ECDLP. An elliptic curve is defined by an equation like y² = x³ + ax + b. Cryptography is performed on a discrete set of points on this curve within a 'Finite Field'. The core operation is 'Scalar Multiplication' (P + P + ... + P = kP), where 'k' is the private key and 'kP' is the public key. This operation is easy to perform in one direction but virtually impossible to reverse. Common implementations include ECDSA for signing and ECDH for establishing a shared secret over an insecure channel. Modern protocols like TLS 1.3 rely heavily on ECC curve 'X25519'.