A Brief Introduction to Elliptic Curve Cryptography
A Brief Introduction to Elliptic Curve Cryptography
Or: A headache in 15 minutes Don Owen March 21st, 2016
1/13
A Brief Introduction to Elliptic Curve Cryptography Or: A headache - - PowerPoint PPT Presentation
A Brief Introduction to Elliptic Curve Cryptography A Brief Introduction to Elliptic Curve Cryptography Or: A headache in 15 minutes Don Owen March 21 st , 2016 1/13 A Brief Introduction to Elliptic Curve Cryptography Elliptic Curve 2/13 A
A Brief Introduction to Elliptic Curve Cryptography
1/13
A Brief Introduction to Elliptic Curve Cryptography
2/13
A Brief Introduction to Elliptic Curve Cryptography
◮ More energy efficient than legacy asymmetric
◮ Smaller keys ◮ Smaller signatures ◮ Easier keygen
3/13
A Brief Introduction to Elliptic Curve Cryptography
◮ ECC uses Finite Field Arithmetic and the
◮ The Elliptic Curve Discrete Logarithm Problem
◮ ECDLP: Given points Q, P, find an integer d
4/13
A Brief Introduction to Elliptic Curve Cryptography
1 2 3 4 5 1 2 3 P 2P
1 +a
2∗y1 ) − 2 ∗ x1
1 +a
2∗y1 )(x1 − x3) − y1
5/13
A Brief Introduction to Elliptic Curve Cryptography
1 2 3 4 5 1 2 3 P Q P+Q
x2−x1)2 − x1 − x2
x2−x1)(x1 − x3) − y1
6/13
A Brief Introduction to Elliptic Curve Cryptography
◮ a.k.a modular arithmetic ◮ ECC can utilize both GF(p) and GF(2m) ◮ Multi-precision computations such that
◮ Add, subtract, multiply, and inversion ◮ Requires a reduction step to map result back
7/13
A Brief Introduction to Elliptic Curve Cryptography
◮ Addition: (2 + 5) modulo 7 = 0 ◮ Subtraction: (3 − 6) modulo 7 = 4 ◮ Multiplication: (5 × 4) modulo 7 = 6 ◮ Division: (2 ÷ 4) modulo 7 = 4
8/13
A Brief Introduction to Elliptic Curve Cryptography
◮ Pick a random integer d between 1, n − 1 ◮ Compute Q = d ∗ P ◮ Q = Public Key ◮ d = Private Key
9/13
A Brief Introduction to Elliptic Curve Cryptography
◮ Select k randomly between 1, n − 1 ◮ Compute k ∗ P = (x1, y1) ◮ Compute r = x1 mod n ◮ If r = 0, start again. ◮ Compute e = Hash(m) ◮ Compute s = k−1(e + d ∗ r)mod n ◮ If s = 0, start again. ◮ Signature = (r, s)
10/13
A Brief Introduction to Elliptic Curve Cryptography
◮ Alice computes dA ∗ QB ◮ Bob computes dB ∗ QA ◮ shared secret
11/13
A Brief Introduction to Elliptic Curve Cryptography
◮ Map message m into a point M on curve. ◮ Pick a random integer k between 1, n − 1 ◮ Compute C1 = k ∗ P ◮ Compute C2 = M + k ∗ Q ◮ Ciphertext = C1, C2
12/13
A Brief Introduction to Elliptic Curve Cryptography
◮ NIST FIPS 186-4: Defines ECDSA and 10
◮ NSA Suite B: P-384 used for US Gov. ◮ Curve25519: A non-government-affiliated,
◮ ...and others
13/13