Introduction to Elliptic Curves CSCI 5857: Encoding and Encryption

Embed Size (px)

DESCRIPTION

Elliptic Curve Definition General mathematical form (Weierstraus equation) : y 2 = x 3 + ax + b For some a, b (curve parameters)

Citation preview

Introduction to Elliptic Curves CSCI 5857: Encoding and Encryption Outline Encryption as points on elliptic curves in space Adding points on an elliptic curve Elliptic curves and modular arithmetic Finding points on a modular elliptic curve Mathematical operations on modular elliptic curves Addition Multiplication Elliptic Curve Definition General mathematical form (Weierstraus equation) : y 2 = x 3 + ax + b For some a, b (curve parameters) Elliptic Curve Encryption Encryption: Transforming points on curve (P, K PU ) into another point (C) on same curve as C = P + K PU Need a definition of + so that sum of two points on a curve is also on the same curve R = P + Q where P = (x P, y P ) Q = (x Q, y Q ) R = (x R, y R ) Elliptic Curve Addition Case 1 Case 1: R based on line formed by P, Q (x P x Q, y P y Q ) Equations: = (y Q y P ) / (x Q x P ) x R = 2 x P x Q y R = (x P x R ) y P Elliptic Curve Addition Case 2 Case 2: P = Q, R based on tangent to curve (x P = x Q, y P = y Q ) Equations: x R = ((3x P 2 + a) / 2y P ) 2 - 2x P y R = ((3x P 2 + a) / 2y P ) 2 (x P x R ) y P Elliptic Curve Addition Case 3 Case 3: P = -Q, line does not intercept curve (x P = x Q, y P y Q ) R = 0 (additive identity) Point at infinity 0 = -0 Elliptic Curves over Z p Encryption requires modular arithmetic Must be difficult to recover original points from sum (original plaintext P from K PU and C) Modular arithmetic prevents working backward Define curve as E p (a, b) where p is the modulus, a, b are the coefficients of y 2 = x 3 + ax + b Looking for (x, y) such that y 2 = (x 3 + ax + b) mod p Note: points on curve are integers Finding Points on a Z p Curve Points on elliptic curve y 2 = x 3 + x + 1 for GF(13): Must find integer values for x, y < 13 such that (y 2 ) mod 13 = (x 3 + x + 1) mod 13 x = 0: y 2 mod 13 = 1 mod 13 y = 1 y = 1, 12 (-1 mod 13 = 12) x = 1: y 2 mod 13 = 3 mod 13 y = 4 (16 mod 13 = 3) y = 4, 9 Finding Points on a Z p Curve (cont.) Note: Not all values of x have a corresponding y x = 2: y 2 mod 13 = 11 mod 13 No solution for y (Can test all y < 13) x = 3: y 2 mod 13 = 31 mod 13 = 5 No solution for y (Can test all y < 13) x = 4: y 2 mod 13 = = 69 mod 13 = 4 y = 2 y = 2, 11 Resulting Points on a Z p Curve Points on elliptic curve y 2 = x 3 + x + 1 over GF(13): (12, 5)(12, 8) Elliptic Curve Addition Computing (x R, y R ) = (x P, y P ) + (x Q, y Q ) Necessary to turn 2 points corresponding to key, plaintext into point corresponding to ciphertext Use same equations for + as curves in space Main ideas: Addition/subtraction/multiplication in mod p Division = multiplication by inverse mod p Example: (4, 2) + (10, 6) on E 13 (1, 1) step 1: compute = (y Q y P ) / (x Q x P ) = (6 2) x (10 4) -1 mod 13 = 4 x 6 -1 mod mod 13 = 11 = 4 x 11 mod 13 = 5 step 2: compute x R = 2 x P x Q x R = 25 4 10 mod 13 = 11 step 3: compute y R = (x P x R ) y P y R = 5 x (4 11) 2 mod 13 = -37 mod 13 = 2 (4, 2) + (10, 6) = (11, 2) note: also on curve! Multiplication on an Elliptic Curve Multiplication = addition multiple times Necessary for some forms of elliptic curve cryptography Must use formula where P = Q for first addition Example: 3 x (1, 4) on E 13 (1, 1) 3 x (1, 4) = ((1, 4) + (1, 4)) + (1, 4) = (8, 1) + (1, 4) = (1, 9) Whats Next Let me know if you have any questions Continue on to the next lecture on Elliptic Curve Cryptography