Top Banner
1 Qualifying Examination David J. Malan Division of Engineering and Applied Sciences Harvard University 16 November 2004 Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography
72

Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

May 06, 2019

Download

Documents

dinhquynh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

1

Qualifying Examination

David J. MalanDivision of Engineering and Applied Sciences

Harvard University

16 November 2004

Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography

Page 2: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

2

MIT-EMSMotivation for this work

Page 3: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

3

CodeBlueManaging n patients, for n = 1, is (relatively) easy

Image exerpted from “Vital Signs and Patient History,” Eastern Medical Educators, 2000.

Page 4: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

4

CodeBlueManaging n patients, for large n, is much harder

Page 5: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

5

CodeBlueCurrent systems for monitoring patients are radio-, phone-, and paper-based

Page 6: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

6

Sensor networks (e.g., mote-based pulse oximeters, EKGs) have potential for large impact

Real-time, continuous monitoring

Immediate alerts of changes in patient status

Electronic triage tags to store patient data

Relay data to hospital, correlate with patient records

Transmission of patients’ private data must be secure Health Insurance Portability and Accountability Act of 1996 (HIPAA)

CodeBlueAn Ad Hoc Sensor Network Infrastructure for Emergency Medical Care

Page 7: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

7

Ensuring Privacy and SecuritySecret-key cryptography: an obvious solution?

Image adapted from http://www.nuitari.de/crypto.html.

Page 8: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

8

Ensuring Privacy and SecurityThe problem: key distribution

How to establish shared secrets among authorized nodes?

Motes themselves are vulnerable to theft

Network participants are coming and going

Nodes are mobile

Page 9: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

9

Ensuring Privacy and Security

Acton Fire Dept. • American Medical Response of Mass. Inc. • Arlington Fire Department • Armstrong Ambulance Svc. • Ashland Fire Dept. • Marlboro Hudson Amb & Wheelchair Svc., Inc. • Bedford Fire Dept. • Belmont Fire Dept. • Boston EMS • Boston Med Flight •

Boxborough Fire Dept. • Cambridge Fire Dept. • Canton Fire Dept. • Cohasset Fire Department • Concord Fire Dept. • Burlington Fire Dept. • Carlisle Fire Dept. • Dover Fire

Dept. • Eastern Emergency Med. Svcs. • Fallon Ambulance Svc. • General Ambulance Svc., Inc. • Hanover Fire Dept. • Hingham Fire & Rescue Svcs. • Holliston Fire Dept. •

Hopkinton Fire Dept. • Hudson Fire Dept. • Hull Fire/Rescue & Emergency Svcs. •Lexington Fire Dept. • Littleton Fire Dept. • MIT-EMS • Cataldo Ambulance Svc. •

Maynard Fire Dept. • Medfield Fire Dept. • Millis Ambulance (Town of) • Natick Fire Dept. • Needham Fire Department • Norfolk Ambulance Svc. • Northeastern University Public

Safety • Norwell Fire Department • Norwood Fire Dept. Ambulance • Professional Ambulance and Oxygen Service • Sharon Ambulance Svc. • Sherborn Fire Dept. Rescue Squad • Spaulding Rehabilitation Hospital Ambulance • Lincoln Ambulance Svc. (Town

of) • Stow Emergency Med. Svc. (Town of) • Sudbury Fire Dept. • Walpole Fire & Rescue Dept. • Watertown Fire Dept. • Wayland Fire Dept. • Weston Fire Dept. • Westwood Fire Dept. • Wilmington Fire Dept. • Winchester Fire Dept. Rescue • Wrentham Fire Dept. •

Pathways Ambulance Svc., Ltd. • Emerson Hospital EMS • Eas Care Ambulance • Caritas Norwood Hospital EMS • South Shore Hospital • Scituate Fire Dept. • Southborough Fire

Dept. • Woburn Fire Dept. • Care Ambulance Svc. • Children's Hospital Boston •Wellesley Fire Department • Commonwealth Ambulance and Emergency Medical Services

Coordination among ambulance companies is non-trivial

List generated with http://db.state.ma.us/dph/amb/amb_search.asp.

Page 10: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

10

Ensuring Privacy and SecurityAd hoc configuration is crucial

How to establish a shared secret between EMT and patient?

How to authenticate EMT?

How to enable perfect forward secrecy?

Page 11: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

11

Ensuring Privacy and SecurityA solution: public key infrastructure (PKI)

Image adapted from http://www.nuitari.de/crypto.html.

