cryptography
play

Cryptography Deian Stefan Adopted slides from Kirill Levchenko and - PowerPoint PPT Presentation

CSE 127: Computer Security Cryptography Deian Stefan Adopted slides from Kirill Levchenko and Dan Boneh Cryptography Is: A tremendous tool The basis for many security mechanisms Is not: The solution to all security problems


  1. CSE 127: Computer Security Cryptography Deian Stefan Adopted slides from Kirill Levchenko and Dan Boneh

  2. Cryptography • Is: ➤ A tremendous tool ➤ The basis for many security mechanisms • Is not: ➤ The solution to all security problems ➤ Reliable unless implemented and used properly ➤ Something you should try to invent yourself ➤ Blockchain

  3. Cryptography • Is: ➤ A tremendous tool ➤ The basis for many security mechanisms • Is not: ➤ The solution to all security problems ➤ Reliable unless implemented and used properly ➤ Something you should try to invent yourself ➤ Blockchain

  4. Cryptography • Is: ➤ A tremendous tool ➤ The basis for many security mechanisms • Is not: ➤ The solution to all security problems ➤ Reliable unless implemented and used properly ➤ Something you should try to invent yourself ➤ Blockchain

  5. This class: secure communication Eve Alice Bob ➤ Authenticity: Parties cannot be impersonated ➤ Secrecy: No one else can read messages ➤ Integrity: messages cannot be modified

  6. Attacker models Eve Alice Bob ➤ Passive attacker: Eve only snoops on channel ➤ Active attacker: Eve can snoop, inject, block, tamper, etc.

  7. In the real world (SSL/TLS) ➤ Handshake Protocol: Establish shared secret key 
 using public-key cryptography ➤ Record Layer: Transmit data protected by symmetric-key cryptography (using negotiated key)

  8. Outline • Symmetric-key crypto ➤ Encryption ➤ Hash functions ➤ Message authentication code • Asymmetric (public-key) crypto ➤ Encryption ➤ Digital signatures

  9. Symmetric-key encryption m c c m E D k k • Encryption: (key, plaintext) → ciphertext ➤ E k (m) = c • Decryption: (key, ciphertext) → plaintext ➤ D k (c) = m

  10. Symmetric-key encryption m c c m E D k k • One-time key: used to encrypt one message ➤ E.g., encrypted email, new key generate per email • Multi-use key: used to encrypt multiple messages ➤ E.g., SSL, same key used to encrypt many packets

  11. Symmetric-key encryption m c c m E D k k • One-time key: used to encrypt one message ➤ E.g., encrypted email, new key generate per email • Multi-use key: used to encrypt multiple messages ➤ E.g., SSL, same key used to encrypt many packets

  12. Symmetric-key encryption n n m c c m E D k k • One-time key: used to encrypt one message ➤ E.g., encrypted email, new key generate per email • Multi-use key: used to encrypt multiple messages ➤ E.g., SSL, same key used to encrypt many packets

  13. Symmetric-key encryption Need unique/random nonce n n m c c m E D k k • One-time key: used to encrypt one message ➤ E.g., encrypted email, new key generate per email • Multi-use key: used to encrypt multiple messages ➤ E.g., SSL, same key used to encrypt many packets

  14. Encryption properties • Encryption and decryption are inverse operations ➤ D k (E k (m)) = m • Secrecy: ciphertext reveals nothing about plaintext ➤ More formally: can’t distinguish which of two plaintexts were encrypted without key

  15. First example: One Time Pad Vernam (1917) 0 1 0 1 1 1 0 0 1 0 Key: ⊕ 1 1 0 0 0 1 1 0 0 0 Plaintext: 1 0 0 1 1 0 1 0 1 0 Ciphertext: ➤ Encryption: c = E k (m) = m ⨁ k ➤ Decryption: D k (c) = c ⨁ k = (m ⨁ k) ⨁ k = m

  16. First example: One Time Pad Vernam (1917) 0 1 0 1 1 1 0 0 1 0 Key: ⊕ 1 1 0 0 0 1 1 0 0 0 Plaintext: 1 0 0 1 1 0 1 0 1 0 Ciphertext: ➤ Encryption: c = E k (m) = m ⨁ k ➤ Decryption: D k (c) = c ⨁ k = (m ⨁ k) ⨁ k = m

  17. First example: One Time Pad Vernam (1917) 0 1 0 1 1 1 0 0 1 0 Key: ⊕ 1 1 0 0 0 1 1 0 0 0 Plaintext: 1 0 0 1 1 0 1 0 1 0 Ciphertext: ➤ Encryption: c = E k (m) = m ⨁ k ➤ Decryption: D k (c) = c ⨁ k = (m ⨁ k) ⨁ k = m

  18. OTP security • Shannon (1949) ➤ Information theoretic security: without key, ciphertext reveals no “information” about plaintext • Problems with OTP ➤ Can only use key once ➤ Key is as long as the message

  19. Computational cryptography • Want the size of the secret to be small ➤ If pre-arranged secret smaller than message, not all plaintexts equally probable — ciphertext reveals info about plaintext • Modern cryptography based on idea that learning anything about plaintext from ciphertext is computationally difficult without secret

  20. Stream ciphers • Problem: OTP key is as long as message • Solution: Pseudo random key key ➤ Examples: ChaCha, Salsa, Sosemanuk, etc.

  21. Stream ciphers • Problem: OTP key is as long as message • Solution: Pseudo random key key PRG ➤ Examples: ChaCha, Salsa, Sosemanuk, etc.

  22. Stream ciphers • Problem: OTP key is as long as message • Solution: Pseudo random key key E k (m) = PRG (k) ⊕ m PRG ⊕ message ciphertext ➤ Examples: ChaCha, Salsa, Sosemanuk, etc.

  23. Stream ciphers • Problem: OTP key is as long as message • Solution: Pseudo random key key E k (m) = PRG (k) ⊕ m PRG ⊕ message ciphertext ➤ Examples: ChaCha, Salsa, Sosemanuk, etc.

  24. Stream ciphers • Problem: OTP key is as long as message • Solution: Pseudo random key Computationally hard to distinguish from random key E k (m) = PRG (k) ⊕ m PRG ⊕ message ciphertext ➤ Examples: ChaCha, Salsa, Sosemanuk, etc.

  25. Dangers in using stream ciphers • Can we use a key more than once? ➤ E.g., c 1 ← m 1 ⊕ PRG(k) c 2 ← m 2 ⊕ PRG(k) ➤ A: yes, B: no ➤ Eavesdropper does: c 1 ⊕ c 2 → m 1 ⊕ m 2 ➤ Enough redundant information in English that: 
 m 1 ⊕ m 2 → m 1 , m 2

  26. Dangers in using stream ciphers • Can we use a key more than once? ➤ E.g., c 1 ← m 1 ⊕ PRG(k) c 2 ← m 2 ⊕ PRG(k) ➤ A: yes, B: no ➤ Eavesdropper does: c 1 ⊕ c 2 → m 1 ⊕ m 2 ➤ Enough redundant information in English that: 
 m 1 ⊕ m 2 → m 1 , m 2

  27. Block ciphers: crypto work horses m c c m E D k k • Block ciphers operate on fixed-size blocks ➤ E.g., 3DES: |m| = |c| = 64 bits, |k| = 168 bits ➤ E.g., AES: |m| = |c| = 128 bits, |k| = 128, 192, 256 • A block cipher = permutation of fixed-size inputs ➤ Each input mapped to exactly one output

  28. How do they work? key k key expansion k 1 k 2 k 3 k n R(k 1 , ⋅ ) R(k 2 , ⋅ ) R(k 3 , ⋅ ) R(k n , ⋅ ) m c R(k,m): round function for 3DES (n=48), for AES-128 (n=10)

  29. How do they work?

  30. Challenges with block ciphers • Block ciphers operate on single fixed-size block • How do we encrypt longer messages? ➤ Several modes of operation for longer messages • How do we deal with messages that are not block-aligned? ➤ Must pad messages in a distinguishable way

  31. Challenges with block ciphers • Block ciphers operate on single fixed-size block • How do we encrypt longer messages? ➤ Several modes of operation for longer messages • How do we deal with messages that are not block-aligned? ➤ Must pad messages in a distinguishable way

  32. Challenges with block ciphers • Block ciphers operate on single fixed-size block • How do we encrypt longer messages? ➤ Several modes of operation for longer messages • How do we deal with messages that are not block-aligned? ➤ Must pad messages in a distinguishable way

  33. ECB mode Source: wikipedia

  34. Is ECB good? A: yes, B: no Source: wikipedia

  35. Is ECB good? A: yes, B: no E k ( )= Source: wikipedia

  36. CBC mode with random IV Source: wikipedia

  37. CBC mode with random IV Subtle attacks that abuse padding possible! Source: wikipedia

  38. CTR mode with random IV Source: wikipedia

  39. CTR mode with random IV Essentially use block cipher as stream cipher! Source: wikipedia

  40. What security do we actually get? • All encryption breakable by brute force given enough knowledge about plaintext • Try to decrypt ciphertext with every possible key until a valid plaintext is found • Attack complexity proportional to size of key space ➤ 64-bit key requires 2 ⁶ ⁴ decryption attempts

  41. Outline • Symmetric-key crypto ➤ Encryption ➤ Hash functions ➤ Message authentication code • Asymmetric (public-key) crypto ➤ Encryption ➤ Digital signatures

  42. 
 
 Hash Functions • A (cryptographic) hash function maps arbitrary length input into a fixed-size string 
 m h=H(m) H h ➤ |m| is arbitrarily large ➤ |h| is fixed, usually 128-512 bits 


  43. Hash Function Properties • Finding a pre-image is hard ➤ Given h, find m such that H(m)=h • Finding a collision is hard ➤ Find m 1 and m 2 such that H(m 1 )=H(m 2 )

  44. Hash Functions • MD5: Message Digest ➤ Designed by Ron Rivest ➤ Very popular hash function ➤ Output: 128 bits ➤ Broken — do not use!

  45. Hash Functions • SHA-1: Secure Hash Algorithm 1 ➤ Designed by NSA ➤ Output: 160 bits ➤ Broken — do not use! • SHA-2: Secure Hash Algorithm 2 ➤ Designed by NSA ➤ Output: 224, 256, 384, or 512 bits ➤ Recommended for use today

  46. Hash Functions • SHA-3: Secure Hash Algorithm 3 ➤ Result of NIST SHA-3 contest ➤ Output: arbitrary size ➤ Replacement once SHA-2 broken

  47. Outline • Symmetric-key crypto ➤ Encryption ➤ Hash functions ➤ Message authentication code • Asymmetric (public-key) crypto ➤ Encryption ➤ Digital signatures

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend