part 1 cryptography 1 chapter 4: public key cryptography rsa diffie-hellman key elliptic curve...

49
Part 1 Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Upload: charlotte-nash

Post on 18-Jan-2016

237 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 1

Chapter 4:Public Key Cryptography

RSADiffie-Hellman keyElliptic Curve CryptographyPublic key crypto application

Page 2: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 2

Public Key Cryptography Two keys

o Sender uses recipient’s public key to encrypt

o Recipient uses private key to decrypt

Based on “trap door one way function”o “One way” means easy to compute in one

direction, but hard to compute in other direction

o Example: Given p and q, product N = pq easy to compute, but given N, it’s hard to find p and q

o “Trap door” used to create key pairs

Page 3: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 3

Public Key Cryptography Encryption

o Suppose we encrypt M with Bob’s public key

o Bob’s private key can decrypt to recover M

Digital Signatureo Sign by “encrypting” with your private key

o Anyone can verify signature by “decrypting” with public key

o But only you could have signed

o Like a handwritten signature, but way better…

Page 4: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

What we learn here wrt PKC

RSA Standard PKC

Diffie-Hellman Key Exchange key exchange algorithm

ECC(Elliptic Curve Cryptography)

Chapter 4 -- Public Key Cryptography

4

Page 5: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 5

RSA

Page 6: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

RSA

What is the most difficult?

addition

123 + 654 -------- 777

multiplication

123 x 654 --------- 492 615 738 ----------- 80442

factoring

221 = ?x? 221/2 = 221/3 = 221/5 = 221/7 = 221/11 = 221/13 = 221 = 13 x 17

Easy Difficult

Part 1 Cryptography 6

Page 7: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 7

RSA Invented by Clifford Cocks (GCHQ), and

later independently, Rivest, Shamir, and Adleman (MIT)o RSA is the gold standard in public key crypto

Let p and q be two large prime numbers Let N = pq be the modulus Choose e relatively prime to (p1)(q1) Find d such that ed = 1 mod (p1)(q1) Public key is (N,e) Private key is d

Page 8: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 8

RSA Message M is treated as a number To encrypt M we compute

C = Me mod N To decrypt ciphertext C compute

M = Cd mod N Recall that e and N are public If Trudy can factor N=pq, she can use e

to easily find d since ed = 1 mod (p1)(q1)

Factoring the modulus breaks RSAo Is factoring the only way to break RSA?

Page 9: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 9

Does RSA Really Work? Given C = Me mod N we must show

M = Cd mod N = Med mod N We’ll use Euler’s Theorem:

If x is relatively prime to n then x(n) = 1 mod n Facts:

1) ed = 1 mod (p 1)(q 1) 2) By definition of “mod”, ed = k(p 1)(q 1) + 13) (N) = (p 1)(q 1)

Then ed 1 = k(p 1)(q 1) = k(N) Finally, Med = M(ed 1) + 1 = MMed 1 = MMk(N) =

M(M(N))k mod N = M1k mod N = M mod N

Page 10: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 10

Simple RSA Example(1)

Example of RSAo Select “large” primes p = 11, q = 3 o Then N = pq = 33 and (p − 1)(q − 1) =

20 o Choose e = 3 (relatively prime to 20)o Find d such that ed = 1 mod 20

We find that d = 7 works

Public key: (N, e) = (33, 3) Private key: d = 7

Page 11: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 11

Simple RSA Example(2) Public key: (N, e) = (33, 3) Private key: d = 7 Suppose message M = 8 Ciphertext C is computed as

C = Me mod N = 83 = 512 = 17 mod 33

Decrypt C to recover the message M byM = Cd mod N = 177 = 410,338,673

= 12,434,505 33 + 8 = 8 mod 33

Page 12: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 12

Diffie-Hellman

Page 13: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 13

Diffie-Hellman Invented by Williamson (GCHQ) and,

independently, by Diffie and Hellman(Stanford)

A “key exchange” algorithmo Used to establish a shared symmetric key

Not for encrypting or signing Based on discrete log problem:

o Given: g, p, and gk mod po Find: exponent k

Page 14: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 14

Diffie-Hellman Let p be prime, let g be a generator

o For any x {1,2,…,p-1} there is n s.t. x = gn mod p

Alice selects her private value a Bob selects his private value b Alice sends ga mod p to Bob Bob sends gb mod p to Alice Both compute shared secret, gab mod p Shared secret can be used as symmetric key