Page 12: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

12

Ensuring Privacy and SecurityA solution: public key infrastructure (PKI)

Image adapted from http://www.nuitari.de/crypto.html.

Page 13: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

13

Ensuring Privacy and SecurityResearch question

How do you design, implement, and evaluate PKI for key distribution in sensor networks?

Page 14: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

14

Ensuring Privacy and SecurityPrevailing wisdom

You don’t.

Page 15: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

15

Ensuring Privacy and SecurityThe real problem: implementation of PKI for sensor networks

“Public key cryptography is prohibitively expensive for sensor networks in terms of computation and energy consumption.”

C. Karlof, N. Sastry, and D. Wagner, “TinySec: Link Layer Security for Tiny Devices,” http://www.cs.berkeley.edu/~nks/tinysec/

“Many current sensor devices have limited computational power, making public-key cryptographic primitives too expensive in terms of system overhead.”

A. Perrig, J. Stankovic, and D. Wagner, “Security in Wireless Sensor Networks,” Communications of the ACM, vol. 47, no. 6, pp. 53–57, June 2004

Page 16: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

16

Ensuring Privacy and SecurityContext for this problem

The MICA2 Mote

Developed at UC Berkeley

Fabricated by Crossbow, Inc.

Supported by TinyOS, UC Berkeley’s open-source operating system for sensor networks

Limited Resources

8-bit, 7.3828-MHz ATmega 128L processor

4 KB of primary memory (SRAM)

128 KB of program space (ROM)

512 KB of EEPROM

433-MHz radio: 38.4K baud rate, 29B per-packet payload

Image exerpted from http://www.xbow.com/Products/Product_pdf_files/Wireless_pdf/6020-0042-05_A_MICA2.pdf.

Page 17: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

17

Ensuring Privacy and SecurityConfirming or denying prevailing wisdom

How to design a PKI for key distribution?

Explore choices of underlying primitives

How to implement PKI for key distribution?

Optimize underlying primitives

How to evaluate PKI for key distribution?

Evaluate actual implementations

Page 18: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

18

Our Goal in Three PhasesIs PKI, in fact, viable for key distribution for the MICA2?

1. Is encryption of all traffic realistic with TinyOS’s existing cipher?

2. Is key distribution viable with classic solutions?

3. Can we do better? How?

Page 19: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

19

Our MethodChoosing, optimizing, and evaluating primitives

1. Is encryption of all traffic realistic with TinyOS’s existing cipher?

Evaluation of UC Berkeley’s TinySec, TinyOS's existing secret-key cryptographic layer for the MICA2 based on SKIPJACK with 80-bit keys

2. Is key distribution viable with classic solutions?

Evaluation of BBN Technologies’ implementation of Diffie-Hellman, per NIST’s recommendation

1,024-bit keys (i.e., 160-bit exponents and 1,024-bit moduli)

3. Can we do better? How?

Evaluation of our own implementations of elliptic curve cryptography (ECC), per NIST’s recommendation

163-bit keys

Page 20: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

20

Spoiler Ahead!PKI is, in fact, viable for key distribution on the MICA2

1. SKIPJACK with 80-bit keys

Fast

Negligible impact on radio throughput

2. Diffie-Hellman with 1,024-bit keys

Relatively slow

Key size unappealing

3. ECC with 163-bit keys

Promising performance

Key size appealing

Page 21: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

21

Is encryption of all traffic realistic with TinyOS’s existing cipher?

SKIPJACK and the MICA2Phase 1 of 3

Page 22: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

22

SKIPJACK and the MICA2TinySec intercepts calls to send()

We’ll later question our assumption of TinySec’s security because of this module, a weak pseudorandom number generator

send()

encrypt()computeMAC()

TinySec

Page 23: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

23

SKIPJACK and the MICA2Costs are reasonable

Costs in time

encrypt()

2,190 µsec

computeMAC()

3,049 µsec

Costs in space

822 B of SRAM

7,076 B of ROM

See IEEE SECON 2004 paper for breakdown of SRAM into .bss, .data, and stack requirements.

Page 24: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

24

SKIPJACK and the MICA2Impact on throughput is negligible (0.36 packets per sec)

Throughput

2.00

3.99

9.16

2.00

3.98

8.85

7.558.21

9.74

7.34

9.38

7.98

0

2

4

6

8

10

12

Trials

Thro

ughp

ut (p

acke

ts p

er s

econ

d)

without TinySec with TinySec

