Elliptic Curve Cryptography Implementation & PKI Adoption Brian Saville Jonathan Mitchell Overview • • • • • • • Background of ECC and PKI ECC Weaknesses Experimentation Results ECC Adoption Conclusion Questions Elliptic Curves All Elliptic Curves come in the following form: y2 = x3 + ax + b Mathematical Properties Can define a new algebra on Elliptic Curves with interesting mathematical properties: • first, add a point-at-infinity O • point addition: draw a line through 2 points. the sum is the opposite of where the line hits the curve a 3rd time. • adding point to itself: use tangent line (point doubling) • if vertical, sum is "O" • this can also be determined algebraically. Point Addition: Rules Finite Elliptic Curves • • • • • Encryption works better with integers. Wrap elliptic curves in finite field (modulo) Pretty curves and lines no longer applicable Algebra still works Curves now look like: y2 mod p = (x3 +ax+b) mod p Finite Point Addition: Rules Uses in Cryptography Mathematical properties are useful for PKI • Can generate asymmetric (public/private) keys • Can encrypt/decrypt data Stronger than RSA Key Generation Agree on the following (public): • Curve parameters (a, b) • The modulus p • Base point G (on the curve) Pick a random integer n as private key Calculate public key P = n*G Encryption/Decryption Alice represents her text or data to send as a point Pm Alice sends Bob a pair of points: SentPair = {k*G, Pm + k*P} k = randomly chosen integer Bob decrypts the message using his private key: Pm + k*P - n(k*G) = Pm + k(n*G) - n(k*G) = Pm Why ECC is strong The difficult mathematical problem is called the elliptic curve discrete logarithm problem That is, given P and G, (and P= n*G), find n • Invented a whole new algebra o not susceptible to common attacks • Runs in exponential time o RSA runs in sub-exponential time • Best known attack: Pollard's rho attack (exponential) o runs in ((πn)^1/2) / 2 Weaknesses Unexplored since not used much in production Choosing correct curve parameters • Modulo p - some sub-exponential algorithms exist for certain p Finding base point G • Not as easy as you'd think Experiments - Goals and Outcomes 1. Create a visual representation of point addition 2. Perform timing experiments contrasting ECC and RSA 1.Length of time to generate keys (various key sizes) 2.Length of time to encrypt data (various data lengths) Demo Results Key Generation by Key Size Key Generation by Key Strength Encryption by Key Size Encryption by Key Strength Analysis Results are about as expected, with surprises • Key generation was faster in ECC at same strength • Encryption was faster in ECC at higher bit sizes May have been due to naive implementation ECC Adoption Patents • Many willing to work with community - Sun • Certicom is the problem - Sued Sony • NSA licensing from Certicom Logistics • Replace software and hardware in place for RSA, etc Estimated standard ~2020 Conclusion ECC is stronger than RSA for PKI Patents won't stand in the way forever Largest obstacle: replacing current PKI infrastructure Review • Background of ECC and PKI o Elliptic Curves o Key Generation o Data Encryption o Weaknesses • Experimentation o Visual Point Addition o Key Generation o Data Encryption • Results • ECC Adoption - Patents, Logistics • Conclusion Questions