A Public Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography David J. Malan, Matt Welsh, Michael D. Smith Presented by James Balasalle
Overview Introduction SKIPJACK and TinySEC Elliptic Curve Cryptography Implementation Results Conclusions
Introduction Not much data to support claim that PKI is infeasible ECC Solves key distribution problems ECC and the Discrete Logarithmic Problem Implemented Results Conclusions
SKIPJACK and TinySEC Link layer security Secret keys, possibly global Re-keying is problematic Transmit time RTT time
SKIPJACK and TinySEC Cont’d. Tiny Sec Size Encryption Time
Elliptic Curve Cryptography Like other PKI schemes based on DLP (discrete logarithmic problem) y=(gx)mod p “Easy” to find y, very difficult to find x Based on finite fields Elements in group are points (x,y)
Elliptic Curve Cryptography Cont’d. y 2 = x 3 + ax + b Elliptic Curve
Elliptic Curve Cryptography Cont’d. Point Addition
Elliptic Curve Cryptography Cont’d. Point Multiplication
Elliptic Curve Cryptography Cont’d. Q(x,y) = kP(x,y) Q is public key Field is set of points on curve up to P, which is large prime Field can be of different types
Elliptic Curve Cryptography Cont’d.
Implementation 1 st attempt failed – based on code by Michael Rosing Stack overflow Memory consumption for multi-word arithmetic – exponential RAM usage for keys above 33 bits
Implementation Cont’d. 2 nd Attempt EccM 2.0 Based on Dragongate Technologies Limited’s jBorZoi Keys are broadcast in 2 22-byte messages Different algorithms are used for multiplication of points, and addition of points EccM 1.0 is subject to sub exponential attack via MOV reduction with indexed calculus. Eccm 2.0 is not.
Results TinySec Sizes EccM Sizes
Results Cont’d. 148 times more expensive 149 times slower
Conclusions Feasible for infrequent re-keying Significantly simplifies key distribution Provides high level of security Twice as big code size as TinySec Larger BSS size
Conclusions Cont’d. Significantly slower PKI allows more ways for nodes to establish keys – reducing chance of network fragmentation