Page 25: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

25

Encryption of all traffic is realistic with TinyOS’s existing cipher:operations are fast, impact on throughput is negligible.

SKIPJACK and the MICA2Phase 1 of 3

Page 26: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

26

Is key distribution viable with classic solutions?

Diffie-Hellman and the MICA2Phase 2 of 3

Page 27: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

27

Diffie-Hellman and the MICA2Why not RSA?

Results excerpted from http://www.is.bbn.com/projects/lws-nest/bbn_nest_dec_03.ppt.

Timing tests for RSA [on the MICA], public key operation with exponent 3 and varying modulus sizes:

Private key timing not available: far too slow.

Key-exchange: Exponentiation with a 512-bit modulus and 120 bit exponent with 50% one-bits: 315 sec!!

Page 28: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

28

Diffie-Hellman and the MICA2Discrete Logarithm Problem (DLP)

Determining x given gx mod p is hard,where g is a generator and p is a prime.

Modular exponentiation is the primitive underlying a typical Diffie-Hellman exchange and variants thereof.

Page 29: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

29

Diffie-Hellman and the MICA2A typical exchange

Image adapted from Radia Perlman’s Computer Science 243.

Page 30: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

30

Diffie-Hellman and the MICA2Performance of primitive is relative slow

Page 31: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

31

Diffie-Hellman and the MICA2Costs of generating a 1,024-bit public or shared key are significant

Cost in time

54.1144 sec

Costs in space

1,250 B of SRAM

11,350 B of ROM

Cost in energy

1.185 Joules (3.9897 х 108 cycles)

See IEEE SECON 2004 paper for breakdown of SRAM into .bss, .data, and stack requirements.

Page 32: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

32

Diffie-Hellman and the MICA2Putting energy costs in perspective

Up to 2 × 2,850 mAh × 3600 sec/h ÷ (7.3 mA × 54.1144 sec) ≈ 51,945 modular exponentiations are possible with two AA batteries on the MICA2.

Energizer No. E91, an AA battery, offers an average capacity of 2,850 mAh.

The average current drawn with modular exponentiation in progress was 7.3 mA.

This bound is generous: the MICA2 effectively dies once voltage drops below 2 V.

Page 33: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

33

Diffie-Hellman and the MICA2Phase 2 of 3

Key distribution is costly with classic solutions:relatively slow, key size unappealing.

Page 34: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

34

ECC and the MICA2Phase 3 of 3

Can we do better (than 54.1144 sec and 1,024 bits)? How?

Page 35: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

35

ECC and the MICA2Elliptic curve cryptography (ECC) offers an alternative primitive

Page 36: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

36

Determining k given k × G is hard,where G is a publicly known point on a publicly known curve.

Point multiplication is the primitive underlying ECC.

ECC and the MICA2Elliptic Curve Discrete Logarithm Problem (ECDLP)

Page 37: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

37

ECC and the MICA2A typical exchange

Page 38: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

38

With ECC, secure distribution of 80-bit TinySec keys is possible using public keys with fewer bits than 1,024:

163 bits are sufficient.

ECC and the MICA2Why ECC?

Page 39: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

39

ECC and the MICA2Secure distribution of 80-bit TinySec keys with 163-bit public keys

Elliptic curves are believed to offer security computationally equivalent to that of Diffie-Hellman based on DLP with remarkably smaller key sizes

Subexponential algorithms exist for DLPL. M. Adleman, “A Subexponential Algorithm for the Discrete Logarithm Problem with Applications to Cryptography,” in Proc. 20th IEEE Found. Comp. Sci. Symp., 1979, pp. 55–60

D. M. Gordon, “Discrete Logarithms in GF(P) Using the Number Field Sieve,” SIAM J. Discret. Math., vol. 6, no. 1, pp. 124–138, 1993

M. Rabin, “Digitalized signatures and public-key functions as intractable as factorization,” MIT, Tech. Rep. MIT/LCS/TR-212, 1979

No subexponential algorithm is known to exist for ECDLP over certain finite fields

P. Gaudry, F. Hess, and N. P. Smart, “Constructive and Destructive Facets of Weil Descent on Elliptic Curves,” Department of Computer Science, University of Bristol, Tech. Rep. CSTR-00-016, October 2000

Page 40: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

40

ECC and the MICA2Galois (i.e., finite) fields proposed for use in PKI

tend to be implemented efficiently in software when represented

with a polynomial basis

vulnerable to subexponential attack