Page 15: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Discrete Logarithm Problem known: large prime number p, generator g gk mod p = x Discrete logarithm problem: given x, g, p, find k Table g=2, p=11

k 1 2 3 4 5 6 7 8 9 10

gk 2 4 8 5 10 9 7 3 6 1

Cyclic Group G

α1 α2 α3 …Generator α αx = β

1st element

nth element

Page 16: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 16

Diffie-Hellman Suppose Bob and Alice use Diffie-

Hellman to determine symmetric key K = gab mod p

Trudy can see ga mod p and gb mod po But… ga gb mod p = ga+b mod p gab mod p

If Trudy can find a or b, she gets key K If Trudy can solve discrete log

problem, she can find a or b

Page 17: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 17

Diffie-Hellman Public: g and p Private: Alice’s exponent a, Bob’s exponent b

Alice, a Bob, b

ga mod p

gb mod p

Alice computes (gb)a = gba = gab mod p Bob computes (ga)b = gab mod p Use K = gab mod p as symmetric key

Page 18: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 18

Diffie-Hellman Subject to man-in-the-middle (MiM) attack

Alice, a Bob, b

ga mod p

gb mod p

Trudy, t

gt mod p

gt mod p

Trudy shares secret gat mod p with Alice Trudy shares secret gbt mod p with Bob Alice and Bob don’t know Trudy exists!

Page 19: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 19

Diffie-Hellman How to prevent MiM attack?

o Encrypt DH exchange with symmetric key

o Encrypt DH exchange with public key

o Sign DH values with private key

o Other?

At this point, DH may look pointless…o …but it’s not (more on this later)

In any case, you MUST be aware of MiM attack on Diffie-Hellman

Page 20: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 20

Elliptic Curve Cryptography

Page 21: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 21

Elliptic Curve Crypto (ECC) “Elliptic curve” is not a cryptosystem Elliptic curves are a different way to

do the math in public key system Elliptic curve versions DH, RSA, etc. Elliptic curves may be more efficient

o Fewer bits needed for same securityo But the operations are more complex

Page 22: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 22

Uses for Public Key Crypto

Page 23: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 23

Uses for Public Key Crypto

Confidentialityo Transmitting data over insecure

channelo Secure storage on insecure media

Digital signature provides integrity, authentication, and non-repudiationo No non-repudiation with symmetric

keys

Page 24: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

PKC(1): message encryption

Encrypt message M by Alice’s public. Message M can be decrypted only by

Alice’s private key..

24Chapter 4 -- Public Key Cryptography

M

M

Everyone can haveAlice’s public key.

But only Alice have her private key.

Page 25: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

PKC(2): Digital Signature Digital Signature

Alice signs her message by encrypting it using her private key.

Same as signing by handwriting.

Bob verifies Alice’s signature by decrypting it using her public key.

Nobody can write the signature because only Alice can have her private key.

25Chapter 4 -- Public Key Cryptography

Page 26: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 26

Non-non-repudiation Alice orders 100 shares of stock from Bob Alice computes MAC using symmetric key Stock drops, Alice claims she did not order Can Bob prove that Alice placed the order? No! Since Bob also knows the symmetric

key, he could have forged message Problem: Bob knows Alice placed the

order, but he can’t prove it

Page 27: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 27

Non-repudiation Alice orders 100 shares of stock from Bob Alice signs order with her private key Stock drops, Alice claims she did not order Can Bob prove that Alice placed the order? Yes! Only someone with Alice’s private key

could have signed the order This assumes Alice’s private key is not

stolen (revocation problem)

Page 28: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 28

Public Key Notation

Sign message M with Alice’s private key: [M]Alice

Encrypt message M with Alice’s public key: {M}Alice

Then{[M]Alice}Alice = M

[{M}Alice]Alice = M

Page 29: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 29

Public Key Infrastructure

Page 30: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Question in Public key

How can Bob be sure Alice’s public

key? Bob receives Alice’s public key from

any source or Alice herself. Then how can he trust it is really her public key?

30Chapter 4 -- Public Key Cryptography

Page 31: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 31

Public Key Certificate Certificate contains name of user and

user’s public key (and possibly other info) It is signed by the issuer, a Certificate

Authority (CA), such as VeriSign

M = (Alice, Alice’s public key), S = [M]CA

Alice’s Certificate = (M, S) Signature on certificate is verified using

CA’s public key:

Verify that M = {S}CA

Page 32: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 32

Certificate Authority Certificate authority (CA) is a trusted 3rd

party (TTP) creates and signs certificates Verify signature to verify integrity & identity

