fundamentals of computer security
play

Fundamentals of Computer Security Spring 2015 Radu Sion Key - PowerPoint PPT Presentation

Fundamentals of Computer Security Spring 2015 Radu Sion Key Exchange Public Key Cryptography Public Key Cryptography Computer Security Fundamentals Fundamentals RSA February 10, 2015 2 Key Exchange Computer Security Fundamentals


  1. Fundamentals of Computer Security Spring 2015 Radu Sion Key Exchange Public Key Cryptography

  2. Public Key Cryptography Computer Security Fundamentals • Fundamentals • RSA February 10, 2015 2

  3. Key Exchange Computer Security Fundamentals • Compute a common, shared key – Called a symmetric key exchange protocol • Challenges: – I don’t know the other party – Alice and Bob vs. Eve (who eavesdroppes) February 10, 2015 3

  4. One Idea Computer Security Fundamentals • Alice: generates random a • Bob: generates random b • Alice sends: m a =g a • Bob sends: m b =g b • Alice does: (m b ) a = g ba =key • Bob does: (m a ) b = g ab =key • Does it work ?!!! Seems very simple ! February 10, 2015 4

  5. Make it difficult for bad guy Computer Security Fundamentals • Discrete logarithm problem hardness: – Given integers n and g and prime number p , compute k such that n = g k mod p – Solutions known for small p – Solutions computationally infeasible as p grows large February 10, 2015 5

  6. Diffie-Hellman Computer Security Fundamentals • Constants: prime p , integer g ≠ 0, 1, p – 1 – Known to all participants • Alice chooses private key k Alice , computes public key K Alice = g kAlice mod p • To communicate with Bob, Alice computes kAlice mod p K shared = K Bob • To communicate with Alice, Bob computes k Bob mod p K shared = K Alice – It can be shown these keys are equal February 10, 2015 6

  7. A couple of problems  Computer Security Fundamentals • Man in The Middle (MITM) – solution: authenticate first • Are we talking to the right person ? • Forward Secrecy (PFS) – future compromise does not impact past – station to station (STS) Protocol February 10, 2015 7

  8. Public Key Encryption Computer Security Fundamentals M=D private B (E public B ( M )) private A public A public B private B 1 “here’s my key”: public B B ob How does Alice know whom it talks to ? E publicB ( M ) What if Mallory simply replaces the 2 3 A lice public key with something else (e.g., own) ! M=D privateB (E publicB ( M )) oops !!! no problemo E ve M allory February 10, 2015 8

  9. “Signatures” Computer Security Fundamentals Signature … … something that only signer can produce … and everybody can verify verify = check for a unique association between the signer identity, text to be “signed” and the signature. February 10, 2015 9

  10. Certificate Authority Computer Security Fundamentals private A public A public B private B T rent 1 what is Bob’s public key ? Still … how does Alice know whom it B ob talks to ? Everybody knows Trent. E publicB ( M ) Everybody knows Trent’s public key. 2 3 A lice M=D privateB (E publicB ( M )) oops ? not as much … no problemo E ve M allory February 10, 2015 10

  11. What does this give us (1) Computer Security Fundamentals • Confidentiality – Only the owner of the private key knows it, so text enciphered with public key cannot be read by anyone except the owner of the private key • Authentication – Only the owner of the private key knows it, so text enciphered with private key must have been generated by the owner (“digital signature”) • In real life: encrypt a hash of the text only !!! February 10, 2015 11

  12. What does this give us (2) Computer Security Fundamentals • Integrity – Enciphered letters cannot be changed undetectably without knowing private key • Non-Repudiation – Message enciphered with private key came from someone who knew it February 10, 2015 12

  13. What we need to make it work Computer Security Fundamentals 1. It must be computationally easy to encipher or decipher a message given the appropriate key 2. It must be computationally infeasible to derive the private key from the public key 3. It must be computationally infeasible to determine the private key from a chosen plaintext attack February 10, 2015 13

  14. Trapdoor Computer Security Fundamentals Trapdoor function (Diffie and Hellman 1976): function that is easy to compute but believed hard to invert without additional information (the “trapdoor”). We can then make the trapdoor the secret key  Example: factoring primes (computing n=p*q is easy, but given n, finding p and q is believed to be hard) Things can be proven otherwise after a while: e.g., Merkle-Hellman Knapsack cryptosystem Not all hard problems are trapdoors: e.g., discrete logarithm problem-related functions February 10, 2015 14

  15. RSA: Rivest, Shamir, Adelman Computer Security Fundamentals • Exponentiation cipher • Relies on the difficulty of determining the number of numbers relatively prime to a large integer n • Or equivalently, on the difficulty of factoring of large numbers into prime factors February 10, 2015 15

  16. Animated version Computer Security Fundamentals message m<n 1 2 RSA Encryption A lice n=pq e=17 4 c=m e mod n 3 Extended Euclidean RSA Decryption d = e -1 mod (p-1)(q-1) 5 m=c d mod n B ob February 10, 2015 16

  17. More boring version Computer Security Fundamentals • Key generation – Choose large primes p,q; let n=pq – Choose e relatively prime to (p-1)(q-1) (to have inverse !) – Public key <e,n> – Private key <d,n> where d = e -1 mod (p-1)(q-1) • Can do it fast using Extended Euclidean • Encrypt: c = m e mod n • Decrypt: m = c d mod n • de = 1 mod (p-1)(q-1), so m = (me)d mod n • Breakable if we can factor  February 10, 2015 17

  18. Larger Messages? Computer Security Fundamentals • Break message into pieces no greater in value than n-1 (why ?) • Encrypt each part separately • Use some sort of “chaining” to avoid block - related attacks • Will likely use some padding etc. We discuss this later. February 10, 2015 18

  19. Ground Rules Computer Security Fundamentals • Attack: Exhaustive search for key • Attack: Factoring n • Timing Attacks: how long does encryption take ? – leaks information about the key – Solutions ? • Attack: maintain dictionary of encrypted (public key) messages (“forward search”) • Common modulus problem • etc. (many solved using smart padding) February 10, 2015 19

  20. RSA Common Modulus Problem Computer Security Fundamentals same modulus n later, same message m 1 1 c 1 =m e 1 mod n c 2 =m e 2 mod n public network A lice B ob Modified Extended Euclidean 2 find r,s: re 1 + se 2 = 1 Extended Euclidean 3 -1 mod n c 2 E ve 4 r * (c 2 -1 ) -s = m re 1 +se 2 mod n m = c 1 February 10, 2015 20

  21. More Problems  Computer Security Fundamentals • Malleable (public key is known!) • Probing – If I get e(m), I can check if m=m’ – Solution: random pad – we discuss semantic security later • Efficiency: can be made faster (modulo calculus tricks) • Potential use interference: Encryption with Signatures • Generating keys expensive – Select large primes – Find e relatively prime to (p-1)(q-1) • In practice, often e=3,5,17,65537 • For x<n no modular reduction takes place !!! – Also, given a signatures for m1, m2; can compute signature for (some) other messages February 10, 2015 21

  22. Back to Diffie Hellman Computer Security Fundamentals • Man in the middle solution: authentication and signatures on certain messages by first acquiring public/private key pairs – But why not use these keys to communicate then (instead of generating key every time) ? • Perfect forward secrecy  February 10, 2015 22

  23. Think about this Computer Security Fundamentals • Which one should go first: – Authentication or Key Exchange ? February 10, 2015 23

Recommend


More recommend