appears to avoid patent conflicts, if represented with a polynomial basis

various patents on efficient implementations

Page 41: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

41

Our first implementation of ECC on the MICA2 was a failure.

ECC and the MICA2Reinforcing popular wisdom

Page 42: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

42

ECC and the MICA2EccM 1.0: our first implementation

A TinyOS module based on code ported from Michael Rosing’s Implementing Elliptic Curve Cryptography that implements point multiplication.

Operates over GF(2p), using a polynomial basis, modulo an irreducible polynomial.

Features:

selects a random curve of the form y2 + xy ≡ x3 + ax2 + b, where a = 0 and b ∈ GF(2p);

selects from that curve a random point, G ∈ GF(2p) × GF(2p);

selects randomly a private key, k ∈ GF(2p); and

computes k ⋅ G, the corresponding public key.

Page 43: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

43

ECC and the MICA2EccM 1.0: cost in time

EccM 1.0

0.00

70.

011

0.10

50.

213

0.24

6 0.39

3 0.54

7

1.36

01.

643 1.77

6

0.01

60.

015

0.000

0.200

0.400

0.600

0.800

1.000

1.200

1.400

1.600

1.800

2.000

2.200

0 5 10 15 20 25 30 35

Size of Key (bits)

Run

ning

Tim

e (s

ec)

Page 44: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

44

ECC and the MICA2EccM 1.0: costs in space

SRAM Used by EccM 1.0

0

500

1,000

1,500

2,000

2,500

3,000

3,500

4,000

4,500

33 63

Size of Key (bits)

SRA

M U

sed

(byt

es)

.bss + .data stack

Page 45: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

45

ECC and the MICA2EccM 2.0: our second implementation

A TinyOS module inspired by Dragongate Technologies Limited’s Java-based jBorZoi 0.9 that implements actual key exchange.

Operates over GF(2163), using a polynomial basis, modulo f(x) = x163 + x7 + x6 + x3 + 1.

Features:

selects a Koblitz curve, y2 + xy ≡ x3 + x2 + 1, the number of points on which is 5846006549323611672814741753598448348329118574063;

selects a base point, G = (Gx, Gy), whereGx = 4373527398576640063579304354969275615843559206632 andGy = 3705292482178961271312284701371585420180764402649;

selects randomly for a node, Alice, a private key, kA ∈ GF(2p);

computes Alice’s public key, TA = kA ⋅ G;

transmits TA to a node, Bob, who similarly generates and transmits his own TB;

computes for Alice kA ⋅ TB = kA ⋅ kB ⋅ G just as Bob computes kB ⋅ TA = kA ⋅ kB ⋅ G, the same shared secret.

Page 46: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

46

Costs of generating 163-bit public or shared key

Cost in time

495.92 sec

Costs in space

901 B of SRAM

43,286 B of ROM

Cost in energy

12.65 Joules (3.65 х 109 cycles)

ECC and the MICA2

Page 47: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

47

ECC and the MICA2Optimizing EccM 2.0

Elimination of foolish code (e.g., recomputing terminal conditions for loops)

Implementation of published algorithms from current literature (e.g., J. López and R. Dahab, “High-Speed Software Multiplication in F2m,” May 2000)

Resurrected lost art of hand-optimized source

manually unrolled loops

special-cased common shifts

re-ordered loops based on expected lengths of elements

Page 48: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

48

ECC and the MICA2Optimizing EccM 2.0: methodology

b_xor: 185368b_bitlength: 166631b_shiftleft: 125634

b_testbit: 115817b_shiftleft1: 115655

b_copy: 82415f_add: 78891

b_compareto: 3632b_sub: 2805

b_clear: 2149f_mod: 952f_mul: 714

b_iszero: 641p_iszero: 478

b_isequal: 399c_add: 240f_inv: 238

b_setbit: 5b_print: 3p_copy: 2

Page 49: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

49

ECC and the MICA2Optimizing EccM 2.0: illustrative example

/*** c = a XOR b.*/

inline void b_xor(uint8_t * a, uint8_t * b, uint8_t * c){

index_t i;for (i = 0; i < NUMWORDS; i++, a++, b++, c++)

*c = *a ^ *b;}

Page 50: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

50

ECC and the MICA2