of owner of corresponding private keyo Does not verify the identity of the sender of

certificate certificates are public keys!

Big problem if CA makes a mistake (a CA once issued Microsoft certificate to someone else)

A common format for certificates is X.509

Page 33: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

X.509 certificate example(1)

Next lide is a certificate to verify the public key of www.freesoft.org

CA is Thwate Thwate signed at the bottom of the

certificate to verify the certificate. (signature)

Recipient can verify this certificate to confirm the signature by using Thwate’s public key.

Page 34: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application
Page 35: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

X.509 certificate example(2)

Then, how can recipient know Thwate’s public key?

Thwate lets the recipient know its public key through another certificate which is signed by its private key.

Next slide is the certificate through which Thwate releases its public key.

Page 36: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application
Page 37: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

X.509 certificate example(3)

Then, how can recipients trust this certificate? In other words, how can they know that Thwate is a trusted CA?

Page 38: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 38

PKI Public Key Infrastructure (PKI): the stuff

needed to securely use public key cryptoo Key generation and management

o Certificate authority (CA) or authorities

o Certificate revocation lists (CRLs), etc.

No general standard for PKI We mention 3 generic “trust models”

Page 39: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 39

PKI Trust Models Monopoly model

o One universally trusted organization is the CA for the known universe

o Big problems if CA is ever compromised

o Who will act as CA??? System is useless if you don’t trust the CA!

Page 40: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 40

PKI Trust Models

Oligarchyo Multiple trusted CAs

o This is approach used in browsers today

o Browser may have 80 or more certificates, just to verify certificates!

o User can decide which CAs to trust

Page 41: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 41

PKI Trust Models Anarchy model

o Everyone is a CA…

o Users must decide who to trust

o This approach used in PGP: “Web of trust”

Why is it anarchy? o Suppose a certificate is signed by Frank and

you don’t know Frank, but you do trust Bob and Bob says Alice is trustworthy and Alice vouches for Frank. Should you accept the certificate?

Many other trust models and PKI issues

Page 42: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 42

Confidentiality in the Real World

Page 43: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 43

Symmetric Key vs Public Key

Symmetric key +’so Speed

o No public key infrastructure (PKI) needed

o Disadvantage?

Public Key +’so Signatures (non-repudiation)

o No shared secret (but, private keys…)

o Disadvantage?

Page 44: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Comparison: symmetric key public key

Sym key crypto Need shared key Need 80 bit key for

high security (yr 2010)

~1,000,000 ops/s on 1GHz processor

>100x speedup in HW

Public key crypto Need

trusted(authentic) public key

Need 2048 bit key (RSA) for high security (yr 2010)

~100 signatures/s~1000 verify/s (RSA) on 1GHz processor

~10x speedup in HW

Page 45: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Encryption of large file by RSA

Time to encrypt 1024-bit RSA o ~1 ms on 1 GHz Pentium

Time to decrypt 1024-bit RSAo ~10 ms on 1 GHz Pentium

Time to encrypt 1 Mbyte file?o 1024 bits / RSA operation = 128 bytes = 27

o 1 Mbyte = 220 o time: 220 / 27 * 1ms = 213 ms = 8 sec!o Any other way of doing faster?

Page 46: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

conclusion?

Public key crypto is inefficient for encryption/decryptiono Take too much time

Symmetric key crypto is much faster to encrypt than public key crypto

However, symmetric key crypto raises a problem to exchange(distribute) symmetric key secretly

Page 47: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Key exchange for sym key crypto

Based on what we learned so far, we have the following methods to exchange(or distribute) symmetric keyo Manual exchange

Infeasible except for a small system

o Use Diffie-Hellmano Use public key crypto

Page 48: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 48

Notation Reminder Public key notation

o Sign M with Alice’s private key[M]Alice

o Encrypt M with Alice’s public key{M}Alice

Symmetric key notationo Encrypt P with symmetric key K

C = E(P,K) o Decrypt C with symmetric key K

P = D(C,K)

Page 49: Part 1  Cryptography 1 Chapter 4: Public Key Cryptography RSA Diffie-Hellman key Elliptic Curve Cryptography Public key crypto application

Part 1 Cryptography 49

Real World Confidentiality Hybrid cryptosystem

o Public key crypto to establish a keyo Symmetric key crypto to encrypt data…

Alice Bob

{K}Bob

E(Bob’s data, K)

E(Alice’s data, K)

Can Bob be sure he’s talking to Alice?