250 likes | 454 Views
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:
E N D
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.
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
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 • not susceptible to common attacks • Runs in exponential time • RSA runs in sub-exponential time • Best known attack: Pollard's rho attack (exponential) • runs in ((πn)^1/2) / 2
Weaknesses Unexplored since not used much in productionChoosing 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 • Create a visual representation of point addition • Perform timing experiments contrasting ECC and RSA • Length of time to generate keys (various key sizes) • Length of time to encrypt data (various data lengths)
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 • Elliptic Curves • Key Generation • Data Encryption • Weaknesses • Experimentation • Visual Point Addition • Key Generation • Data Encryption • Results • ECC Adoption - Patents, Logistics • Conclusion