000073f4 <EccM$b_xor>:73f4: cf 93 push r2873f6: df 93 push r2973f8: cd b7 in r28, 0x3d ; 6173fa: de b7 in r29, 0x3e ; 6273fc: 28 97 sbiw r28, 0x08 ; 873fe: 0f b6 in r0, 0x3f ; 637400: f8 94 cli7402: de bf out 0x3e, r29 ; 627404: 0f be out 0x3f, r0 ; 637406: cd bf out 0x3d, r28 ; 617408: 89 83 std Y+1, r24 ; 0x01740a: 9a 83 std Y+2, r25 ; 0x02740c: 6b 83 std Y+3, r22 ; 0x03740e: 7c 83 std Y+4, r23 ; 0x047410: 4d 83 std Y+5, r20 ; 0x057412: 5e 83 std Y+6, r21 ; 0x067414: 1f 82 std Y+7, r1 ; 0x077416: 18 86 std Y+8, r1 ; 0x087418: 8f 81 ldd r24, Y+7 ; 0x07741a: 98 85 ldd r25, Y+8 ; 0x08741c: 8a 32 cpi r24, 0x2A ; 42741e: 91 05 cpc r25, r17420: 0c f0 brlt .+2 ; 0x74247422: 20 c0 rjmp .+64 ; 0x74647424: 2d 81 ldd r18, Y+5 ; 0x057426: 3e 81 ldd r19, Y+6 ; 0x067428: e9 81 ldd r30, Y+1 ; 0x01742a: fa 81 ldd r31, Y+2 ; 0x02742c: ab 81 ldd r26, Y+3 ; 0x03742e: bc 81 ldd r27, Y+4 ; 0x047430: 90 81 ld r25, Z7432: 8c 91 ld r24, X7434: 89 27 eor r24, r257436: f9 01 movw r30, r187438: 80 83 st Z, r24743a: 8f 81 ldd r24, Y+7 ; 0x07743c: 98 85 ldd r25, Y+8 ; 0x08743e: 01 96 adiw r24, 0x01 ; 17440: 8f 83 std Y+7, r24 ; 0x077442: 98 87 std Y+8, r25 ; 0x087444: 89 81 ldd r24, Y+1 ; 0x017446: 9a 81 ldd r25, Y+2 ; 0x027448: 01 96 adiw r24, 0x01 ; 1744a: 89 83 std Y+1, r24 ; 0x01744c: 9a 83 std Y+2, r25 ; 0x02744e: 8b 81 ldd r24, Y+3 ; 0x037450: 9c 81 ldd r25, Y+4 ; 0x047452: 01 96 adiw r24, 0x01 ; 17454: 8b 83 std Y+3, r24 ; 0x037456: 9c 83 std Y+4, r25 ; 0x047458: 8d 81 ldd r24, Y+5 ; 0x05745a: 9e 81 ldd r25, Y+6 ; 0x06745c: 01 96 adiw r24, 0x01 ; 1745e: 8d 83 std Y+5, r24 ; 0x057460: 9e 83 std Y+6, r25 ; 0x067462: da cf rjmp .-76 ; 0x74187464: 28 96 adiw r28, 0x08 ; 87466: 0f b6 in r0, 0x3f ; 637468: f8 94 cli746a: de bf out 0x3e, r29 ; 62746c: 0f be out 0x3f, r0 ; 63746e: cd bf out 0x3d, r28 ; 617470: df 91 pop r297472: cf 91 pop r287474: 08 95 ret

Optimizing EccM 2.0: helping the compiler

Page 51: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

51

ECC and the MICA2Optimizing EccM 2.0: helping the compiler

/*** c = a XOR b.*/

inline void b_xor(uint8_t * a, uint8_t * b, uint8_t * c){

index_t i;for (i = 0; i < NUMWORDS; i++, a++, b++, c++)

*c = *a ^ *b;}

/*** c = a XOR b.*/

inline void b_xor(uint8_t * a, uint8_t * b, uint8_t * c){

index_t i;for (i = 0; i < NUMWORDS; i += 2, a += 2, b += 2, c += 2)

*((uint16_t *) c) = *((uint16_t *) a) ^ *((uint16_t *) b);}

Page 52: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

52

ECC and the MICA2000073f4 <EccM$b_xor>:

73f4: cf 93 push r2873f6: df 93 push r2973f8: cd b7 in r28, 0x3d ; 6173fa: de b7 in r29, 0x3e ; 6273fc: 28 97 sbiw r28, 0x08 ; 873fe: 0f b6 in r0, 0x3f ; 637400: f8 94 cli7402: de bf out 0x3e, r29 ; 627404: 0f be out 0x3f, r0 ; 637406: cd bf out 0x3d, r28 ; 617408: 89 83 std Y+1, r24 ; 0x01740a: 9a 83 std Y+2, r25 ; 0x02740c: 6b 83 std Y+3, r22 ; 0x03740e: 7c 83 std Y+4, r23 ; 0x047410: 4d 83 std Y+5, r20 ; 0x057412: 5e 83 std Y+6, r21 ; 0x067414: 1f 82 std Y+7, r1 ; 0x077416: 18 86 std Y+8, r1 ; 0x087418: 8f 81 ldd r24, Y+7 ; 0x07741a: 98 85 ldd r25, Y+8 ; 0x08741c: 8a 32 cpi r24, 0x2A ; 42741e: 91 05 cpc r25, r17420: 0c f0 brlt .+2 ; 0x74247422: 25 c0 rjmp .+74 ; 0x746e7424: 4d 81 ldd r20, Y+5 ; 0x057426: 5e 81 ldd r21, Y+6 ; 0x067428: e9 81 ldd r30, Y+1 ; 0x01742a: fa 81 ldd r31, Y+2 ; 0x02742c: ab 81 ldd r26, Y+3 ; 0x03742e: bc 81 ldd r27, Y+4 ; 0x047430: 20 81 ld r18, Z7432: 31 81 ldd r19, Z+1 ; 0x017434: 8d 91 ld r24, X+7436: 9c 91 ld r25, X7438: 11 97 sbiw r26, 0x01 ; 1743a: 82 27 eor r24, r18743c: 93 27 eor r25, r19743e: fa 01 movw r30, r207440: 80 83 st Z, r247442: 91 83 std Z+1, r25 ; 0x017444: 8f 81 ldd r24, Y+7 ; 0x077446: 98 85 ldd r25, Y+8 ; 0x087448: 02 96 adiw r24, 0x02 ; 2744a: 8f 83 std Y+7, r24 ; 0x07744c: 98 87 std Y+8, r25 ; 0x08744e: 89 81 ldd r24, Y+1 ; 0x017450: 9a 81 ldd r25, Y+2 ; 0x027452: 02 96 adiw r24, 0x02 ; 27454: 89 83 std Y+1, r24 ; 0x017456: 9a 83 std Y+2, r25 ; 0x027458: 8b 81 ldd r24, Y+3 ; 0x03745a: 9c 81 ldd r25, Y+4 ; 0x04745c: 02 96 adiw r24, 0x02 ; 2745e: 8b 83 std Y+3, r24 ; 0x037460: 9c 83 std Y+4, r25 ; 0x047462: 8d 81 ldd r24, Y+5 ; 0x057464: 9e 81 ldd r25, Y+6 ; 0x067466: 02 96 adiw r24, 0x02 ; 27468: 8d 83 std Y+5, r24 ; 0x05746a: 9e 83 std Y+6, r25 ; 0x06746c: d5 cf rjmp .-86 ; 0x7418746e: 28 96 adiw r28, 0x08 ; 87470: 0f b6 in r0, 0x3f ; 637472: f8 94 cli7474: de bf out 0x3e, r29 ; 627476: 0f be out 0x3f, r0 ; 637478: cd bf out 0x3d, r28 ; 61747a: df 91 pop r29747c: cf 91 pop r28747e: 08 95 ret

000073f4 <EccM$b_xor>:73f4: cf 93 push r2873f6: df 93 push r2973f8: cd b7 in r28, 0x3d ; 6173fa: de b7 in r29, 0x3e ; 6273fc: 28 97 sbiw r28, 0x08 ; 873fe: 0f b6 in r0, 0x3f ; 637400: f8 94 cli7402: de bf out 0x3e, r29 ; 627404: 0f be out 0x3f, r0 ; 637406: cd bf out 0x3d, r28 ; 617408: 89 83 std Y+1, r24 ; 0x01740a: 9a 83 std Y+2, r25 ; 0x02740c: 6b 83 std Y+3, r22 ; 0x03740e: 7c 83 std Y+4, r23 ; 0x047410: 4d 83 std Y+5, r20 ; 0x057412: 5e 83 std Y+6, r21 ; 0x067414: 1f 82 std Y+7, r1 ; 0x077416: 18 86 std Y+8, r1 ; 0x087418: 8f 81 ldd r24, Y+7 ; 0x07741a: 98 85 ldd r25, Y+8 ; 0x08741c: 8a 32 cpi r24, 0x2A ; 42741e: 91 05 cpc r25, r17420: 0c f0 brlt .+2 ; 0x74247422: 20 c0 rjmp .+64 ; 0x74647424: 2d 81 ldd r18, Y+5 ; 0x057426: 3e 81 ldd r19, Y+6 ; 0x067428: e9 81 ldd r30, Y+1 ; 0x01742a: fa 81 ldd r31, Y+2 ; 0x02742c: ab 81 ldd r26, Y+3 ; 0x03742e: bc 81 ldd r27, Y+4 ; 0x047430: 90 81 ld r25, Z7432: 8c 91 ld r24, X7434: 89 27 eor r24, r257436: f9 01 movw r30, r187438: 80 83 st Z, r24743a: 8f 81 ldd r24, Y+7 ; 0x07743c: 98 85 ldd r25, Y+8 ; 0x08743e: 01 96 adiw r24, 0x01 ; 17440: 8f 83 std Y+7, r24 ; 0x077442: 98 87 std Y+8, r25 ; 0x087444: 89 81 ldd r24, Y+1 ; 0x017446: 9a 81 ldd r25, Y+2 ; 0x027448: 01 96 adiw r24, 0x01 ; 1744a: 89 83 std Y+1, r24 ; 0x01744c: 9a 83 std Y+2, r25 ; 0x02744e: 8b 81 ldd r24, Y+3 ; 0x037450: 9c 81 ldd r25, Y+4 ; 0x047452: 01 96 adiw r24, 0x01 ; 17454: 8b 83 std Y+3, r24 ; 0x037456: 9c 83 std Y+4, r25 ; 0x047458: 8d 81 ldd r24, Y+5 ; 0x05745a: 9e 81 ldd r25, Y+6 ; 0x06745c: 01 96 adiw r24, 0x01 ; 1745e: 8d 83 std Y+5, r24 ; 0x057460: 9e 83 std Y+6, r25 ; 0x067462: da cf rjmp .-76 ; 0x74187464: 28 96 adiw r28, 0x08 ; 87466: 0f b6 in r0, 0x3f ; 637468: f8 94 cli746a: de bf out 0x3e, r29 ; 62746c: 0f be out 0x3f, r0 ; 63746e: cd bf out 0x3d, r28 ; 617470: df 91 pop r297472: cf 91 pop r287474: 08 95 ret

⇒saves us 212 cycles per call to b_xor();

costs us ROM

Optimizing EccM 2.0: results

Page 53: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

53

EccM 2.0 ultimately offered smaller keys and better performance

Cost in time

34.161 sec [down from 495.92 sec]

Costs in space

1,140 B of SRAM [up from 901 B]

34,342 B of ROM [down from 43,286 B]

Cost in energy

0.816 Joules (2.512 х 108 cycles)[down from 12.65 Joules (3.65 х 109 cycles)]

2.512 × 108 ÷ 7.3828 MHz × 8 mA × 3 V

See IEEE SECON 2004 paper for breakdown of SRAM into .bss, .data, and stack requirements.

ECC and the MICA2

Page 54: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

54

ECC and the MICA2Putting energy costs in perspective

Up to 2 × 2,850 mAh × 3600 sec/h ÷ (8.0 mA × 34.161 sec) ≈ 75,086 point multiplications are possible [up from 51,945 modular exponentiations] with two AA batteries on the MICA2.

Energizer No. E91, an AA battery, offers an average capacity of 2,850 mAh.

The average current drawn with point multiplication in progress was 8.0 mA.

This bound is, again, generous: the MICA2 effectively dies once voltage drops below 2 V.

Page 55: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

55

ECC and the MICA2Phase 3 of 3

We can do better:34.161 sec for generation of 163-bit public or shared keys

versus54.1144 sec for generation of 1,024-bit public or shared keys.

Page 56: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

56

Related WorkCurrent literature

C. Karlof, N. Sastry, and D. Wagner, “TinySec: A Link Layer Security Architecture for Wireless Sensor Networks,” Second ACM Conference on Embedded Networked Sensor Systems, November 2004

R. Watro, D. Kong, S. Cuti, C. Gardiner, C. Lynn, P. Kruus, “TinyPK: Securing Sensor Networks with Public Key Technology,” Second ACM Workshop on Security of Ad Hoc and Sensor Networks , October 2004

N. Gura, A. Patel, A. Wander, H. Eberle, and S. C. Shantz, “Comparing Elliptic Curve Cryptography and RSA on 8-bit CPUs,” Sixth International Workshop on Cryptographic Hardware and Embedded Systems, August 2004

0.81 sec for 160-bit point multiplication over GF(p)

Page 57: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

57

CaveatsOpen problems remain

TinyOS’s RandomLFSR module is seeded only with a mote’s ID number: it’s a poor pseudo-random number generator

TinySec is not as secure as it might be as a result

PKI primitives are viable, but implementation details for protocols remain

What features do mass casualty incidents demand?

Chains of trust need to be explored

Is a certificate authority needed for authentication and revocation?

Page 58: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

58

ConclusionPKI is, in fact, viable for key distribution on the MICA2

1. Is encryption of all traffic realistic with TinyOS’s existing cipher?

SKIPJACK with 80-bit keys

0.36 packets per second of overhead

2. Is key distribution viable with classic solutions?

Diffie-Hellman with 1,024-bit keys

54.1144 sec for key generation

3. Can we do better? How?

ECC with 163-bit keys

34.390 sec for key generation

Page 59: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

59

Future WorkToward the dissertation

“There may be a virus loose on the internet.”Andy Sudduth of Harvard, 34 minutes after midnight, Nov. 3, 1988

Image and quote from http://www.software.com.pl/newarchive/misc/Worm/darbyt/pages/what.html.

Page 60: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

60

From Sneakernet to InternetMalware’s threats to availability, integrity, and security

Viruses

self-replicating software that can spread from one system to another only via some host

Worms

self-propagating software that can spread from one system to another independent of any host

Spyware

software that monitors a user’s activity and reports that user’s activity to some server

Page 61: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

61

Size of the ProblemOmnipresent Windows particularly vulnerable

Over 68,000 viruses and worms for Windows [Symantec Corporation]

1,200 forms of spyware for Windows[Safer Networking Limited]

Page 62: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

62

Classic SolutionsSignature-based techniques are inadequate

1. Systems are safe from only those attacks that other systems havealready suffered

2. Systems vulnerable for as long as it takes for researchers to define and distribute new signatures

3. Fastest of worms do not allow sufficient time for human intervention

4. All too easily defeated by metamorphic or polymorphic malware

Page 63: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

63

Classic SolutionsBehavior-based techniques suffer from false positives

Page 64: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

64

Thesis ProposalChallenging classic solutions

Can we do better? How?

Page 65: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

65

Distributed Runtime DefenseContribution of thesis

Combat inevitable risks of false positives through correlation of seemingly anomalous behavior by Win32 systems

in peer-to-peer networks.

Page 66: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

66

Plan of AttackPhase 1: research question

Does straightforward application of extant techniques for anomaly detection on Linux and UNIX enable detection of

viruses, worms, and spyware on Win32?

Page 67: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

67

Plan of AttackPhase 1: methodology

Assess applicability of extant techniques to Win32

Port from Linux 2.4 to Windows XP the ideas embodied in UNM’s pH, a kernel extension which looks to yet-unseen patterns of system calls for definition of anomalous behavior, exponentially slowing execution of all such patterns

Hook the NT services provided in kernel space by NTOSKRNL.EXE

Vary pH's rules as well as alternative definitions of behavior for Win32 systems

Page 68: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

68

Plan of AttackPhase 2: research question

Can we leverage ideas from the peer-to-peer community and distribute the problem of detection across hosts

vulnerable to the same attacks?

Page 69: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

69

Plan of AttackPhase 2: methodology

Implement peer-to-peer cooperation; determine to what extent and with what speed peers can extract value from correlated events

Unprecedented behavior is unlikely to be exhibited by multiple peers within a narrow slice of time, unless triggered by some external source

We expect a benefit of this phase’s enhancements will be reduction of false positives, vis-à-vis phase 1’s implementation

An additional benefit should be novel defense against “flash” worms, whose rate of propagation can overwhelm any human-led effort to craft custom defenses

EXTRA SLIDE

Page 70: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

70

Plan of AttackPhase 3: research question

How best to respond to anomalies once detected?

Page 71: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

71

SummaryPhases 1 through 3

1. Establish a baseline for Win32

2. Attack false positives: extract value from correlated events

3. Distribute defense

Page 72: Toward a Public-Key Infrastructure for Key Distribution in … · Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. 2 MIT-EMS

72

Qualifying Examination

David J. MalanDivision of Engineering and Applied Sciences

Harvard University

16 November 2004

Toward a Public-Key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography