From a302f2337e8cae9650fd1fd2c56258efb758c791 Mon Sep 17 00:00:00 2001 From: Brian Zawisza Date: Mon, 16 Oct 2017 15:06:24 -0400 Subject: [PATCH] updates --- notes.ctb_HTML/cs306--Notes--Attacks.html | 2 +- ..._encryption--Authenticate-then-encrypt.html | 2 +- ...d_encryption--Encrypt-and-authenticate.html | 2 +- ..._encryption--Encrypt-then-authenticate.html | 2 +- ...cs306--Notes--Authenticated_encryption.html | 2 +- ...--Block_Cipher_Modes--CBC--Chained_CBC.html | 2 +- .../cs306--Notes--Block_Cipher_Modes--CBC.html | 2 +- .../cs306--Notes--Block_Cipher_Modes--CTR.html | 2 +- .../cs306--Notes--Block_Cipher_Modes--ECB.html | 2 +- .../cs306--Notes--Block_Cipher_Modes--OFB.html | 2 +- ...ncryption--asymmetric--algorithms--RSA.html | 2 +- ...es--Encryption--asymmetric--algorithms.html | 2 +- ...ryption--asymmetric--hybrid_encryption.html | 2 +- .../cs306--Notes--Encryption--asymmetric.html | 2 +- ...306--Notes--Encryption--symmetric--AES.html | 2 +- ...306--Notes--Encryption--symmetric--DES.html | 2 +- ...s--Encryption--symmetric--One_Time_Pad.html | 2 +- ...ryption--symmetric--Substitution_Boxes.html | 2 +- ...ciphers--Caesar's_Cipher--Shift_Cipher.html | 2 +- ...hers--Caesar's_Cipher--Vigenere_cipher.html | 2 +- ...ic--classical_ciphers--Caesar's_Cipher.html | 2 +- ...er--Mono-alphabetic_substituion_cipher.html | 2 +- ...-classical_ciphers--Subsitution_Cipher.html | 2 +- .../cs306--Notes--Encryption--symmetric.html | 2 +- notes.ctb_HTML/cs306--Notes--Encryption.html | 2 +- ...es--Applications--Cloud_Storage--Plain.html | 2 +- ...ns--Cloud_Storage--Secure--merkle_tree.html | 2 +- ...--Cloud_Storage--Secure--separate_file.html | 2 +- ...ons--Cloud_Storage--Secure--whole_file.html | 2 +- ...s--Applications--Cloud_Storage--Secure.html | 2 +- ...s--Hashes--Applications--Cloud_Storage.html | 2 +- ...-Digital_Envelops_-_Commitment_Schemes.html | 2 +- ...Hashes--Applications--File_Identifiers.html | 2 +- ...lications--Forward-secure_key_rotation.html | 2 +- ...Notes--Hashes--Applications--MAC--HMAC.html | 2 +- ...s--Hashes--Applications--MAC--Insecure.html | 2 +- ...s306--Notes--Hashes--Applications--MAC.html | 2 +- .../cs306--Notes--Hashes--Applications.html | 2 +- ...es--Hashes--Constructing--Davies-Meyer.html | 2 +- ...--Hashes--Constructing--Merkle-Damgard.html | 2 +- .../cs306--Notes--Hashes--Constructing.html | 2 +- .../cs306--Notes--Hashes--Functions--MD5.html | 2 +- .../cs306--Notes--Hashes--Functions--SHA1.html | 2 +- .../cs306--Notes--Hashes--Functions--SHA2.html | 2 +- .../cs306--Notes--Hashes--Functions--SHA3.html | 2 +- notes.ctb_HTML/cs306--Notes--Hashes.html | 2 +- ...-Asymmetric-key_message_authentication.html | 2 +- ...uthentication--Digital_Signatures--RSA.html | 2 +- ...age_Authentication--Digital_Signatures.html | 2 +- ...otes--Message_Authentication--MAC--CBC.html | 2 +- ..._Authentication--MAC--Domain_extension.html | 2 +- ...sage_Authentication--MAC--Fixed_Length.html | 2 +- ...age_Authentication--MAC--Hashing--HMAC.html | 2 +- ...Authentication--MAC--Hashing--Insecure.html | 2 +- ...--Message_Authentication--MAC--Hashing.html | 2 +- ...06--Notes--Message_Authentication--MAC.html | 2 +- .../cs306--Notes--Message_Authentication.html | 2 +- ...domness--Linear_congruential_generator.html | 2 +- .../cs306--Notes--Pseudo_randomness.html | 2 +- .../cs306--Notes--Types_of_Security.html | 2 +- notes.ctb_HTML/cs306--Notes.html | 2 +- notes.ctb_HTML/cs306--lectures--lecture_1.html | 2 +- notes.ctb_HTML/cs306--lectures--lecture_2.html | 2 +- notes.ctb_HTML/cs306--lectures--lecture_3.html | 2 +- notes.ctb_HTML/cs306--lectures--lecture_4.html | 2 +- notes.ctb_HTML/cs306--lectures--lecture_5.html | 2 +- notes.ctb_HTML/cs306--lectures--lecture_6.html | 2 +- notes.ctb_HTML/cs306--lectures.html | 2 +- notes.ctb_HTML/cs306.html | 2 +- notes.ctb_HTML/images/58-1.png | Bin 0 -> 441728 bytes notes.ctb_HTML/images/{2-1.png => 67-1.png} | Bin 71 files changed, 69 insertions(+), 69 deletions(-) create mode 100644 notes.ctb_HTML/images/58-1.png rename notes.ctb_HTML/images/{2-1.png => 67-1.png} (100%) diff --git a/notes.ctb_HTML/cs306--Notes--Attacks.html b/notes.ctb_HTML/cs306--Notes--Attacks.html index d673c92..b71e846 100644 --- a/notes.ctb_HTML/cs306--Notes--Attacks.html +++ b/notes.ctb_HTML/cs306--Notes--Attacks.html @@ -142,5 +142,5 @@
  • homework
  • -

    Attacks

    eavesdropping
    - Posses collection of ciphertext -> ciphertext only attack
    - Posses collection of plaintext/ciphertext pairs -> known plaintext attack
    - Posses collection of plaintext/ciphertext pairs for plaintexts selected by the attack -> chosen plaintext attack
    - Posses collection of plaintext/ciphertext pairs for plaintexts and ciphertexts selected by the attacker -> chosen ciphertext attack

    ◇ EAV-attack
    indistinguishability for a single message against an eavesdropper

    • An attacker may posses a collection of plaintext/ciphertext pairs for plaintexts selected by the attacker
    Statistical Attack

    dictionary attacks
    man in the middle attack
    length-extension attack
    brute force attack
    birthday attack
    replay attack
    reflection attac
    • Reordering attack -> verify the block index i
    • Truncation attack
    mix and match attack
    etc...
    +

    Attacks

    eavesdropping
    - Posses collection of ciphertext -> ciphertext only attack
    - Posses collection of plaintext/ciphertext pairs -> known plaintext attack
    - Posses collection of plaintext/ciphertext pairs for plaintexts selected by the attack -> chosen plaintext attack
    - Posses collection of plaintext/ciphertext pairs for plaintexts and ciphertexts selected by the attacker -> chosen ciphertext attack

    • An attacker may posses a collection of ciphertext:
    ◇ ciphertext only attack
    ◇ EAV-attack
    ▪indistinguishability for a single message against an eavesdropper
    ▪An attacker may posses a collection of plaintext/ciphertext pairs for plaintexts selected by the attacker
    ◇ Chosen plaintext attack
    ◇ CPA-attack
    ▪ indistinguishability for a single message against an eavesdropper

    • An attacker may posses a collection of plaintext/ciphertext pairs for plaintexts selected by the attacker
    Statistical Attack

    dictionary attacks
    man in the middle attack
    length-extension attack
    brute force attack
    birthday attack
    replay attack
    reflection attac
    • Reordering attack -> verify the block index i
    • Truncation attack
    mix and match attack
    Alteration
    Denial-of-service
    Masquerading
    Repudiation
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Authenticate-then-encrypt.html b/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Authenticate-then-encrypt.html index 96474ed..9eefbfc 100644 --- a/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Authenticate-then-encrypt.html +++ b/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Authenticate-then-encrypt.html @@ -142,5 +142,5 @@
  • homework
  • -

    Authenticate-then-encrypt

    Authenticate-then-encrypt


    • Mackm(m) -> t; Encke(m||t) -> c; send ciphertext c
    • if Decke(c) = m || t ≠ fail and Vrfykm(m,t) accepts,
    ◇ output m
    ◇ else output fail
    • insecure
    +

    Authenticate-then-encrypt

    Authenticate-then-encrypt


    • Mackm(m) -> t; Encke(m||t) -> c; send ciphertext c
    • if Decke(c) = m || t ≠ fail and Vrfykm(m,t) accepts,
    ◇ output m
    ◇ else output fail
    • insecure
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Encrypt-and-authenticate.html b/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Encrypt-and-authenticate.html index 9cc2a41..f34d084 100644 --- a/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Encrypt-and-authenticate.html +++ b/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Encrypt-and-authenticate.html @@ -142,5 +142,5 @@
  • homework
  • -

    Encrypt-and-authenticate

    Encrypt-and-authenticate


    • Encke(m) -> c; Mackm(m) -> t; send ciphertext (c, t)
    • if Decke(c) ≠ fail and Vrfykm(m,t) accepts
    ◇ output m
    ◇ else output fail
    • Insecure
    ◇ MAC tag t may leak information about m
    ◇ if MAC is deterministic (CBC-MAC) then ΠAE is not CPA-secure
    +

    Encrypt-and-authenticate

    Encrypt-and-authenticate


    • Encke(m) -> c; Mackm(m) -> t; send ciphertext (c, t)
    • if Decke(c) ≠ fail and Vrfykm(m,t) accepts
    ◇ output m
    ◇ else output fail
    • Insecure
    ◇ MAC tag t may leak information about m
    ◇ if MAC is deterministic (CBC-MAC) then ΠAE is not CPA-secure
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Encrypt-then-authenticate.html b/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Encrypt-then-authenticate.html index 3a4a80c..33f2793 100644 --- a/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Encrypt-then-authenticate.html +++ b/notes.ctb_HTML/cs306--Notes--Authenticated_encryption--Encrypt-then-authenticate.html @@ -142,5 +142,5 @@
  • homework
  • -

    Encrypt-then-authenticate

    Encrypt-then-authenticate


    • Encke(m) -> c; Mackm(c) ->t; send ciphertext (c, t)
    • if Vrfykm(c,t) accepts then
    ◇ output Decke(c) = m,
    ◇ else output fail
    • secure scheme as long as ΠM is a strong MAC
    +

    Encrypt-then-authenticate

    Encrypt-then-authenticate


    • Encke(m) -> c; Mackm(c) ->t; send ciphertext (c, t)
    • if Vrfykm(c,t) accepts then
    ◇ output Decke(c) = m,
    ◇ else output fail
    • secure scheme as long as ΠM is a strong MAC
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Authenticated_encryption.html b/notes.ctb_HTML/cs306--Notes--Authenticated_encryption.html index 7bfdaf2..d885374 100644 --- a/notes.ctb_HTML/cs306--Notes--Authenticated_encryption.html +++ b/notes.ctb_HTML/cs306--Notes--Authenticated_encryption.html @@ -142,5 +142,5 @@
  • homework
  • -

    Authenticated encryption

    Authenticated encryption constructions


    • CPA-secure encryption scheme ΠE=(Enc, Dec)
    • a secure MAC ΠM = (MAC, Vrfy)
    • instantiated using independent secret keys ke, km
    • order matters
    • secrecy and integrity is protected

    • Possible attacks:
    ◇ reordering attack - counters can be used to eliminate reordering/replays
    ◇ reflection attack - directional bit can be used to eliminate reflections
    ◇ replay attack - c = Enck(ba->b || ctrA,b || m); ctrA,B++
    +

    Authenticated encryption

    Authenticated encryption constructions


    • CPA-secure encryption scheme ΠE=(Enc, Dec)
    • a secure MAC ΠM = (MAC, Vrfy)
    • instantiated using independent secret keys ke, km
    • order matters
    • secrecy and integrity is protected

    • Possible attacks:
    ◇ reordering attack - counters can be used to eliminate reordering/replays
    ◇ reflection attack - directional bit can be used to eliminate reflections
    ◇ replay attack - c = Enck(ba->b || ctrA,b || m); ctrA,B++
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CBC--Chained_CBC.html b/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CBC--Chained_CBC.html index cd69c11..35d37a5 100644 --- a/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CBC--Chained_CBC.html +++ b/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CBC--Chained_CBC.html @@ -142,5 +142,5 @@
  • homework
  • -

    Chained CBC

    Chained CBC


    • Uses last block ciphertext as IV of next message
    • not CPA-secure
    +

    Chained CBC

    Chained CBC


    • Uses last block ciphertext as IV of next message
    • not CPA-secure
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CBC.html b/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CBC.html index 604b31a..e4cd21d 100644 --- a/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CBC.html +++ b/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CBC.html @@ -142,5 +142,5 @@
  • homework
  • -

    CBC

    CBC: Cipher Block Chaining


    • ECB produces the same ciphertext on the same ciphertext under the same key
    • The ciphertext of the previous block can be mixed with the plaintext of the current block (XOR). an initial vector is used as the initial ciphertext
    • Previous ciphertext block is combined with current plaintext block C[i] = Ek(C[i-1]⊕P[i])
    • C[-1] = IV; a random block separately transmitted encrypted
    • decryption: P[i] = C[i-1]⊕Dk(C[i])
    images\21-1.png

    images\21-2.png
    +

    CBC

    CBC: Cipher Block Chaining


    • ECB produces the same ciphertext on the same ciphertext under the same key
    • The ciphertext of the previous block can be mixed with the plaintext of the current block (XOR). an initial vector is used as the initial ciphertext
    • Previous ciphertext block is combined with current plaintext block C[i] = Ek(C[i-1]⊕P[i])
    • C[-1] = IV; a random block separately transmitted encrypted
    • decryption: P[i] = C[i-1]⊕Dk(C[i])
    images\21-1.png

    images\21-2.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CTR.html b/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CTR.html index 65edbe8..65eb746 100644 --- a/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CTR.html +++ b/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--CTR.html @@ -142,5 +142,5 @@
  • homework
  • -

    CTR


    CTR - Counter Mode


    • CTR uniform
    • message length doesn't need to be multiple of n
    • resembles synchronized stream-cipher mode
    • CPA-secure if Fk is PRF
    • no need for Fk to be invertible
    • parallelizable
    images\29-1.png
    +

    CTR

    CTR - Counter Mode


    • CTR uniform
    • message length doesn't need to be multiple of n
    • resembles synchronized stream-cipher mode
    • CPA-secure if Fk is PRF
    • no need for Fk to be invertible
    • parallelizable
    images\29-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--ECB.html b/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--ECB.html index d06f2cd..1fd9824 100644 --- a/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--ECB.html +++ b/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--ECB.html @@ -142,5 +142,5 @@
  • homework
  • -

    ECB


    ECB: Electronic Code Book


    • Block P[i] encrypted into ciphertext block C[i] = Ek(P[i])
    • Block P[i] decrypted into ciphertext block M[i] = Dk(C[i])
    images\20-1.png
    • Strengths
    ◇ Simple
    ◇ Parallel encryptions
    ◇ Tolerates loss or damage
    • Weaknesses
    ◇ Documents and images are not suitable since patterns in the plaintext are repeated in the ciphertext
    images\20-2.png

    • deterministic - not CPA secure
    • not EAV-secure
    images\20-3.png
    +

    ECB

    ECB: Electronic Code Book


    • Block P[i] encrypted into ciphertext block C[i] = Ek(P[i])
    • Block P[i] decrypted into ciphertext block M[i] = Dk(C[i])
    images\20-1.png
    • Strengths
    ◇ Simple
    ◇ Parallel encryptions
    ◇ Tolerates loss or damage
    • Weaknesses
    ◇ Documents and images are not suitable since patterns in the plaintext are repeated in the ciphertext
    images\20-2.png

    • deterministic - not CPA secure
    • not EAV-secure
    images\20-3.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--OFB.html b/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--OFB.html index 870d6c7..ffea207 100644 --- a/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--OFB.html +++ b/notes.ctb_HTML/cs306--Notes--Block_Cipher_Modes--OFB.html @@ -142,5 +142,5 @@
  • homework
  • -

    OFB


    OFB - Output Feedback


    • IV uniform
    • message length doesn't need to be multiple of n
    • resembles synchronizes stream-cipher mode
    • stateful variant (chaining) is secure
    • CPA-secure if Fk is PRF
    images\28-1.png
    +

    OFB

    OFB - Output Feedback


    • IV uniform
    • message length doesn't need to be multiple of n
    • resembles synchronizes stream-cipher mode
    • stateful variant (chaining) is secure
    • CPA-secure if Fk is PRF
    images\28-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--algorithms--RSA.html b/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--algorithms--RSA.html index bac18aa..e5d8d54 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--algorithms--RSA.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--algorithms--RSA.html @@ -142,5 +142,5 @@
  • homework
  • -

    RSA

    RSA Algorithm


    General case
    • Setup (run by a given user)
    ◇ n = p * q, with p and q primes
    ◇ e relatively prime to Φ(n) = (p - 1)(q - 1)
    ◇ d inverse of e in ZΦ(n)
    • Keys
    ◇ public key is Kpk = (n, e)
    ◇ private key is Ksk = d
    • Encryption
    ◇ C = Me mod n for plaintext M in Zn
    • Decryption
    ◇ M = Cd mod n
    images\75-1.png
    images\75-2.png

    Security


    • Sign the hash
    • Current practice is using 2048-bit long RSA keys (617 decimal digits)
    • Plain RSA is deteministic
    • homomorphic

    Issues


    • Requires various algorithms
    ◇ Generation of random numbers
    ◇ primality testing
    ◇ computation of the GCD
    ◇ Computation of the multiplicative inverse

    Real-world usage


    • Randomized RSA
    ◇ To encrypt message M under an RSA public key (e, n) generate a new random session AES key K, compute ciphertext as [Ke mod n, AESk(m)]
    ◇ prevents an adversary distinguishing two encryptions of the same M since K is chosen at random every time encryption takes place
    • Optimal Asymmetric Encryption Padding (OAEP)
    ◇ roughly to encrypt M , choose random r, encode M as M' = [X = M ⊕ H1(r), Y = r ⊕ H2(X)] where H1 and H2 are cryptographic hash functions, then encrypt it as (M')e mod n
    +

    RSA

    RSA Algorithm


    General case
    • Setup (run by a given user)
    ◇ n = p * q, with p and q primes
    ◇ e relatively prime to Φ(n) = (p - 1)(q - 1)
    ◇ d inverse of e in ZΦ(n)
    • Keys
    ◇ public key is Kpk = (n, e)
    ◇ private key is Ksk = d
    • Encryption
    ◇ C = Me mod n for plaintext M in Zn
    • Decryption
    ◇ M = Cd mod n
    images\75-1.png
    images\75-2.png

    Security


    • Sign the hash
    • Current practice is using 2048-bit long RSA keys (617 decimal digits)
    • Plain RSA is deteministic
    • homomorphic

    Issues


    • Requires various algorithms
    ◇ Generation of random numbers
    ◇ primality testing
    ◇ computation of the GCD
    ◇ Computation of the multiplicative inverse

    Real-world usage


    • Randomized RSA
    ◇ To encrypt message M under an RSA public key (e, n) generate a new random session AES key K, compute ciphertext as [Ke mod n, AESk(m)]
    ◇ prevents an adversary distinguishing two encryptions of the same M since K is chosen at random every time encryption takes place
    • Optimal Asymmetric Encryption Padding (OAEP)
    ◇ roughly to encrypt M , choose random r, encode M as M' = [X = M ⊕ H1(r), Y = r ⊕ H2(X)] where H1 and H2 are cryptographic hash functions, then encrypt it as (M')e mod n
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--algorithms.html b/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--algorithms.html index 10f0349..1f40a54 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--algorithms.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--algorithms.html @@ -142,5 +142,5 @@
  • homework
  • -

    algorithms


    +

    algorithms

    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--hybrid_encryption.html b/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--hybrid_encryption.html index e6760a1..66274bc 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--hybrid_encryption.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric--hybrid_encryption.html @@ -142,5 +142,5 @@
  • homework
  • -

    hybrid encryption

    ybrid encryption


    images\69-1.png
    • reduces public-key crypto to secret-key crypto
    • better performance
    • apply public-key encryption on random key k
    • use k for secret-key encryption of m
    images\69-2.png
    • Using KEM/DEM approach
    ◇ encapsulate secret key k into c
    ◇ use k for secret-key encryption of m
    ◇ KEM: key-encapsulation mechanism - Encaps
    ◇ DEM: data encapsulation machanism - Enc'
    ◇ KEM/DEM scheme
    ▪ CPA-secure if KEM is CPA-secure and Enc' is EAV-secure
    ▪ CCA-secure if KEM and Enc' are CCA-secure
    +

    hybrid encryption

    Hybrid encryption


    images\69-1.png
    • reduces public-key crypto to secret-key crypto
    • better performance
    • apply public-key encryption on random key k
    • use k for secret-key encryption of m
    images\69-2.png
    • Using KEM/DEM approach
    ◇ encapsulate secret key k into c
    ◇ use k for secret-key encryption of m
    ◇ KEM: key-encapsulation mechanism - Encaps
    ◇ DEM: data encapsulation machanism - Enc'
    ◇ KEM/DEM scheme
    ▪ CPA-secure if KEM is CPA-secure and Enc' is EAV-secure
    ▪ CCA-secure if KEM and Enc' are CCA-secure
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric.html b/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric.html index 0bd0941..b0e74c4 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--asymmetric.html @@ -142,5 +142,5 @@
  • homework
  • -

    asymmetric

    ublic-key encryption


    • assumes trusted setup
    ◇ PKI (public keys are public) and secure storage (private keys remain private)
    • Many parties can encrypt, but only one party can decrypt
    images\68-1.png
    • defined by message space M and triplet of algorithms (Gen, Enc, Dec)
    ◇ Gen: probabilistic algorithm that outputs a public-key pair (Upk, Usk) for user U
    ◇ Enc: probabilistic algorithm that on input plantextm and public key, outputs ciphertext c
    ◇ Dec: deterministic alogirthm that on input ciphertext c and private key, outputs a plaintext m

    Security


    • CPA-securty -- randomized encryption is required
    • Easy to check (Upk, Usk) is a valid key pair
    • infeasible to produce Usk from Upk
    • the attacker can posses the rcipient's public key
    ◇ all 3 collapse to the same attack type
    ▪ ciphertext-only attack
    ▪ known plaintext attack
    ▪ chosen-plaintext attack
    • EAV-security
    ◇ A scheme is EAV-secure if no PPT attacker can correctly guess b non-negligibly better than randomly guessing
    ▪ even when it can use the recipient's public key pk
    ▪ one message extends to multiple messages
    ▪ fixed-length messages extends to arbitrary length messages
    ▪ probabilistic encryption is necessary
    • CPA-security
    ◇ A scheme is CPA-secure if any PPT adversary guesses b correctly with probability at most 0.5 + ε(n), where ε is a negligible function
    ▪ even when it learns the encryptions of messages of its choice
    ▪ one message extends to multiple messages
    ▪ fixed-length messages extends to arbitrary length messages
    ▪ probabilistic encryption is necessary
    • EAV-security implies CPA-security
    • CCA-security
    ◇ attacker posses recipient's public key
    ◇ attacker has access to the decryption oracle
    ◇ attacker is not allowed to use the oracle on the challenge ciphertext
    ◇ probabilistic encryption necessary
    ◇ one message extends to multiple messages
    ◇ fixed length messages DO NOT extend to arbitrary length messages
    +

    asymmetric

    Public-key encryption


    • assumes trusted setup
    ◇ PKI (public keys are public) and secure storage (private keys remain private)
    • Many parties can encrypt, but only one party can decrypt
    images\68-1.png
    • defined by message space M and triplet of algorithms (Gen, Enc, Dec)
    ◇ Gen: probabilistic algorithm that outputs a public-key pair (Upk, Usk) for user U
    ◇ Enc: probabilistic algorithm that on input plantextm and public key, outputs ciphertext c
    ◇ Dec: deterministic alogirthm that on input ciphertext c and private key, outputs a plaintext m

    Security


    • CPA-securty -- randomized encryption is required
    • Easy to check (Upk, Usk) is a valid key pair
    • infeasible to produce Usk from Upk
    • the attacker can posses the rcipient's public key
    ◇ all 3 collapse to the same attack type
    ▪ ciphertext-only attack
    ▪ known plaintext attack
    ▪ chosen-plaintext attack
    • EAV-security
    ◇ A scheme is EAV-secure if no PPT attacker can correctly guess b non-negligibly better than randomly guessing
    ▪ even when it can use the recipient's public key pk
    ▪ one message extends to multiple messages
    ▪ fixed-length messages extends to arbitrary length messages
    ▪ probabilistic encryption is necessary
    • CPA-security
    ◇ A scheme is CPA-secure if any PPT adversary guesses b correctly with probability at most 0.5 + ε(n), where ε is a negligible function
    ▪ even when it learns the encryptions of messages of its choice
    ▪ one message extends to multiple messages
    ▪ fixed-length messages extends to arbitrary length messages
    ▪ probabilistic encryption is necessary
    • EAV-security implies CPA-security
    • CCA-security
    ◇ attacker posses recipient's public key
    ◇ attacker has access to the decryption oracle
    ◇ attacker is not allowed to use the oracle on the challenge ciphertext
    ◇ probabilistic encryption necessary
    ◇ one message extends to multiple messages
    ◇ fixed length messages DO NOT extend to arbitrary length messages
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--AES.html b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--AES.html index 95238a1..99ddf5f 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--AES.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--AES.html @@ -142,5 +142,5 @@
  • homework
  • -

    AES

    AES: Advanced Encryption System


    • Block cipher
    • Still in use
    images\18-1.png
    • Employs substitution, confusion, and diffusion
    ◇ on blocks of 128 bits in 10, 12, or 14 rounds for keys of 128, 192, 256
    images\18-2.png

    DES vs AES


    images\18-3.png
    +

    AES

    AES: Advanced Encryption System


    • Block cipher
    • Still in use
    images\18-1.png
    • Employs substitution, confusion, and diffusion
    ◇ on blocks of 128 bits in 10, 12, or 14 rounds for keys of 128, 192, 256
    images\18-2.png

    DES vs AES


    images\18-3.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--DES.html b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--DES.html index c1dd5db..3150985 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--DES.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--DES.html @@ -142,5 +142,5 @@
  • homework
  • -

    DES

    DES: Data Encryption Standard


    • Block cipher
    • Considered insecure
    images\17-1.png
    • Employs substituion and transposition on top of each other for 16 rounds
    • block size = 64 bits, key size = 56 bits
    • double DES -> not effective -> 80 bit security
    • triple DES -> more effective -> 112 bit security
    images\17-2.png

    DES vs AES


    images\17-3.png
    +

    DES

    DES: Data Encryption Standard


    • Block cipher
    • Considered insecure
    images\17-1.png
    • Employs substituion and transposition on top of each other for 16 rounds
    • block size = 64 bits, key size = 56 bits
    • double DES -> not effective -> 80 bit security
    • triple DES -> more effective -> 112 bit security
    images\17-2.png

    DES vs AES


    images\17-3.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--One_Time_Pad.html b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--One_Time_Pad.html index e7aef90..db85d71 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--One_Time_Pad.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--One_Time_Pad.html @@ -142,5 +142,5 @@
  • homework
  • -

    One Time Pad

    • Unbreakable
    • Uses a block of shift keys of size n (k1.... kn) with each shift key being chosen uniformly at random
    • Perfectly secure
    M = C = K = {0,1)t
    • Gen: uniformly random
    {0, 1}t
    • Enc:
    Enc(k, m) = k ⊕ m
    • Dec
    Dec(c) = k ⊕ c
    • Correctness
    k ⊕ c = k ⊕ k ⊕ m = 0 ⊕ m = m

    • Weaknesses


    ◇ The key has to be as long as the plaintext
    ◇ keys can never be reused
    ▪ if they are reused, the XOR of plaintext messages is leaked
    +

    One Time Pad

    • Unbreakable
    • Uses a block of shift keys of size n (k1.... kn) with each shift key being chosen uniformly at random
    • Perfectly secure
    M = C = K = {0,1)t
    • Gen: uniformly random
    {0, 1}t
    • Enc:
    Enc(k, m) = k ⊕ m
    • Dec
    Dec(c) = k ⊕ c
    • Correctness
    k ⊕ c = k ⊕ k ⊕ m = 0 ⊕ m = m

    • Weaknesses


    ◇ The key has to be as long as the plaintext
    ◇ keys can never be reused
    ▪ if they are reused, the XOR of plaintext messages is leaked
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--Substitution_Boxes.html b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--Substitution_Boxes.html index d3e8e99..942aad7 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--Substitution_Boxes.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--Substitution_Boxes.html @@ -142,5 +142,5 @@
  • homework
  • -

    Substitution Boxes

    Substitution boxes


    images\16-1.png
    +

    Substitution Boxes

    Substitution boxes


    images\16-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher--Shift_Cipher.html b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher--Shift_Cipher.html index 16a84ec..4f9b553 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher--Shift_Cipher.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher--Shift_Cipher.html @@ -142,5 +142,5 @@
  • homework
  • -

    Shift Cipher

    Shift Cipher


    • Key extension of Caesar's cipher
    • Randomly set key k in [0:25]
    ◇ shift each character in the message by k positions
    • Brute force attacks - only 26 possibilities - manual
    • Automated attack based on statistics
    ◇ if a character i in the alphabet has a frequency pi, then from known statistics we know that Σipi2 ≈ 0.065
    • The brute-force attack can test all possible keys
    ◇ condition becomes much simpler and isn't as manual
    +

    Shift Cipher

    Shift Cipher


    • Key extension of Caesar's cipher
    • Randomly set key k in [0:25]
    ◇ shift each character in the message by k positions
    • Brute force attacks - only 26 possibilities - manual
    • Automated attack based on statistics
    ◇ if a character i in the alphabet has a frequency pi, then from known statistics we know that Σipi2 ≈ 0.065
    • The brute-force attack can test all possible keys
    ◇ condition becomes much simpler and isn't as manual
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher--Vigenere_cipher.html b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher--Vigenere_cipher.html index 8543dba..1b6f4d3 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher--Vigenere_cipher.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher--Vigenere_cipher.html @@ -142,5 +142,5 @@
  • homework
  • -

    Vigenere cipher

    Vigenere cipher


    • generalization of mono-alphabetic substitution cipher
    • key space defines fixed (shift) mapping that is applied on block of characters
    • a key k is a string of length t, defining the shift for blocks of size t
    • e.g. k = (2,1,3,11). Each block is shifted respectively by 2,1,3,11
    • plaintext-to-ciphertext mapping is many-to-many
    • if the key length t is known: problem is reduced to attacking the shift cipher
    ◇ statistical attacks for each subsequence of the from cj, cj+t, cj+2t...
    • if key length t is unknown:
    ◇ repeat stastical attacks for gussed values of t.
    ◇ Kasiski's method: identify repeated patterns of length 2 or 3 in the ciphertext.p period t can be decuded by locations of these patterns in the text
    ◇ index of coincidence method: compute ST = Σiqi2 and stop when ST = 0.065. T is a multiple of t.
    +

    Vigenere cipher

    Vigenere cipher


    • generalization of mono-alphabetic substitution cipher
    • key space defines fixed (shift) mapping that is applied on block of characters
    • a key k is a string of length t, defining the shift for blocks of size t
    • e.g. k = (2,1,3,11). Each block is shifted respectively by 2,1,3,11
    • plaintext-to-ciphertext mapping is many-to-many
    • if the key length t is known: problem is reduced to attacking the shift cipher
    ◇ statistical attacks for each subsequence of the from cj, cj+t, cj+2t...
    • if key length t is unknown:
    ◇ repeat stastical attacks for gussed values of t.
    ◇ Kasiski's method: identify repeated patterns of length 2 or 3 in the ciphertext.p period t can be decuded by locations of these patterns in the text
    ◇ index of coincidence method: compute ST = Σiqi2 and stop when ST = 0.065. T is a multiple of t.
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher.html b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher.html index 4a0f1c9..380d9b6 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Caesar's_Cipher.html @@ -142,5 +142,5 @@
  • homework
  • -

    Caesar's Cipher

    Caesar's cipher


    • Shift each character in the message by 3 postiions (13 in ROT-13)
    • no secret key is used - security by obscurity
    • Brute force attacks - only 26 possibilities
    +

    Caesar's Cipher

    Caesar's cipher


    • Shift each character in the message by 3 postiions (13 in ROT-13)
    • no secret key is used - security by obscurity
    • Brute force attacks - only 26 possibilities
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Subsitution_Cipher--Mono-alphabetic_substituion_cipher.html b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Subsitution_Cipher--Mono-alphabetic_substituion_cipher.html index 03bb781..f79d795 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Subsitution_Cipher--Mono-alphabetic_substituion_cipher.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Subsitution_Cipher--Mono-alphabetic_substituion_cipher.html @@ -142,5 +142,5 @@
  • homework
  • -

    Mono-alphabetic substituion cipher

    Mono-alphabetic substituion cipher


    • generalization of shift cipher
    • key space defines permutation on alphabet
    ◇ use a 1-1 mapping between characters in the alphabet to produce ciphertext
    ◇ shift each distinct character in the plaintext to get a distinct character in the ciphertext
    • Key space is large (26! or 288)
    • character mapping is fixed - plaintext and ciphertext exhibit same statistics

    images\14-1.png
    +

    Mono-alphabetic substituion cipher

    Mono-alphabetic substituion cipher


    • generalization of shift cipher
    • key space defines permutation on alphabet
    ◇ use a 1-1 mapping between characters in the alphabet to produce ciphertext
    ◇ shift each distinct character in the plaintext to get a distinct character in the ciphertext
    • Key space is large (26! or 288)
    • character mapping is fixed - plaintext and ciphertext exhibit same statistics

    images\14-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Subsitution_Cipher.html b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Subsitution_Cipher.html index d82b444..034bcad 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Subsitution_Cipher.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric--classical_ciphers--Subsitution_Cipher.html @@ -142,5 +142,5 @@
  • homework
  • -

    Subsitution Cipher

    Substituion cipher


    images\11-1.png
    • Each letter is uniquely replaced by another
    • Broken by using a frequency analysis
    images\11-2.png
    +

    Subsitution Cipher

    Substituion cipher


    images\11-1.png
    • Each letter is uniquely replaced by another
    • Broken by using a frequency analysis
    images\11-2.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric.html b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric.html index e8053f8..907d7d3 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption--symmetric.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption--symmetric.html @@ -142,5 +142,5 @@
  • homework
  • -

    symmetric

    Symmetric Key Cryptography


    • Assumptions
    ◇ Adversary
    ▪ types of attacks
    ◇ trusted setup
    ▪ keys are distributed securely
    ▪ keys remain secret
    ◇ trust basis
    ▪ underlying primitives are secure
    ▪ PRG, PRF, CR-hashing
    • Limitations
    ◇ securely obtain
    ▪ strong assumption to make
    ▪ requires secure channel for key distribution
    ▪ seems impossible for two parties having no prior trust relationship
    ▪ not easily justifiable to hold a prioi
    ◇ shared secret key
    ▪ challenging problem to solve
    ▪ requires too many keys for n parties to communicate
    ▪ too much risk to protect all secret keys
    ▪ revovation complexity

    • 2 approaches to solve key distribution


    ◇ designated secure channels
    ▪ physically protected
    ▪ e.g. sound proof room
    ◇ trusted party
    ▪ entities autorized to dstribute keys
    ▪ e.g. key distribution center
    +

    symmetric

    Symmetric Key Cryptography


    images\67-1.png

    Defined by message space M
    Triplet of algorithms (Gen, Enc, Dec)
    • Gen: probabilistic algorithm, outputs a uniformly random key k from key space K
    • Enc: probabilistic algorithm, on input plaintext m and key k, outputs ciphertext c
    • Dec: deterministic algorithm, on iput c and key k, outputs a plaintext m

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Statisfies properties:
    • efficiency: key generation and message transformations are fast
    • correctness: for all m, k it holds that Dec(Enc(m, k), k) = m
    • security: one cannot learn plaintext m from ciphertext c

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    • Assumptions
    ◇ Adversary
    ▪ types of attacks
    ◇ trusted setup
    ▪ keys are distributed securely
    ▪ keys remain secret
    ◇ trust basis
    ▪ underlying primitives are secure
    ▪ PRG, PRF, CR-hashing
    • Limitations
    ◇ securely obtain
    ▪ strong assumption to make
    ▪ requires secure channel for key distribution
    ▪ seems impossible for two parties having no prior trust relationship
    ▪ not easily justifiable to hold a prioi
    ◇ shared secret key
    ▪ challenging problem to solve
    ▪ requires too many keys for n parties to communicate
    ▪ too much risk to protect all secret keys
    ▪ revovation complexity

    • 2 approaches to solve key distribution


    ◇ designated secure channels
    ▪ physically protected
    ▪ e.g. sound proof room
    ◇ trusted party
    ▪ entities autorized to dstribute keys
    ▪ e.g. key distribution center
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Encryption.html b/notes.ctb_HTML/cs306--Notes--Encryption.html index fd8a788..c641182 100644 --- a/notes.ctb_HTML/cs306--Notes--Encryption.html +++ b/notes.ctb_HTML/cs306--Notes--Encryption.html @@ -142,5 +142,5 @@
  • homework
  • -

    Encryption

    Symmetric vs Asymmetric Crypto


    Key ManagementAssumptionsPrimitivesAdversarial Sampling
    SymmetricLess scalable and riskersecret and authentic communicationgeneric assumptionsoracle access
    secure storagemore efficient in practice
    Asymmetricmore scalable and simplerauthenticity (PKI)number-theoretic assumptionspublic-key operations and oracle access
    secure storageless efficient in practice (2-3 o.o.m)

    images\23-1.png
    +

    Encryption

    Symmetric vs Asymmetric Crypto


    Key ManagementAssumptionsPrimitivesAdversarial Sampling
    SymmetricLess scalable and riskersecret and authentic communicationgeneric assumptionsoracle access
    secure storagemore efficient in practice
    Asymmetricmore scalable and simplerauthenticity (PKI)number-theoretic assumptionspublic-key operations and oracle access
    secure storageless efficient in practice (2-3 o.o.m)

    images\23-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Plain.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Plain.html index 20dc213..57deb40 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Plain.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Plain.html @@ -142,5 +142,5 @@
  • homework
  • -

    Plain


    ***Attacker can send back an altered file
    +

    Plain

    images\58-1.png
    ***Attacker can send back an altered file
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--merkle_tree.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--merkle_tree.html index bd8bff5..c7b383c 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--merkle_tree.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--merkle_tree.html @@ -142,5 +142,5 @@
  • homework
  • -

    merkle tree

    Merkle Tree


    images\62-1.png
    +

    merkle tree

    Merkle Tree


    images\62-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--separate_file.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--separate_file.html index 6f24d9d..da40b91 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--separate_file.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--separate_file.html @@ -142,5 +142,5 @@
  • homework
  • -

    separate file

    Hashing files separately


    images\61-1.png
    +

    separate file

    Hashing files separately


    images\61-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--whole_file.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--whole_file.html index f1a1a4b..1d8b6f5 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--whole_file.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure--whole_file.html @@ -142,5 +142,5 @@
  • homework
  • -

    whole file

    Hashing files as a whole


    images\60-1.png
    +

    whole file

    Hashing files as a whole


    images\60-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure.html index e4648ac..0e54765 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage--Secure.html @@ -142,5 +142,5 @@
  • homework
  • -

    Secure

    • Secure Cloud Storage Model


    images\59-1.png
    images\59-2.png
    • user has
    ◇ authentic digest d
    ◇ file F1' to verify
    ◇ proof (to help verification)
    • canonical verification
    ◇ combine F1' and the proof to recompute digest d'
    ◇ if d' = d - F1 is intact
    +

    Secure

    • Secure Cloud Storage Model


    images\59-1.png
    images\59-2.png
    • user has
    ◇ authentic digest d
    ◇ file F1' to verify
    ◇ proof (to help verification)
    • canonical verification
    ◇ combine F1' and the proof to recompute digest d'
    ◇ if d' = d - F1 is intact
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage.html index 5d41add..bd5f7bf 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Cloud_Storage.html @@ -142,5 +142,5 @@
  • homework
  • -

    Cloud Storage


    +

    Cloud Storage

    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Digital_Envelops_-_Commitment_Schemes.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Digital_Envelops_-_Commitment_Schemes.html index 47f5edb..f4831e6 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Digital_Envelops_-_Commitment_Schemes.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Digital_Envelops_-_Commitment_Schemes.html @@ -142,5 +142,5 @@
  • homework
  • -

    Digital Envelops / Commitment Schemes

    Digital Envelops / Commitment Schemes


    • Commitment schemes provide two operations
    ◇ commit(x,r) = C ------ seal an envelop
    ▪ put message x into an evelop using randomness r
    ▪ commit (x,r) = h(x || r)
    ▪ hiding property - you cannot see through an envelop
    - perfect opaqueness
    - reveals nothing about message
    ◇ open(C,m,r) = ACCEPT/REJECT --- open a sealed envelop
    ▪ open envelop using r to check that it has not been tampered with
    ▪ open(C, m, r): check if h(x || r) = ?C
    ▪ binding property - you cannot change the contents of a sealed envelop
    - perfect sealing
    - unforgeability - cannot find a cimmitment collision

    Online auction


    • Use digital envelops / commitment schemes

    Coin Flip - Who's doing the dishes


    • Use digital envelops / commitment schemes
    +

    Digital Envelops / Commitment Schemes

    Digital Envelops / Commitment Schemes


    • Commitment schemes provide two operations
    ◇ commit(x,r) = C ------ seal an envelop
    ▪ put message x into an evelop using randomness r
    ▪ commit (x,r) = h(x || r)
    ▪ hiding property - you cannot see through an envelop
    - perfect opaqueness
    - reveals nothing about message
    ◇ open(C,m,r) = ACCEPT/REJECT --- open a sealed envelop
    ▪ open envelop using r to check that it has not been tampered with
    ▪ open(C, m, r): check if h(x || r) = ?C
    ▪ binding property - you cannot change the contents of a sealed envelop
    - perfect sealing
    - unforgeability - cannot find a cimmitment collision

    Online auction


    • Use digital envelops / commitment schemes

    Coin Flip - Who's doing the dishes


    • Use digital envelops / commitment schemes
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--File_Identifiers.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--File_Identifiers.html index b97e2cb..5ddb1cf 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--File_Identifiers.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--File_Identifiers.html @@ -142,5 +142,5 @@
  • homework
  • -

    File Identifiers

    ile Identifiers


    • h(f) serves as a unique indentifier for F
    • one can check whether two files are equal by comparing digests

    • Virus fingerprinting


    ◇ comparing digest of your files against database of digests of know viruses

    • Peer to peer file sharing


    ◇ routing tables store values in the hash range for easy lookup of files

    • Data deduplication


    ◇ don't save duplicates of file. check if hash is already being stored
    ◇ saves storage and bandwidth

    • Password hashing


    ◇ server stores password hashes
    ◇ if a password file leaks, passwords are protected because of onewayness
    images\65-1.png
    ◇ password space is small and predictable - need to use password salting
    ◇ password salting
    ▪ slow down dictionary attacks
    ▪ salt is appended to a user's password before it is hashed
    ▪ salt value is stored in clear along with the hashed password
    ▪ two users with the same password will have different hashed passwords
    ▪ slows down dictionary attacks

    • Digital Signatures and hashing


    ◇ Hash and sign
    ◇ hash of a message is signed
    ◇ signing message M
    ▪ let h be a cryptographic hash function, assume RSA setting (n,d,e)
    ▪ compute signature σ = h(M)d mod n
    ▪ send σ, M
    ◇ Verifying signature σ
    ◇ use public key (e,n)
    ◇ compute H = σe mod n
    ◇ if H = h(m)
    ▪ output ACCEPT
    ▪ else output REJECT
    +

    File Identifiers

    File Identifiers


    • h(f) serves as a unique indentifier for F
    • one can check whether two files are equal by comparing digests

    • Virus fingerprinting


    ◇ comparing digest of your files against database of digests of know viruses

    • Peer to peer file sharing


    ◇ routing tables store values in the hash range for easy lookup of files

    • Data deduplication


    ◇ don't save duplicates of file. check if hash is already being stored
    ◇ saves storage and bandwidth

    • Password hashing


    ◇ server stores password hashes
    ◇ if a password file leaks, passwords are protected because of onewayness
    images\65-1.png
    ◇ password space is small and predictable - need to use password salting
    ◇ password salting
    ▪ slow down dictionary attacks
    ▪ salt is appended to a user's password before it is hashed
    ▪ salt value is stored in clear along with the hashed password
    ▪ two users with the same password will have different hashed passwords
    ▪ slows down dictionary attacks

    • Digital Signatures and hashing


    ◇ Hash and sign
    ◇ hash of a message is signed
    ◇ signing message M
    ▪ let h be a cryptographic hash function, assume RSA setting (n,d,e)
    ▪ compute signature σ = h(M)d mod n
    ▪ send σ, M
    ◇ Verifying signature σ
    ◇ use public key (e,n)
    ◇ compute H = σe mod n
    ◇ if H = h(m)
    ▪ output ACCEPT
    ▪ else output REJECT
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Forward-secure_key_rotation.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Forward-secure_key_rotation.html index 3269a57..df7092e 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Forward-secure_key_rotation.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--Forward-secure_key_rotation.html @@ -142,5 +142,5 @@
  • homework
  • -

    Forward-secure key rotation

    orward-secure key rotation


    • Keep hashing the symmetric key after every message
    • If an attack intercepts the messages and breaks into a user's machine, key leakage will only begin after the current key
    • previous messages will remain safe
    images\64-1.png
    +

    Forward-secure key rotation

    Forward-secure key rotation


    • Keep hashing the symmetric key after every message
    • If an attack intercepts the messages and breaks into a user's machine, key leakage will only begin after the current key
    • previous messages will remain safe
    images\64-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC--HMAC.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC--HMAC.html index 9e199f3..3517a8f 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC--HMAC.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC--HMAC.html @@ -142,5 +142,5 @@
  • homework
  • -

    HMAC

    MAC: Secure MAC based on hashing


    • HMACk[m] = H[ (k ⊕ opad) || H[ (k ⊕ ipad) || m ] ]
    ◇ two layers of hashing Hs - instantiation of hash and sign paradigm
    • upper layer
    ◇ y = H( (k ⊕ ipad) || m )
    ◇ y = H'(m)
    • lower layer
    ◇ t = H( (k ⊕ opad) || y' )
    ◇ t = Mac'(kouty')
    • if used with a secure hash function and follows specification (key size, correct output), no known practical attacks
    images\56-1.png
    +

    HMAC

    HMAC: Secure MAC based on hashing


    • HMACk[m] = H[ (k ⊕ opad) || H[ (k ⊕ ipad) || m ] ]
    ◇ two layers of hashing Hs - instantiation of hash and sign paradigm
    • upper layer
    ◇ y = H( (k ⊕ ipad) || m )
    ◇ y = H'(m)
    • lower layer
    ◇ t = H( (k ⊕ opad) || y' )
    ◇ t = Mac'(kouty')
    • if used with a secure hash function and follows specification (key size, correct output), no known practical attacks
    images\56-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC--Insecure.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC--Insecure.html index 39e5d09..e1a9caa 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC--Insecure.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC--Insecure.html @@ -142,5 +142,5 @@
  • homework
  • -

    Insecure

    nsecure MAC based on hashing


    • tag t = Mack(m) = H(k || m)
    ◇ given H(k||m), it should be infeasible to compute H(k || m'), m' ≠ m
    • insecure construction
    ◇ susceptive to length-extension attacks
    • security vulnerability
    ◇ practical CR hash functions are of Merkle Damgard design
    • length-extension attack
    ◇ knowledge of H(m1) make it feasible to compute H(m1 || m2)
    ◇ knowing of length of message m1 can retrieve internal state sk even without knowing k
    images\54-1.png
    +

    Insecure

    Insecure MAC based on hashing


    • tag t = Mack(m) = H(k || m)
    ◇ given H(k||m), it should be infeasible to compute H(k || m'), m' ≠ m
    • insecure construction
    ◇ susceptive to length-extension attacks
    • security vulnerability
    ◇ practical CR hash functions are of Merkle Damgard design
    • length-extension attack
    ◇ knowledge of H(m1) make it feasible to compute H(m1 || m2)
    ◇ knowing of length of message m1 can retrieve internal state sk even without knowing k
    images\54-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC.html index caa60df..f361d64 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications--MAC.html @@ -142,5 +142,5 @@
  • homework
  • -

    MAC

    fficient MAC


    • secure MAC for messages of arbitrary lengths based on CR hashing
    • Gen': instantiate H, Mac, output (s, k)
    • Mac': hash message m into h = Hs(m), output Mack-tag t on h
    • Vrfy': canonical verification
    • Πmac' is secure as long as
    ◇ H is collision resistant
    ◇ Πmac is a secure MAC
    images\53-1.png
    +

    MAC

    Efficient MAC


    • secure MAC for messages of arbitrary lengths based on CR hashing
    • Gen': instantiate H, Mac, output (s, k)
    • Mac': hash message m into h = Hs(m), output Mack-tag t on h
    • Vrfy': canonical verification
    • Πmac' is secure as long as
    ◇ H is collision resistant
    ◇ Πmac is a secure MAC
    images\53-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Applications.html b/notes.ctb_HTML/cs306--Notes--Hashes--Applications.html index 9547340..11c4371 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Applications.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Applications.html @@ -142,5 +142,5 @@
  • homework
  • -

    Applications


    +

    Applications

    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Constructing--Davies-Meyer.html b/notes.ctb_HTML/cs306--Notes--Hashes--Constructing--Davies-Meyer.html index f2cda22..145957e 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Constructing--Davies-Meyer.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Constructing--Davies-Meyer.html @@ -142,5 +142,5 @@
  • homework
  • -

    Davies-Meyer

    Davies-Meyer Scheme


    • Generic construction of CR compression function
    ◇ assume PRF w/ key length n and block length l
    ◇ define h: {0, 1}n+l -> {0,1}l as
    ▪ H(x) = Fk(x) ⊕ x
    ◇ h is CR if F is an ideal cipher
    images\42-1.png
    +

    Davies-Meyer

    Davies-Meyer Scheme


    • Generic construction of CR compression function
    ◇ assume PRF w/ key length n and block length l
    ◇ define h: {0, 1}n+l -> {0,1}l as
    ▪ H(x) = Fk(x) ⊕ x
    ◇ h is CR if F is an ideal cipher
    images\42-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Constructing--Merkle-Damgard.html b/notes.ctb_HTML/cs306--Notes--Hashes--Constructing--Merkle-Damgard.html index 1378848..669606e 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Constructing--Merkle-Damgard.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Constructing--Merkle-Damgard.html @@ -142,5 +142,5 @@
  • homework
  • -

    Merkle-Damgard

    Merkle-Damgard transform


    • reduces problem to design of CR compression functions
    • use for general hash functions
    • general design pattern for cryptographic hash functions
    • reduces collision resistance of general hash functions to colission resistance of compression functions
    • compressing 1 single bit is at least as hard as compressing by any number of bits
    • Design
    ◇ suppose that h: {0,1}2n -> {0,1}n is a collision reistant compression function
    ◇ the general hash function M: {x: |x|<2n} -> {0,1}n is defined as
    ▪ H(x) is computed by applying h(x) in a chained manner over n-bit message blocks
    - pad x and create B message blocks x1....xB with |xi| = n
    - set extra final message block xB+1 as n-bit encoding L of |x|
    - starting with z0=IV = 0n, output H(x) = zB+1, where zi=hs(zi-1 || xi)
    • If compression function h is collision resistant, then the derived hash function H is also collision resistant
    images\41-1.png
    +

    Merkle-Damgard

    Merkle-Damgard transform


    • reduces problem to design of CR compression functions
    • use for general hash functions
    • general design pattern for cryptographic hash functions
    • reduces collision resistance of general hash functions to colission resistance of compression functions
    • compressing 1 single bit is at least as hard as compressing by any number of bits
    • Design
    ◇ suppose that h: {0,1}2n -> {0,1}n is a collision reistant compression function
    ◇ the general hash function M: {x: |x|<2n} -> {0,1}n is defined as
    ▪ H(x) is computed by applying h(x) in a chained manner over n-bit message blocks
    - pad x and create B message blocks x1....xB with |xi| = n
    - set extra final message block xB+1 as n-bit encoding L of |x|
    - starting with z0=IV = 0n, output H(x) = zB+1, where zi=hs(zi-1 || xi)
    • If compression function h is collision resistant, then the derived hash function H is also collision resistant
    images\41-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Constructing.html b/notes.ctb_HTML/cs306--Notes--Hashes--Constructing.html index f61d334..0dc75c5 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Constructing.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Constructing.html @@ -142,5 +142,5 @@
  • homework
  • -

    Constructing


    +

    Constructing

    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Functions--MD5.html b/notes.ctb_HTML/cs306--Notes--Hashes--Functions--MD5.html index a2f2511..e7fb48c 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Functions--MD5.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Functions--MD5.html @@ -142,5 +142,5 @@
  • homework
  • -

    MD5

    MD5 - Message Digest Algorithm


    • output 128 bits, collision resistance
    • completely broken
    • collisions can be found in less than a minute
    • widely used in legacy applications
    +

    MD5

    MD5 - Message Digest Algorithm


    • output 128 bits, collision resistance
    • completely broken
    • collisions can be found in less than a minute
    • widely used in legacy applications
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA1.html b/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA1.html index 03a0e1a..4cde2d7 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA1.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA1.html @@ -142,5 +142,5 @@
  • homework
  • -

    SHA1

    SHA1 - Secure Hash Algorithm


    • output 160 bits
    • considered insecure for collision resistance
    • broken
    +

    SHA1

    SHA1 - Secure Hash Algorithm


    • output 160 bits
    • considered insecure for collision resistance
    • broken
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA2.html b/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA2.html index f156d1c..2df20ac 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA2.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA2.html @@ -142,5 +142,5 @@
  • homework
  • -

    SHA2

    SHA2


    • outputs 224, 256, 384, 512 bits
    • no security concerns yet
    • based on Merkle-Damgard and Davies Meyer generic transforms
    +

    SHA2

    SHA2


    • outputs 224, 256, 384, 512 bits
    • no security concerns yet
    • based on Merkle-Damgard and Davies Meyer generic transforms
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA3.html b/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA3.html index 3d135c3..ef67c84 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA3.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes--Functions--SHA3.html @@ -142,5 +142,5 @@
  • homework
  • -

    SHA3

    SHA3


    • Completely new philosophy
    • Sponge construction and un-keyed permutations
    +

    SHA3

    SHA3


    • Completely new philosophy
    • Sponge construction and un-keyed permutations
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Hashes.html b/notes.ctb_HTML/cs306--Notes--Hashes.html index 14f657e..aea17fd 100644 --- a/notes.ctb_HTML/cs306--Notes--Hashes.html +++ b/notes.ctb_HTML/cs306--Notes--Hashes.html @@ -142,5 +142,5 @@
  • homework
  • -

    Hashes

    Hash Functions


    • maps objects to a fix-length string
    • core property: avoid collisions
    ◇ collision: distinct objects x ≠ y) are mapped to the same hash value (H(x) = H(y))
    ◇ collisions may exist, but they should be infeasbile to find
    • lies between symmetric and assymetric key cryptography
    • catpure different security properties on idealized random functions
    • qualitative stronger assumption than PRF
    • security parameter 1n
    images\39-1.png
    • general hash function H
    ◇ maps a message of an arbitrary length to l(n)-bit string
    • compression hash function h
    ◇ maps long binary string to a shorter binary string
    ◇ maps l'(n)-bit string to a l(n)-bit string with l'(n) > l(n)

    Collision resistance (CR)


    • H is collision-resistant if no PPT adversary can find collisions non-negligibly often

    Security


    • Given a hash function H: X->Y
    ◇ preimage resistant (one-way)
    ▪ if given y ∈ Y, finding a value x ∈ X s.t. H(x) = y happens negligibly often
    ◇ 2nd preimage resistant (weak collision resistant)
    ▪ if given a uniform x ∈ X, finding a value x' ∈ X, s.t. x' ≠ x and H(x') = H(x) happens negligibly often
    ◇ cf collision resistant (strong collision resistant)
    ▪ if finding two distinct values x', x ∈ X, s.t. H(x') = H(x) happens negligibly often
    +

    Hashes

    Hash Functions


    • maps objects to a fix-length string
    • core property: avoid collisions
    ◇ collision: distinct objects x ≠ y) are mapped to the same hash value (H(x) = H(y))
    ◇ collisions may exist, but they should be infeasbile to find
    • lies between symmetric and assymetric key cryptography
    • catpure different security properties on idealized random functions
    • qualitative stronger assumption than PRF
    • security parameter 1n
    images\39-1.png
    • general hash function H
    ◇ maps a message of an arbitrary length to l(n)-bit string
    • compression hash function h
    ◇ maps long binary string to a shorter binary string
    ◇ maps l'(n)-bit string to a l(n)-bit string with l'(n) > l(n)

    Collision resistance (CR)


    • H is collision-resistant if no PPT adversary can find collisions non-negligibly often

    Security


    • Given a hash function H: X->Y
    ◇ preimage resistant (one-way)
    ▪ if given y ∈ Y, finding a value x ∈ X s.t. H(x) = y happens negligibly often
    ◇ 2nd preimage resistant (weak collision resistant)
    ▪ if given a uniform x ∈ X, finding a value x' ∈ X, s.t. x' ≠ x and H(x') = H(x) happens negligibly often
    ◇ cf collision resistant (strong collision resistant)
    ▪ if finding two distinct values x', x ∈ X, s.t. H(x') = H(x) happens negligibly often
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures--Asymmetric-key_message_authentication.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures--Asymmetric-key_message_authentication.html index a9f1092..46ddba3 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures--Asymmetric-key_message_authentication.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures--Asymmetric-key_message_authentication.html @@ -142,5 +142,5 @@
  • homework
  • -

    Asymmetric-key message authentication

    Asymmetric-key message authentication


    • Scheme
    ◇ Secret key is used for signing and public key is used for verification
    ◇ The message m with signature σ is sent.
    • One only party can sign, but multiple parties can verify
    • Assumption: PKI
    • existential unforgeability
    ◇ infeasible for any PPT attacker to forge an invalid but verifiable signature on a new message
    +

    Asymmetric-key message authentication

    Asymmetric-key message authentication


    • Scheme
    ◇ Secret key is used for signing and public key is used for verification
    ◇ The message m with signature σ is sent.
    • One only party can sign, but multiple parties can verify
    • Assumption: PKI
    • existential unforgeability
    ◇ infeasible for any PPT attacker to forge an invalid but verifiable signature on a new message
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures--RSA.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures--RSA.html index 14d643b..cb76a22 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures--RSA.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures--RSA.html @@ -142,5 +142,5 @@
  • homework
  • -

    RSA

    Signing with RSA


    • (Md)e = M mod p * q
    • signing algorithm = Sign(M,d,n): σ = Md mod n for message M in Zn
    • verifying algorithm = Vrfy(σ, M, e, n): return M == σe mod n
    • General case
    ◇ Setup
    ▪ n = p * q with p and q primes
    ▪ e relatively prime to Φ(n) = (p - 1)(q - 1)
    ▪ d inverse of e in ZΦ(n)
    ◇ Keys
    ▪ public key is Kpk = (n,e)
    ▪ private key is Ksk = d
    ◇ Sign
    ▪ σ = Md mod n for message M in Zn
    ◇ Verify
    ▪ Check if M = σe mod n
    images\77-1.png

    Security


    • Sign the hash
    • Current practice is using 2048-bit long RSA keys (617 decimal digits)
    • Plain RSA is deteministic
    • homomorphic

    Issues


    • Requires various algorithms
    ◇ Generation of random numbers
    ◇ primality testing
    ◇ computation of the GCD
    ◇ Computation of the multiplicative inverse

    Real-world usage


    • Randomized RSA
    ◇ To encrypt message M under an RSA public key (e, n) generate a new random session AES key K, compute ciphertext as [Ke mod n, AESk(m)]
    ◇ prevents an adversary distinguishing two encryptions of the same M since K is chosen at random every time encryption takes place
    • Optimal Asymmetric Encryption Padding (OAEP)
    ◇ roughly to encrypt M , choose random r, encode M as M' = [X = M ⊕ H1(r), Y = r ⊕ H2(X)] where H1 and H2 are cryptographic hash functions, then encrypt it as (M')e mod n
    +

    RSA

    Signing with RSA


    • (Md)e = M mod p * q
    • signing algorithm = Sign(M,d,n): σ = Md mod n for message M in Zn
    • verifying algorithm = Vrfy(σ, M, e, n): return M == σe mod n
    • General case
    ◇ Setup
    ▪ n = p * q with p and q primes
    ▪ e relatively prime to Φ(n) = (p - 1)(q - 1)
    ▪ d inverse of e in ZΦ(n)
    ◇ Keys
    ▪ public key is Kpk = (n,e)
    ▪ private key is Ksk = d
    ◇ Sign
    ▪ σ = Md mod n for message M in Zn
    ◇ Verify
    ▪ Check if M = σe mod n
    images\77-1.png

    Security


    • Sign the hash
    • Current practice is using 2048-bit long RSA keys (617 decimal digits)
    • Plain RSA is deteministic
    • homomorphic

    Issues


    • Requires various algorithms
    ◇ Generation of random numbers
    ◇ primality testing
    ◇ computation of the GCD
    ◇ Computation of the multiplicative inverse

    Real-world usage


    • Randomized RSA
    ◇ To encrypt message M under an RSA public key (e, n) generate a new random session AES key K, compute ciphertext as [Ke mod n, AESk(m)]
    ◇ prevents an adversary distinguishing two encryptions of the same M since K is chosen at random every time encryption takes place
    • Optimal Asymmetric Encryption Padding (OAEP)
    ◇ roughly to encrypt M , choose random r, encode M as M' = [X = M ⊕ H1(r), Y = r ⊕ H2(X)] where H1 and H2 are cryptographic hash functions, then encrypt it as (M')e mod n
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures.html index 6a2493f..7e3af94 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication--Digital_Signatures.html @@ -142,5 +142,5 @@
  • homework
  • -

    Digital Signatures

    igital Signatures


    • A person can deny that they signed something.
    • Digital signatures make it infeasible to fake

    • Mac for digital signing


    ◇ two parties share a secret key k
    ◇ one party generates MAC on the message to be signed, using k
    ◇ message digest serves as a signature
    ◇ the other party varifies the integrity of the signed message using k
    images\71-1.png

    Properties of Digital Signatures


    • Authentication - receiver can determine that the signature really came from the signer
    • Integrity/unforgeability - no one other than the signer can produce the signature without the signer's private key
    • Non-repudiation - the ability to ensrue that a party cannot deny the authenticity of their signature on a document
    • Not alterable signatures - no signer, receiver, or any interceptor can modify the signature without tampering being evident
    • Not reusable signatures (replay-attack safeness) - any attempt to reuse a previous signature will be detected by the receiver
    +

    Digital Signatures

    Digital Signatures


    • A person can deny that they signed something.
    • Digital signatures make it infeasible to fake

    • Mac for digital signing


    ◇ two parties share a secret key k
    ◇ one party generates MAC on the message to be signed, using k
    ◇ message digest serves as a signature
    ◇ the other party varifies the integrity of the signed message using k
    images\71-1.png

    Properties of Digital Signatures


    • Authentication - receiver can determine that the signature really came from the signer
    • Integrity/unforgeability - no one other than the signer can produce the signature without the signer's private key
    • Non-repudiation - the ability to ensrue that a party cannot deny the authenticity of their signature on a document
    • Not alterable signatures - no signer, receiver, or any interceptor can modify the signature without tampering being evident
    • Not reusable signatures (replay-attack safeness) - any attempt to reuse a previous signature will be detected by the receiver
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--CBC.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--CBC.html index 0c4fe65..b93f43a 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--CBC.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--CBC.html @@ -142,5 +142,5 @@
  • homework
  • -

    CBC

    CBC-MAC


    • Employ a PRF similar to CBC-mode encryption
    • security
    ◇ secure only when fixed-length messages are authenticated provided that Fk is a secure PRF
    ◇ messages of length equal to any multiple of n can be authenticated
    ▪ length needs to be fixed in advance
    ◇ insecure otherwise
    • Can authenticate longer messages than basic PRF-based scheme
    • more efficient than domain-extension MAC scheme
    • CBC-MAC uses no IV (or uses IV set to 0)
    • Only uses last PRF output
    images\33-1.png
    +

    CBC

    CBC-MAC


    • Employ a PRF similar to CBC-mode encryption
    • security
    ◇ secure only when fixed-length messages are authenticated provided that Fk is a secure PRF
    ◇ messages of length equal to any multiple of n can be authenticated
    ▪ length needs to be fixed in advance
    ◇ insecure otherwise
    • Can authenticate longer messages than basic PRF-based scheme
    • more efficient than domain-extension MAC scheme
    • CBC-MAC uses no IV (or uses IV set to 0)
    • Only uses last PRF output
    images\33-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Domain_extension.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Domain_extension.html index 5bd8843..35ac32e 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Domain_extension.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Domain_extension.html @@ -142,5 +142,5 @@
  • homework
  • -

    Domain extension

    Domain extension for MACs


    • Based on previous fix-length MAC scheme Π
    • Split up m into multiple d blocks mi.
    • Pad them and authenticate via Π
    • Reordering attack -> verify the block index i
    • Truncation attack -> verify message length δ = |m|
    • Mix-and-match attack -> randomize tags (using message specific fresh nonce)
    • Fk(r || mi || i || δ)
    • secure provided that Fk is a secure PRF
    images\32-1.png
    +

    Domain extension

    Domain extension for MACs


    • Based on previous fix-length MAC scheme Π
    • Split up m into multiple d blocks mi.
    • Pad them and authenticate via Π
    • Reordering attack -> verify the block index i
    • Truncation attack -> verify message length δ = |m|
    • Mix-and-match attack -> randomize tags (using message specific fresh nonce)
    • Fk(r || mi || i || δ)
    • secure provided that Fk is a secure PRF
    images\32-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Fixed_Length.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Fixed_Length.html index d71e9e0..fe7ce98 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Fixed_Length.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Fixed_Length.html @@ -142,5 +142,5 @@
  • homework
  • -

    Fixed Length

    Fixed-length MAC


    • Based on use of a PRF
    ◇ employ a PRF Fk in the obvious way to compute and canonically verify tags
    ◇ set tag t to be the pseudorandom string derived by evaluating Fk on message m
    • secure, provided that Fk is a secure PRF
    • MAC scheme Π
    ◇ Gen(1n): {0, 1}n -> k
    ◇ Mack(m): set t = Fk(m)
    ◇ Vrfyk(m, t): return 1 iff t = Fk(m)
    images\31-1.png
    +

    Fixed Length

    Fixed-length MAC


    • Based on use of a PRF
    ◇ employ a PRF Fk in the obvious way to compute and canonically verify tags
    ◇ set tag t to be the pseudorandom string derived by evaluating Fk on message m
    • secure, provided that Fk is a secure PRF
    • MAC scheme Π
    ◇ Gen(1n): {0, 1}n -> k
    ◇ Mack(m): set t = Fk(m)
    ◇ Vrfyk(m, t): return 1 iff t = Fk(m)
    images\31-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing--HMAC.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing--HMAC.html index 3e34951..aa24103 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing--HMAC.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing--HMAC.html @@ -142,5 +142,5 @@
  • homework
  • -

    HMAC

    MAC: Secure MAC based on hashing


    • HMACk[m] = H[ (k ⊕ opad) || H[ (k ⊕ ipad) || m ] ]
    ◇ two layers of hashing Hs - instantiation of hash and sign paradigm
    • upper layer
    ◇ y = H( (k ⊕ ipad) || m )
    ◇ y = H'(m)
    • lower layer
    ◇ t = H( (k ⊕ opad) || y' )
    ◇ t = Mac'(kouty')
    • if used with a secure hash function and follows specification (key size, correct output), no known practical attacks
    images\52-1.png
    +

    HMAC

    HMAC: Secure MAC based on hashing


    • HMACk[m] = H[ (k ⊕ opad) || H[ (k ⊕ ipad) || m ] ]
    ◇ two layers of hashing Hs - instantiation of hash and sign paradigm
    • upper layer
    ◇ y = H( (k ⊕ ipad) || m )
    ◇ y = H'(m)
    • lower layer
    ◇ t = H( (k ⊕ opad) || y' )
    ◇ t = Mac'(kouty')
    • if used with a secure hash function and follows specification (key size, correct output), no known practical attacks
    images\52-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing--Insecure.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing--Insecure.html index 7dc205c..6ac79b8 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing--Insecure.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing--Insecure.html @@ -142,5 +142,5 @@
  • homework
  • -

    Insecure

    Insecure MAC based on hashing


    • tag t = Mack(m) = H(k || m)
    ◇ given H(k||m), it should be infeasible to compute H(k || m'), m' ≠ m
    • insecure construction
    ◇ susceptive to length-extension attacks
    • security vulnerability
    ◇ practical CR hash functions are of Merkle Damgard design
    • length-extension attack
    ◇ knowledge of H(m1) make it feasible to compute H(m1 || m2)
    ◇ knowing of length of message m1 can retrieve internal state sk even without knowing k
    images\51-1.png
    +

    Insecure

    Insecure MAC based on hashing


    • tag t = Mack(m) = H(k || m)
    ◇ given H(k||m), it should be infeasible to compute H(k || m'), m' ≠ m
    • insecure construction
    ◇ susceptive to length-extension attacks
    • security vulnerability
    ◇ practical CR hash functions are of Merkle Damgard design
    • length-extension attack
    ◇ knowledge of H(m1) make it feasible to compute H(m1 || m2)
    ◇ knowing of length of message m1 can retrieve internal state sk even without knowing k
    images\51-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing.html index e8a80e2..6f9c283 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC--Hashing.html @@ -142,5 +142,5 @@
  • homework
  • -

    Hashing

    Efficient MAC


    • secure MAC for messages of arbitrary lengths based on CR hashing
    • Gen': instantiate H, Mac, output (s, k)
    • Mac': hash message m into h = Hs(m), output Mack-tag t on h
    • Vrfy': canonical verification
    • Πmac' is secure as long as
    ◇ H is collision resistant
    ◇ Πmac is a secure MAC
    images\50-1.png
    +

    Hashing

    Efficient MAC


    • secure MAC for messages of arbitrary lengths based on CR hashing
    • Gen': instantiate H, Mac, output (s, k)
    • Mac': hash message m into h = Hs(m), output Mack-tag t on h
    • Vrfy': canonical verification
    • Πmac' is secure as long as
    ◇ H is collision resistant
    ◇ Πmac is a secure MAC
    images\50-1.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC.html index eb45944..5467ede 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication--MAC.html @@ -142,5 +142,5 @@
  • homework
  • -

    MAC


    +

    MAC

    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Message_Authentication.html b/notes.ctb_HTML/cs306--Notes--Message_Authentication.html index feeab30..e837532 100644 --- a/notes.ctb_HTML/cs306--Notes--Message_Authentication.html +++ b/notes.ctb_HTML/cs306--Notes--Message_Authentication.html @@ -142,5 +142,5 @@
  • homework
  • -

    Message Authentication

    MAC constructions


    • Fixed-length MAC
    ◇ direct application of a PRF for tagging
    ◇ limited applicability
    • Domain extension for MACs
    ◇ straightforward secure extension of fix-length MAC
    ◇ inefficient
    • CBC-MAC
    ◇ resembles CBC-mode encryption
    ◇ efficient

    images\30-1.png

    Properties


    • Authentication
    • Data integrity
    +

    Message Authentication

    MAC constructions


    • Fixed-length MAC
    ◇ direct application of a PRF for tagging
    ◇ limited applicability
    • Domain extension for MACs
    ◇ straightforward secure extension of fix-length MAC
    ◇ inefficient
    • CBC-MAC
    ◇ resembles CBC-mode encryption
    ◇ efficient

    images\30-1.png

    Properties


    • Authentication
    • Data integrity
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Pseudo_randomness--Linear_congruential_generator.html b/notes.ctb_HTML/cs306--Notes--Pseudo_randomness--Linear_congruential_generator.html index ea27ba2..758b2c9 100644 --- a/notes.ctb_HTML/cs306--Notes--Pseudo_randomness--Linear_congruential_generator.html +++ b/notes.ctb_HTML/cs306--Notes--Pseudo_randomness--Linear_congruential_generator.html @@ -142,5 +142,5 @@
  • homework
  • -

    Linear congruential generator

    • Xi = axi-1 + b mod m i >= 1 where
    ◇ x0 is the seed or start value
    ◇ a is the multiplier
    ◇ b is the increment
    ◇ m is the modulus
    • Output:
    ◇ (x1, x2, ..., xk)
    ◇ yi = xi mod 2
    ◇ Y = (y1y2...yk) <- pseudo random sequence of k bits

    Example


    • xn = 3xn-1 + 5 mod 31, n >= 1, x0 = 2
    • 3 and 31 are relatively prime, one-to-one
    • 31 is prime, order is 30
    • 2,11,7,26,21,6,23,12,10,4,17,25,18,28,27,24,15,19,0,5,20,3,14,16,22,9,1,8,29,30
    • When x0 = 2, 01101010001
    • When x1 = 3 10001101001

    Security


    • Fast, but insecure
    ◇ sensitive to the choice of parameters a, b, and m
    ◇ correlation between successive values
    ◇ short period, often m = 232 or 264
    • Used commonly in compilers - rand()
    • Not suitable for high-quality randomness
    • Not suitable for cryptographic applications
    +

    Linear congruential generator

    • Xi = axi-1 + b mod m i >= 1 where
    ◇ x0 is the seed or start value
    ◇ a is the multiplier
    ◇ b is the increment
    ◇ m is the modulus
    • Output:
    ◇ (x1, x2, ..., xk)
    ◇ yi = xi mod 2
    ◇ Y = (y1y2...yk) <- pseudo random sequence of k bits

    Example


    • xn = 3xn-1 + 5 mod 31, n >= 1, x0 = 2
    • 3 and 31 are relatively prime, one-to-one
    • 31 is prime, order is 30
    • 2,11,7,26,21,6,23,12,10,4,17,25,18,28,27,24,15,19,0,5,20,3,14,16,22,9,1,8,29,30
    • When x0 = 2, 01101010001
    • When x1 = 3 10001101001

    Security


    • Fast, but insecure
    ◇ sensitive to the choice of parameters a, b, and m
    ◇ correlation between successive values
    ◇ short period, often m = 232 or 264
    • Used commonly in compilers - rand()
    • Not suitable for high-quality randomness
    • Not suitable for cryptographic applications
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Pseudo_randomness.html b/notes.ctb_HTML/cs306--Notes--Pseudo_randomness.html index d2a0d01..dbd642d 100644 --- a/notes.ctb_HTML/cs306--Notes--Pseudo_randomness.html +++ b/notes.ctb_HTML/cs306--Notes--Pseudo_randomness.html @@ -142,5 +142,5 @@
  • homework
  • -

    Pseudo randomness

    • not truly random in that
    ◇ derived by a deterministic algorithm
    ◇ output is dependent on initial values
    • Two types: Classical PRGs, Cryptographically secure PRGs
    • Classical PRGs - linear congruential generator
    • Cryptographically secure PRGs - Blum-Micali generator
    • Definition
    ◇ Deterministic PPT algorithm G that on inpout a seed s ∈ {0,1}n, outputs G(s) ∈ {0,1}l/n
    ◇ G is a PRG if:
    ▪ Expansion
    - for polynomial l, it holds that for any n, l(n) > n
    - models the process of extracting randomness from a short random string
    ▪ Pseudorandomness
    - no efficient statistical test can tell apart G(s) from a truly random string r
    images\24-1.png


    Pseudorandom functions


    • Generalize the concept of a PRG
    ◇ produce pseudorandom bits that also depend on specific input
    ◇ keyed functions of the form Fk: {0,1}n -> {0,1}n
    • Operate essentially as a random function
    • Fk is PRF if it is indistinguishable from a truly random function f [e.g. f is a random permutation]
    • f: {0,1}n -> {0,1}n is randomly selected for the set of all length-preserving functions mapping n-bit inputs to n-bit outputs
    images\24-2.png
    +

    Pseudo randomness

    • not truly random in that
    ◇ derived by a deterministic algorithm
    ◇ output is dependent on initial values
    • Two types: Classical PRGs, Cryptographically secure PRGs
    • Classical PRGs - linear congruential generator
    • Cryptographically secure PRGs - Blum-Micali generator
    • Definition
    ◇ Deterministic PPT algorithm G that on inpout a seed s ∈ {0,1}n, outputs G(s) ∈ {0,1}l/n
    ◇ G is a PRG if:
    ▪ Expansion
    - for polynomial l, it holds that for any n, l(n) > n
    - models the process of extracting randomness from a short random string
    ▪ Pseudorandomness
    - no efficient statistical test can tell apart G(s) from a truly random string r
    images\24-1.png


    Pseudorandom functions


    • Generalize the concept of a PRG
    ◇ produce pseudorandom bits that also depend on specific input
    ◇ keyed functions of the form Fk: {0,1}n -> {0,1}n
    • Operate essentially as a random function
    • Fk is PRF if it is indistinguishable from a truly random function f [e.g. f is a random permutation]
    • f: {0,1}n -> {0,1}n is randomly selected for the set of all length-preserving functions mapping n-bit inputs to n-bit outputs
    images\24-2.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes--Types_of_Security.html b/notes.ctb_HTML/cs306--Notes--Types_of_Security.html index d00cf46..313c6fc 100644 --- a/notes.ctb_HTML/cs306--Notes--Types_of_Security.html +++ b/notes.ctb_HTML/cs306--Notes--Types_of_Security.html @@ -142,5 +142,5 @@
  • homework
  • -

    Types of Security

    CPA Secure
    CCA Secure
    EAV Secure
    Computationally Secure
    Perfect Security
    +

    Types of Security

    CPA Secure
    CCA Secure
    EAV Secure
    Computationally Secure
    Perfect Security
    (t, ε)-secure
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--Notes.html b/notes.ctb_HTML/cs306--Notes.html index 7094800..9fac3d9 100644 --- a/notes.ctb_HTML/cs306--Notes.html +++ b/notes.ctb_HTML/cs306--Notes.html @@ -142,5 +142,5 @@
  • homework
  • -

    Notes

    images\2-1.png

    Defined by message space M
    Triplet of algorithms (Gen, Enc, Dec)
    • Gen: probabilistic algorithm, outputs a uniformly random key k from key space K
    • Enc: probabilistic algorithm, on input plaintext m and key k, outputs ciphertext c
    • Dec: deterministic algorithm, on iput c and key k, outputs a plaintext m

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Statisfies properties:
    • efficiency: key generation and message transformations are fast
    • correctness: for all m, k it holds that Dec(Enc(m, k), k) = m
    • security: one cannot learn plaintext m from ciphertext c

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    +

    Notes


    Notes
    Block Cipher Modes
    ECB
    ECB: Electronic Code Book
    CBC
    CBC: Cipher Block Chaining
    Chained CBC
    Chained CBC
    OFB
    OFB - Output Feedback
    CTR
    CTR - Counter Mode
    Stream Cipher Modes
    Encryption
    Symmetric vs Asymmetric Crypto
    symmetric
    Symmetric Key Cryptography
    • 2 approaches to solve key distribution
    One Time Pad
    • Weaknesses
    classical ciphers
    Subsitution Cipher
    Substituion cipher
    Mono-alphabetic substituion cipher
    Mono-alphabetic substituion cipher
    Caesar's Cipher
    Caesar's cipher
    Shift Cipher
    Shift Cipher
    Vigenere cipher
    Vigenere cipher
    Substitution Boxes
    Substitution boxes
    DES
    DES: Data Encryption Standard
    DES vs AES
    AES
    AES: Advanced Encryption System
    DES vs AES
    asymmetric
    Public-key encryption
    Security
    hybrid encryption
    Hybrid encryption
    algorithms
    El Gamal
    RSA
    RSA Algorithm
    Security
    Issues
    Real-world usage
    Pseudo randomness
    Pseudorandom functions
    Linear congruential generator
    Example
    Security
    Message Authentication
    MAC constructions
    Properties
    MAC
    CBC
    CBC-MAC
    Domain extension
    Domain extension for MACs
    Fixed Length
    Fixed-length MAC
    Hashing
    Efficient MAC
    Insecure
    Insecure MAC based on hashing
    HMAC
    HMAC: Secure MAC based on hashing
    Digital Signatures
    Digital Signatures
    • Mac for digital signing
    Properties of Digital Signatures
    Asymmetric-key message authentication
    Asymmetric-key message authentication
    RSA
    Signing with RSA
    Security
    Issues
    Real-world usage
    Authenticated encryption
    Authenticated encryption constructions
    Encrypt-and-authenticate
    Encrypt-and-authenticate
    Authenticate-then-encrypt
    Authenticate-then-encrypt
    Encrypt-then-authenticate
    Encrypt-then-authenticate
    Hashes
    Hash Functions
    Collision resistance (CR)
    Security
    Constructing
    Merkle-Damgard
    Merkle-Damgard transform
    Davies-Meyer
    Davies-Meyer Scheme
    Functions
    MD5
    MD5 - Message Digest Algorithm
    SHA1
    SHA1 - Secure Hash Algorithm
    SHA2
    SHA2
    SHA3
    SHA3
    Applications
    MAC
    Efficient MAC
    Insecure
    Insecure MAC based on hashing
    HMAC
    HMAC: Secure MAC based on hashing
    Cloud Storage
    Plain
    Secure
    • Secure Cloud Storage Model
    whole file
    Hashing files as a whole
    separate file
    Hashing files separately
    merkle tree
    Merkle Tree
    Digital Envelops / Commitment Schemes
    Digital Envelops / Commitment Schemes
    Online auction
    Coin Flip - Who's doing the dishes
    Forward-secure key rotation
    Forward-secure key rotation
    File Identifiers
    File Identifiers
    • Virus fingerprinting
    • Peer to peer file sharing
    • Data deduplication
    • Password hashing
    • Digital Signatures and hashing
    Attacks
    Types of Security

    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--lectures--lecture_1.html b/notes.ctb_HTML/cs306--lectures--lecture_1.html index 99d7b30..5849c3e 100644 --- a/notes.ctb_HTML/cs306--lectures--lecture_1.html +++ b/notes.ctb_HTML/cs306--lectures--lecture_1.html @@ -142,5 +142,5 @@
  • homework
  • -

    lecture 1

    Definitions


    • IT security
    - access to information by unauthorized recipients
    - intentional but unauthorized destruction or alteration of that information
    • Computer Security
    - the protection of information systems from theft or damage to the hardware, the software, and to the information on them, as well as from disruption or misdirection of the services they provide
    • Security Control / Countermeasure
    - Protect against threats seeking to exploit vulnerabilities
    - Mechanism that protects against harm
    - Designed to prevent threats from exercising vulnerabilities
    • Vulnerabilities
    - Weakness that could be exploited to cause harm
    • Threat
    - Set of circumstances that could cause harm

    Examples of Controls


    • HTTPS protocol
    - ✔ Confidentiality
    - ✔ Integrity
    - ✔ Authenticity
    • TOR protocol
    - ✔ Anonymity
    • RAID technology
    - ✔ Availability

    Examples of threats


    • Eavesdropping
    - the interception of information intended for someone else during its transmission over a communication channel
    • Alteration
    - unauthorized modification of information
    - Ex: Man n the Middle - modify data
    • Denial-of-service
    - the interruption or degradation of a data service or information access
    - Ex: email spam to fill up email queue
    • Masquerading
    - the fabrication of information that is purported to be from someone who is not actually the author
    - Ex: Spoofing [altering the source IP address]
    • Repudiation
    - the denial of a commitment or data receipt

    Examples of vulnerability


    • Software bugs
    - code is not doing what it is supposed to do

    CIA triad


    • Confidentiality
    - conforming to originally-prescribed rules
    • Integrity
    - precise, accurate, unmodified, modified in acceptable way by authorized people, consistent, meaningful, and usable
    - authorized actions, separation and protection of resources, error detection and correctness
    • Availability
    - usable, meeting service's needs, bounded waiting/completion time, acceptable outcome
    - timely response, fairness, concurrency, fault tolerance, graceful cessation
    • Others [Used in CIA examples]
    ◇ authenticity
    - The ability to determine that statements, policies, and permissions issued by persons or systems are genuine
    ◇ anonymity
    - The property that certain records/transactions cannot be attributed to any individual
    • Others
    ◇ authentication
    ◇ non-repudiation
    ◇ auditability
    • Protects against:
    ◇ interception
    ◇ interruption
    ◇ modification
    ◇ fabrication of data

    Ways to neutralize threats or remove vulnerabilities


    • prevent it (attack is blocked)
    • deter it (attack is harder)
    • deflect it (change target of attack)
    • mitigate it (make impact less severe)
    • contain it (do not allow propagation of harm)
    • detect it (real time or after the fact)
    • recover (recover from its effects)
    +

    lecture 1

    Definitions


    • IT security
    - access to information by unauthorized recipients
    - intentional but unauthorized destruction or alteration of that information
    • Computer Security
    - the protection of information systems from theft or damage to the hardware, the software, and to the information on them, as well as from disruption or misdirection of the services they provide
    • Security Control / Countermeasure
    - Protect against threats seeking to exploit vulnerabilities
    - Mechanism that protects against harm
    - Designed to prevent threats from exercising vulnerabilities
    • Vulnerabilities
    - Weakness that could be exploited to cause harm
    • Threat
    - Set of circumstances that could cause harm

    Examples of Controls


    • HTTPS protocol
    - ✔ Confidentiality
    - ✔ Integrity
    - ✔ Authenticity
    • TOR protocol
    - ✔ Anonymity
    • RAID technology
    - ✔ Availability

    Examples of threats


    • Eavesdropping
    - the interception of information intended for someone else during its transmission over a communication channel
    • Alteration
    - unauthorized modification of information
    - Ex: Man n the Middle - modify data
    • Denial-of-service
    - the interruption or degradation of a data service or information access
    - Ex: email spam to fill up email queue
    • Masquerading
    - the fabrication of information that is purported to be from someone who is not actually the author
    - Ex: Spoofing [altering the source IP address]
    • Repudiation
    - the denial of a commitment or data receipt

    Examples of vulnerability


    • Software bugs
    - code is not doing what it is supposed to do

    CIA triad


    • Confidentiality
    - conforming to originally-prescribed rules
    • Integrity
    - precise, accurate, unmodified, modified in acceptable way by authorized people, consistent, meaningful, and usable
    - authorized actions, separation and protection of resources, error detection and correctness
    • Availability
    - usable, meeting service's needs, bounded waiting/completion time, acceptable outcome
    - timely response, fairness, concurrency, fault tolerance, graceful cessation
    • Others [Used in CIA examples]
    ◇ authenticity
    - The ability to determine that statements, policies, and permissions issued by persons or systems are genuine
    ◇ anonymity
    - The property that certain records/transactions cannot be attributed to any individual
    • Others
    ◇ authentication
    ◇ non-repudiation
    ◇ auditability
    • Protects against:
    ◇ interception
    ◇ interruption
    ◇ modification
    ◇ fabrication of data

    Ways to neutralize threats or remove vulnerabilities


    • prevent it (attack is blocked)
    • deter it (attack is harder)
    • deflect it (change target of attack)
    • mitigate it (make impact less severe)
    • contain it (do not allow propagation of harm)
    • detect it (real time or after the fact)
    • recover (recover from its effects)
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--lectures--lecture_2.html b/notes.ctb_HTML/cs306--lectures--lecture_2.html index cdf8264..75da101 100644 --- a/notes.ctb_HTML/cs306--lectures--lecture_2.html +++ b/notes.ctb_HTML/cs306--lectures--lecture_2.html @@ -142,5 +142,5 @@
  • homework
  • -

    lecture 2

    efinitions


    • Cryptography / Cryptology
    - Secret Writing
    - historically developed/studied for secrecy in communications
    • Classic cryptography
    - the art or writing and solving codes
    - Approach
    → Ad-hoc design
    → trial and error methods
    → empirically evaluated
    • Modern Cryptography
    - the study of mathematical techiniques for securing digital information, systems, and distributed computations against adversarial attacks
    - Approach
    → systematic development and analysis
    → formal notions of security / adversary
    → rigorous proofs of security (or insecurity)
    - Formal treatment
    → fundamental notions underlying the design and evaluation of crypto primitives
    - Systematic process
    → Security Goals - What it means for a crypto primitive to be secure
    ⇒ abstracted into suitable security definitions amenable to mathematical treatment
    → Threat model - What forms of attacks are allowed and which aren't
    ⇒ abstracted into suitable adversarial settings and computational assumptions
    → Security analysis - Why a candidate instantiation is indeed secure or not
    ⇒ abstracted into rigorous proofs and security, inherent limitations and characterizations

    Why

    Formation definitions are important?
    • Successful project management
    • Provable security
    • Qualitative analysis / modular design

    Symmetric-key encryption


    images\8-1.png
    • Secret communication amonst two parties
    • A secret key k is shared and used by both message transformations
    • Definition
    ◇ Defined by message space M
    ◇ Triplet of algorithms (Gen, Enc, Dec)
    ◇ Gen: probabilistic algorithm, outputs a uniformly random key k from key space K
    ◇ Enc: probabilistic algorithm, on input plaintext m and key k, outputs ciphertext c
    ◇ Dec: deterministic algorithm, on iput c and key k, outputs a plaintext m
    • Statisfies properties:
    ◇ efficiency: key generation and message transformations are fast
    ◇ correctness: for all m, k it holds that Dec(Enc(m, k), k) = m
    ◇ security: one cannot learn plaintext m from ciphertext c

    Kerckhoff's principle


    • The cipher method must not be required to be secret, and it must be able to fall into the hands of the enemy without inconvenience
    • Keeping Enc and Dec secret is problematic

    Applications of Symmetric Keys


    • Secure communication
    ◇ encrypted messages sent among parties
    ◇ securely generated, distributed, and stored shared key k
    ◇ attack does not learn key k
    • Secure Storage
    ◇ encrypted files outsourced to the cloud
    ◇ securely generated and stored key k
    ◇ attack does not learn key k

    Attacks on symmetric encryption


    Brute Force


    • Given a captured ciphertext c and known key space K, Dec strategy is an exhaustic search
    • Try all possible keys k in K and determine if Dec(c,k) is likely plaintext m
    Requires some knowledge on the message space M
    • Countermeasure
    ◇ key should be a random value from a sufficely large key space K to make exhaustive search attacks infeasible

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Perfect correctness


    • For any k ∈ K, m ∈ M and any ciphertext c output of Enck(m)
    Pr[Deck(c)=m] = 1

    Perfect Security


    • The adversary should not be able to learn any additional information on m

    • Definition 1


    ◇ A symmetric-key encryption scheme (Gen, Enc, Dec) with message space M, is perfectly secret if for every DM, every message m ∈ M and every ciphertext c ∈ C for which Pr[C = c] > 0, it holds that
    Pr[M = m | C = c] = Pr[M = m]
    ◇ Probability that any given message m was actually sent is the same as the probability that m would have been sent
    ◇ observing the ciphertext reveals nothing about the underlying plaintext

    • Definition 2


    ◇ A symmetric-key encryption scheme (Gen, Enc, Dec) with message space M, is perfect secret if for every messages m, m' ∈ M and every c ∈ C, it holds that
    Pr[Enck(m) = c] = Pr[Enck(m') = c]
    ◇ The probability distribution Dc does not depend on the plaintext
    ◇ M and C are independent random variables
    ◇ the ciphertext contains no information about the plaintext
    ◇ impossible to distinguish an encryption of m from an encryption of m'

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    One time pad


    • Unbreakable
    • Uses a block of shift keys of size n (k1.... kn) with each shift key being chosen uniformly at random
    • Perfectly secure
    M = C = K = {0,1)t
    • Gen: uniformly random
    {0, 1}t
    • Enc:
    Enc(k, m) = k ⊕ m
    • Dec
    Dec(c) = k ⊕ c
    • Correctness
    k ⊕ c = k ⊕ k ⊕ m = 0 ⊕ m = m

    • Weaknesses


    ◇ The key has to be as long as the plaintext
    ◇ keys can never be reused
    ▪ if they are reused, the XOR of plaintext messages is leaked

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Modern cryptography


    • Systematic process
    ◇ Formal definitions - What is means for a crypto primitive to be secure
    ▪ Computing setting
    - Involved parties, communication mode, core functionality
    ▪ Underlying cryptographic scheme
    - Symmetric-key encryption scheme
    ▪ Desired Properties
    - Security related
    - non-securty related (correctness, efficiency, etc)
    ▪ Split up into 4 parts:
    - To be solved
    - To be considered
    - To be designed
    - To be achieved
    ◇ Precise assumptions - Which forms of attacks are allowed and which aren't
    ▪ Adversary
    - type of attacks - threat model
    - capabilities
    - limitations
    ▪ Computational assumptions
    - Hardness of certain tasks
    ▪ Computing setting
    - system set up, initial state, key distribution, randomness
    - means of communication
    - timing assumptions
    ▪ Why these are important:
    - Basis for proofs of securty
    - comparison among solutions/schemes
    - flexibility - validation, modularity, characterization
    ◇ Provable security - Why a candidate instantiation is indeed secure or not
    ▪ Typical performance
    - In computer science, proofs may not be essential
    - typical inputs are expected
    ▪ Worst case performance
    - Formal proofs are essential in cryptography
    - An adversary will use any means in its power to break a scheme

    Symmetric encryption and Modern Cryptography example


    • Formal Definition
    ◇ To be solved (problem):
    ▪ Secret communication
    ◇ To be considered (computing setting):
    ▪ Involved Parties: Alice, Bob, Eve
    ▪ Communication Model: Alice wants to send a message m to Bob; Eve can eavesdrop sent messages
    ▪ Core functionality: Alice/Bob may transform the transmitted/received message and share info
    ◇ To be designed (cryptographic scheme)
    ▪ Alice and Bob share and use a secret key k
    ▪ Alice encrypts plaintext m to ciphertext c and sends c instead of m
    ▪ Bob decrypts received c to get a message m'
    ◇ To be achieved (desired properties)
    ▪ securty -> Eve cannot learn m from c
    ▪ correctness -> If alice encrypts m to c, then Bob decrypts c to the original message m
    • Precise assumptions
    ◇ Adversary
    ▪ type of attacks -> eavesdropping
    - Posses collection of ciphertext -> ciphertext only attack
    - Posses collection of plaintext/ciphertext pairs -> known plaintext attack
    - Posses collection of plaintext/ciphertext pairs for plaintexts selected by the attack -> chosen plaintext attack
    - Posses collection of plaintext/ciphertext pairs for plaintexts and ciphertexts selected by the attacker -> chosen ciphertext attack
    ▪ capabilities -> eve may know the distribution of messages sent by Alice
    ▪ limitations -> eve doesn't know / learn the secret k (shared by Alice and Bob)
    ◇ Computational Assumptions
    ▪ no computational assumptions
    ◇ Computing Setting
    ▪ Setup / Randomness - Key k is generated randomly using the uniform distribution
    ▪ Key distribution - Key k is securely distrubted to and securely stored at Alice and Bob
    ▪ One message m is only cummunicated
    ▪ k, m are chosen independently
    +

    lecture 2

    Definitions


    • Cryptography / Cryptology
    - Secret Writing
    - historically developed/studied for secrecy in communications
    • Classic cryptography
    - the art or writing and solving codes
    - Approach
    → Ad-hoc design
    → trial and error methods
    → empirically evaluated
    • Modern Cryptography
    - the study of mathematical techiniques for securing digital information, systems, and distributed computations against adversarial attacks
    - Approach
    → systematic development and analysis
    → formal notions of security / adversary
    → rigorous proofs of security (or insecurity)
    - Formal treatment
    → fundamental notions underlying the design and evaluation of crypto primitives
    - Systematic process
    → Security Goals - What it means for a crypto primitive to be secure
    ⇒ abstracted into suitable security definitions amenable to mathematical treatment
    → Threat model - What forms of attacks are allowed and which aren't
    ⇒ abstracted into suitable adversarial settings and computational assumptions
    → Security analysis - Why a candidate instantiation is indeed secure or not
    ⇒ abstracted into rigorous proofs and security, inherent limitations and characterizations

    Why

    Formal definitions are important?
    • Successful project management
    • Provable security
    • Qualitative analysis / modular design

    Symmetric-key encryption


    images\8-1.png
    • Secret communication amonst two parties
    • A secret key k is shared and used by both message transformations
    • Definition
    ◇ Defined by message space M
    ◇ Triplet of algorithms (Gen, Enc, Dec)
    ◇ Gen: probabilistic algorithm, outputs a uniformly random key k from key space K
    ◇ Enc: probabilistic algorithm, on input plaintext m and key k, outputs ciphertext c
    ◇ Dec: deterministic algorithm, on input c and key k, outputs a plaintext m
    • Statisfies properties:
    ◇ efficiency: key generation and message transformations are fast
    ◇ correctness: for all m, k it holds that Dec(Enc(m, k), k) = m
    ◇ security: one cannot learn plaintext m from ciphertext c

    Kerckhoff's principle


    • The cipher method must not be required to be secret, and it must be able to fall into the hands of the enemy without inconvenience
    • Keeping Enc and Dec secret is problematic

    Applications of Symmetric Keys


    • Secure communication
    ◇ encrypted messages sent among parties
    ◇ securely generated, distributed, and stored shared key k
    ◇ attack does not learn key k
    • Secure Storage
    ◇ encrypted files outsourced to the cloud
    ◇ securely generated and stored key k
    ◇ attack does not learn key k

    Attacks on symmetric encryption


    Brute Force


    • Given a captured ciphertext c and known key space K, Dec strategy is an exhaustic search
    • Try all possible keys k in K and determine if Dec(c,k) is likely plaintext m
    Requires some knowledge on the message space M
    • Countermeasure
    ◇ key should be a random value from a sufficely large key space K to make exhaustive search attacks infeasible

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Perfect correctness


    • For any k ∈ K, m ∈ M and any ciphertext c output of Enck(m)
    Pr[Deck(c)=m] = 1

    Perfect Security


    • The adversary should not be able to learn any additional information on m

    • Definition 1


    ◇ A symmetric-key encryption scheme (Gen, Enc, Dec) with message space M, is perfectly secret if for every DM, every message m ∈ M and every ciphertext c ∈ C for which Pr[C = c] > 0, it holds that
    Pr[M = m | C = c] = Pr[M = m]
    ◇ Probability that any given message m was actually sent is the same as the probability that m would have been sent
    ◇ observing the ciphertext reveals nothing about the underlying plaintext

    • Definition 2


    ◇ A symmetric-key encryption scheme (Gen, Enc, Dec) with message space M, is perfect secret if for every messages m, m' ∈ M and every c ∈ C, it holds that
    Pr[Enck(m) = c] = Pr[Enck(m') = c]
    ◇ The probability distribution Dc does not depend on the plaintext
    ◇ M and C are independent random variables
    ◇ the ciphertext contains no information about the plaintext
    ◇ impossible to distinguish an encryption of m from an encryption of m'

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    One time pad


    • Unbreakable
    • Uses a block of shift keys of size n (k1.... kn) with each shift key being chosen uniformly at random
    • Perfectly secure
    M = C = K = {0,1)t
    • Gen: uniformly random
    {0, 1}t
    • Enc:
    Enc(k, m) = k ⊕ m
    • Dec
    Dec(c) = k ⊕ c
    • Correctness
    k ⊕ c = k ⊕ k ⊕ m = 0 ⊕ m = m

    • Weaknesses


    ◇ The key has to be as long as the plaintext
    ◇ keys can never be reused
    ▪ if they are reused, the XOR of plaintext messages is leaked

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Modern cryptography


    • Systematic process
    ◇ Formal definitions - What is means for a crypto primitive to be secure
    ▪ Computing setting
    - Involved parties, communication mode, core functionality
    ▪ Underlying cryptographic scheme
    - Symmetric-key encryption scheme
    ▪ Desired Properties
    - Security related
    - non-securty related (correctness, efficiency, etc)
    ▪ Split up into 4 parts:
    - To be solved
    - To be considered
    - To be designed
    - To be achieved
    ◇ Precise assumptions - Which forms of attacks are allowed and which aren't
    ▪ Adversary
    - type of attacks - threat model
    - capabilities
    - limitations
    ▪ Computational assumptions
    - Hardness of certain tasks
    ▪ Computing setting
    - system set up, initial state, key distribution, randomness
    - means of communication
    - timing assumptions
    ▪ Why these are important:
    - Basis for proofs of securty
    - comparison among solutions/schemes
    - flexibility - validation, modularity, characterization
    ◇ Provable security - Why a candidate instantiation is indeed secure or not
    ▪ Typical performance
    - In computer science, proofs may not be essential
    - typical inputs are expected
    ▪ Worst case performance
    - Formal proofs are essential in cryptography
    - An adversary will use any means in its power to break a scheme

    Symmetric encryption and Modern Cryptography example


    • Formal Definition
    ◇ To be solved (problem):
    ▪ Secret communication
    ◇ To be considered (computing setting):
    ▪ Involved Parties: Alice, Bob, Eve
    ▪ Communication Model: Alice wants to send a message m to Bob; Eve can eavesdrop sent messages
    ▪ Core functionality: Alice/Bob may transform the transmitted/received message and share info
    ◇ To be designed (cryptographic scheme)
    ▪ Alice and Bob share and use a secret key k
    ▪ Alice encrypts plaintext m to ciphertext c and sends c instead of m
    ▪ Bob decrypts received c to get a message m'
    ◇ To be achieved (desired properties)
    ▪ securty -> Eve cannot learn m from c
    ▪ correctness -> If alice encrypts m to c, then Bob decrypts c to the original message m
    • Precise assumptions
    ◇ Adversary
    ▪ type of attacks -> eavesdropping
    - Posses collection of ciphertext -> ciphertext only attack
    - Posses collection of plaintext/ciphertext pairs -> known plaintext attack
    - Posses collection of plaintext/ciphertext pairs for plaintexts selected by the attack -> chosen plaintext attack
    - Posses collection of plaintext/ciphertext pairs for plaintexts and ciphertexts selected by the attacker -> chosen ciphertext attack
    ▪ capabilities -> eve may know the distribution of messages sent by Alice
    ▪ limitations -> eve doesn't know / learn the secret k (shared by Alice and Bob)
    ◇ Computational Assumptions
    ▪ no computational assumptions
    ◇ Computing Setting
    ▪ Setup / Randomness - Key k is generated randomly using the uniform distribution
    ▪ Key distribution - Key k is securely distrubted to and securely stored at Alice and Bob
    ▪ One message m is only cummunicated
    ▪ k, m are chosen independently
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--lectures--lecture_3.html b/notes.ctb_HTML/cs306--lectures--lecture_3.html index 0bb5555..80249bd 100644 --- a/notes.ctb_HTML/cs306--lectures--lecture_3.html +++ b/notes.ctb_HTML/cs306--lectures--lecture_3.html @@ -142,5 +142,5 @@
  • homework
  • -

    lecture 3

    Shannon's theorem


    • Let Π = {M, (Gen, Enc, Dec)} be an encryption scheme with a message space M for which |M| = |K| = |C|. Then Π is perfectly secure if and only if:
    1. Every key k ∈ K is chosen with equal probability 1/|K| by algorithm Gen
    2. For every m ∈ M and every c ∈ C, these exists a unique key k ∈ K such that Enck(m) outputs c

    Computational Security - Relax Perfectness


    • Perfect secrecy / security requires
    ◇ absolutely no information is leaked about the plaintext
    ◇ to adversaries that unlimited computational power
    • Computational security
    ◇ A tiny amount of information is leaked about the plaintext (e.g. w/ prob 2-60)
    ◇ To adversaries with bounded computational power (e.g. attack invests 200 yrs)
    • Two relaxations
    ◇ Security is guaranteed against efficient adversaries
    ▪ Attacker must invest a sufficiently large resources
    ◇ Adversaries can potentially succeed
    ▪ Small probability of breakability

    • Definition


    ◇ Bounds the maximum success probability fo any (randomized) adversary running for some specified amount of time or investing a specified amount of resources
    ◇ A scheme is (t, ε)-secure if any adversary A, running for time at most t, succeeds in breaking the scheme with probability at most ε.
    ◇ need to define:
    ▪ what it means for an adverary to break a scheme
    ▪ specify precisely the resources

    Almost optimal security


    • Key length n, key space size |K| = 2n
    • parameter c models advanced computing methods (concurrency, multiple threads, etc)
    • A running for time t succeeds with probability at most ct/2n
    • Like brute-forcing
    • Today's recommendations
    ◇ n = 128

    Alternative Approach


    • Asymptotic approach
    ◇ secure parameter n is used (key length)
    ◇ efficient adversaries are equiated with probabilistic poly-time (PPT) algorithms that run for time that is a polynomial of n
    ◇ small probability of success is equated with success probabilities that are asymptotically smaller than any inverse polynomial in n
    ◇ A scheme is secure if any PPT adversary A succeeds in breaking the scheme with at most negligible probability

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Classical Ciphers


    • based on letter substitution
    • message space M is valid words from a given alphabet
    • encryption
    ◇ ciphertext is produced by mapping each plaintext character into another character
    ◇ a character mpaaing is typically defined as a shift of a plaintext character by a number of positions in a canonical ordering of the characters in the alphabet
    ◇ character shifting occurs with wrap-around (mod 25 addition)
    • decryption
    ◇ under shifting of characters with wrap-around (using mod 25 subtraction)

    Substituion cipher


    images\9-1.png
    • Each letter is uniquely replaced by another
    • Broken by using a frequency analysis
    images\9-2.png

    Caesar's cipher


    • Shift each character in the message by 3 postiions (13 in ROT-13)
    • no secret key is used - security by obscurity
    • Brute force attacks - only 26 possibilities

    Shift Cipher


    • Key extension of Caesar's cipher
    • Randomly set key k in [0:25]
    ◇ shift each character in the message by k positions
    • Brute force attacks - only 26 possibilities - manual
    • Automated attack based on statistics
    ◇ if a character i in the alphabet has a frequency pi, then from known statistics we know that Σipi2 ≈ 0.065
    • The brute-force attack can test all possible keys
    ◇ condition becomes much simpler and isn't as manual

    Mono-alphabetic substituion cipher


    • generalization of shift cipher
    • key space defines permutation on alphabet
    ◇ use a 1-1 mapping between characters in the alphabet to produce ciphertext
    ◇ shift each distinct character in the plaintext to get a distinct character in the ciphertext
    • Key space is large (26! or 288)
    • character mapping is fixed - plaintext and ciphertext exhibit same statistics

    Vigenere cipher


    • generalization of mono-alphabetic substitution cipher
    • key space defines fixed (shift) mapping that is applied on block of characters
    • a key k is a string of length t, defining the shift for blocks of size t
    • e.g. k = (2,1,3,11). Each block is shifted respectively by 2,1,3,11
    • plaintext-to-ciphertext mapping is many-to-many
    • if the key length t is known: problem is reduced to attacking the shift cipher
    ◇ statistical attacks for each subsequence of the from cj, cj+t, cj+2t...
    • if key length t is unknown:
    ◇ repeat stastical attacks for gussed values of t.
    ◇ Kasiski's method: identify repeated patterns of length 2 or 3 in the ciphertext.p period t can be decuded by locations of these patterns in the text
    ◇ index of coincidence method: compute ST = Σiqi2 and stop when ST = 0.065. T is a multiple of t.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Stream Ciphers


    images\9-3.png

    Block Ciphers


    images\9-4.png

    Stream vs Block ciphers


    images\9-5.png

    Perfect encryption of a block


    • Goal: encrypt a block of n bits using the same key all the time
    • Approach: encryption via a bijective random mapping T from {0,1}n to {0,1}n
    ◇ Mapped pairs are computed uniformly at random
    • Problem: T has size ~ n 2n
    • Make it randomized
    ◇ pick random r and encrypt x as: (y = T[r] XOR x, r)
    ◇ decrypt (y,r) as: y XOR T[r]

    Primitive techniques for symmetric-key encryption


    • Substitution
    ◇ exchanging one set of bits for another set
    • Transposition
    ◇ rearranging the order of the ciphertext bits
    • Confusion
    ◇ enforcing complex functional relationship between the plaintext/key pair and the ciphertext
    • Diffusion
    ◇ distributes information from single plaintext characters over entire ciphertext output

    Substitution boxes


    images\9-6.png

    DES: Data Encryption Standard


    • Block cipher
    • Considered insecure
    images\9-7.png
    • Employs substituion and transposition on top of each other for 16 rounds
    • block size = 64 bits, key size = 56 bits
    • double DES -> not effective -> 80 bit security
    • triple DES -> more effective -> 112 bit security
    images\9-8.png

    AES: Advanced Encryption System


    • Block cipher
    • Still in use
    images\9-9.png
    • Employs substitution, confusion, and diffusion
    ◇ on blocks of 128 bits in 10, 12, or 14 rounds for keys of 128, 192, 256
    images\9-10.png

    DES vs AES


    images\9-11.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Block Cipher Modes


    • Describe the way a block cipher encrypts or decrypts a sequence of message blocks

    ECB: Electronic Code Book


    • Block P[i] encrypted into ciphertext block C[i] = Ek(P[i])
    • Block P[i] decrypted into ciphertext block M[i] = Dk(C[i])
    images\9-12.png
    • Strengths
    ◇ Simple
    ◇ Parallel encryptions
    ◇ Tolerates loss or damage
    • Weaknesses
    ◇ Documents and images are not suitable since patterns in the plaintext are repeated in the ciphertext
    images\9-13.png

    CBC: Cipher Block Chaining


    • ECB produces the same ciphertext on the same ciphertext under the same key
    • The ciphertext of the previous block can be mixed with the plaintext of the current block (XOR). an initial vector is used as the initial ciphertext
    • Previous ciphertext block is combined with current plaintext block C[i] = Ek(C[i-1]⊕P[i])
    • C[-1] = IV; a random block separately transmitted encrypted
    • decryption: P[i] = C[i-1]⊕Dk(C[i])
    images\9-14.png

    +

    lecture 3

    Shannon's theorem


    • Let Π = {M, (Gen, Enc, Dec)} be an encryption scheme with a message space M for which |M| = |K| = |C|. Then Π is perfectly secure if and only if:
    1. Every key k ∈ K is chosen with equal probability 1/|K| by algorithm Gen
    2. For every m ∈ M and every c ∈ C, these exists a unique key k ∈ K such that Enck(m) outputs c

    Computational Security - Relax Perfectness


    • Perfect secrecy / security requires
    ◇ absolutely no information is leaked about the plaintext
    ◇ to adversaries that unlimited computational power
    • Computational security
    ◇ A tiny amount of information is leaked about the plaintext (e.g. w/ prob 2-60)
    ◇ To adversaries with bounded computational power (e.g. attack invests 200 yrs)
    • Two relaxations
    ◇ Security is guaranteed against efficient adversaries
    ▪ Attacker must invest a sufficiently large resources
    ◇ Adversaries can potentially succeed
    ▪ Small probability of breakability

    • Definition


    ◇ Bounds the maximum success probability fo any (randomized) adversary running for some specified amount of time or investing a specified amount of resources
    ◇ A scheme is (t, ε)-secure if any adversary A, running for time at most t, succeeds in breaking the scheme with probability at most ε.
    ◇ need to define:
    ▪ what it means for an adverary to break a scheme
    ▪ specify precisely the resources

    Almost optimal security


    • Key length n, key space size |K| = 2n
    • parameter c models advanced computing methods (concurrency, multiple threads, etc)
    • A running for time t succeeds with probability at most ct/2n
    • Like brute-forcing
    • Today's recommendations
    ◇ n = 128

    Alternative Approach


    • Asymptotic approach
    ◇ secure parameter n is used (key length)
    ◇ efficient adversaries are equiated with probabilistic poly-time (PPT) algorithms that run for time that is a polynomial of n
    ◇ small probability of success is equated with success probabilities that are asymptotically smaller than any inverse polynomial in n
    ◇ A scheme is secure if any PPT adversary A succeeds in breaking the scheme with at most negligible probability

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Classical Ciphers


    • based on letter substitution
    • message space M is valid words from a given alphabet
    • encryption
    ◇ ciphertext is produced by mapping each plaintext character into another character
    ◇ a character mpaaing is typically defined as a shift of a plaintext character by a number of positions in a canonical ordering of the characters in the alphabet
    ◇ character shifting occurs with wrap-around (mod 25 addition)
    • decryption
    ◇ under shifting of characters with wrap-around (using mod 25 subtraction)

    Substituion cipher


    images\9-1.png
    • Each letter is uniquely replaced by another
    • Broken by using a frequency analysis
    images\9-2.png

    Caesar's cipher


    • Shift each character in the message by 3 postiions (13 in ROT-13)
    • no secret key is used - security by obscurity
    • Brute force attacks - only 26 possibilities

    Shift Cipher


    • Key extension of Caesar's cipher
    • Randomly set key k in [0:25]
    ◇ shift each character in the message by k positions
    • Brute force attacks - only 26 possibilities - manual
    • Automated attack based on statistics
    ◇ if a character i in the alphabet has a frequency pi, then from known statistics we know that Σipi2 ≈ 0.065
    • The brute-force attack can test all possible keys
    ◇ condition becomes much simpler and isn't as manual

    Mono-alphabetic substituion cipher


    • generalization of shift cipher
    • key space defines permutation on alphabet
    ◇ use a 1-1 mapping between characters in the alphabet to produce ciphertext
    ◇ shift each distinct character in the plaintext to get a distinct character in the ciphertext
    • Key space is large (26! or 288)
    • character mapping is fixed - plaintext and ciphertext exhibit same statistics

    Vigenere cipher


    • generalization of mono-alphabetic substitution cipher
    • key space defines fixed (shift) mapping that is applied on block of characters
    • a key k is a string of length t, defining the shift for blocks of size t
    • e.g. k = (2,1,3,11). Each block is shifted respectively by 2,1,3,11
    • plaintext-to-ciphertext mapping is many-to-many
    • if the key length t is known: problem is reduced to attacking the shift cipher
    ◇ statistical attacks for each subsequence of the from cj, cj+t, cj+2t...
    • if key length t is unknown:
    ◇ repeat stastical attacks for gussed values of t.
    ◇ Kasiski's method: identify repeated patterns of length 2 or 3 in the ciphertext.p period t can be decuded by locations of these patterns in the text
    ◇ index of coincidence method: compute ST = Σiqi2 and stop when ST = 0.065. T is a multiple of t.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Stream Ciphers


    images\9-3.png

    Block Ciphers


    images\9-4.png

    Stream vs Block ciphers


    images\9-5.png

    Perfect encryption of a block


    • Goal: encrypt a block of n bits using the same key all the time
    • Approach: encryption via a bijective random mapping T from {0,1}n to {0,1}n
    ◇ Mapped pairs are computed uniformly at random
    • Problem: T has size ~ n 2n
    • Make it randomized
    ◇ pick random r and encrypt x as: (y = T[r] XOR x, r)
    ◇ decrypt (y,r) as: y XOR T[r]

    Primitive techniques for symmetric-key encryption


    • Substitution
    ◇ exchanging one set of bits for another set
    • Transposition
    ◇ rearranging the order of the ciphertext bits
    • Confusion
    ◇ enforcing complex functional relationship between the plaintext/key pair and the ciphertext
    • Diffusion
    ◇ distributes information from single plaintext characters over entire ciphertext output

    Substitution boxes


    images\9-6.png

    DES: Data Encryption Standard


    • Block cipher
    • Considered insecure
    images\9-7.png
    • Employs substituion and transposition on top of each other for 16 rounds
    • block size = 64 bits, key size = 56 bits
    • double DES -> not effective -> 80 bit security
    • triple DES -> more effective -> 112 bit security
    images\9-8.png

    AES: Advanced Encryption System


    • Block cipher
    • Still in use
    images\9-9.png
    • Employs substitution, confusion, and diffusion
    ◇ on blocks of 128 bits in 10, 12, or 14 rounds for keys of 128, 192, 256
    images\9-10.png

    DES vs AES


    images\9-11.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Block Cipher Modes


    • Describe the way a block cipher encrypts or decrypts a sequence of message blocks

    ECB: Electronic Code Book


    • Block P[i] encrypted into ciphertext block C[i] = Ek(P[i])
    • Block P[i] decrypted into ciphertext block M[i] = Dk(C[i])
    images\9-12.png
    • Strengths
    ◇ Simple
    ◇ Parallel encryptions
    ◇ Tolerates loss or damage
    • Weaknesses
    ◇ Documents and images are not suitable since patterns in the plaintext are repeated in the ciphertext
    images\9-13.png

    CBC: Cipher Block Chaining


    • ECB produces the same ciphertext on the same ciphertext under the same key
    • The ciphertext of the previous block can be mixed with the plaintext of the current block (XOR). an initial vector is used as the initial ciphertext
    • Previous ciphertext block is combined with current plaintext block C[i] = Ek(C[i-1]⊕P[i])
    • C[-1] = IV; a random block separately transmitted encrypted
    • decryption: P[i] = C[i-1]⊕Dk(C[i])
    images\9-14.png

    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--lectures--lecture_4.html b/notes.ctb_HTML/cs306--lectures--lecture_4.html index 5df0f81..dc88964 100644 --- a/notes.ctb_HTML/cs306--lectures--lecture_4.html +++ b/notes.ctb_HTML/cs306--lectures--lecture_4.html @@ -142,5 +142,5 @@
  • homework
  • -

    lecture 4

    Possible Eavesdropping Attacks


    • An attacker may posses a collection of ciphertext:
    ◇ ciphertext only attack
    ◇ EAV-attack
    ▪indistinguishability for a single message against an eavesdropper
    ◇ Chosen plaintext attack
    ▪An attacker may posses a collection of plaintext/ciphertext pairs for plaintexts selected by the attacker
    ◇ CPA-attack

    Perfect EAV-security


    • Definitions
    • For every DM, m ∈ M and c ∈ C, for which Pr[C=c] > 0, it holds that Pr[M=m | C=c] = Pr[M=m]
    • C is independent of M
    ◇ For every m, m' ∈ M and c ∈ C, it holds that Pr[Enck(m) = c] = Pr[Enck(m') = c]
    • indistinguishability
    ◇ For every A, it holds that Pr[b'=b] = 1/2
    • Absolutely no information is leaked about the plaintext
    • To adversaries that unlimited computational power
    • require that m0, m1 are chosen by a PPT adversary
    • require that no PPT adverasary can distinguish Enck(m0) from Enck(m1)

    Computational security


    • A tiny amount of information is leaked about the plaintext
    • To adversaries with bounded computational power
    • Attacks best strategy remains ineffective
    ◇ Random guess on secret key
    ◇ Exhaustive search over key space (brute force attack)
    • Negligible functions:
    ◇ negl = very small probability of success of the attack
    ◇ can be ignored

    Computational EAV-security


    • require that m0, m1 are chosen by a PPT adversary
    • no PPT adversary can distinguish Enck(m0) frp, Enck(m1)
    ◇ Pr[b' = b] = 1/2 + negl

    CPA-security


    • Π = {M, (Gen, Enc, Dec)}
    • (Enc, Dec) is CPA-secure if any PPT adversary guesses b correctly with probability at most 0.5 + ε(n), where ε is a negligible function
    • Any encryption scheme that is CPA-secure is also CPA-secure for multiple encryptions
    • CPA security implies probabilistic encryption
    • EAV-security for multiple messages implies probabilistic encryption

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Pseudo-randomness


    • not truly random in that
    ◇ derived by a deterministic algorithm
    ◇ output is dependent on initial values
    • Two types: Classical PRGs, Cryptographically secure PRGs
    • Classical PRGs - linear congruential generator
    • Cryptographically secure PRGs - Blum-Micali generator
    • Definition
    ◇ Deterministic PPT algorithm G that on inpout a seed s ∈ {0,1}n, outputs G(s) ∈ {0,1}l/n
    ◇ G is a PRG if:
    ▪ Expansion
    - for polynomial l, it holds that for any n, l(n) > n
    - models the process of extracting randomness from a short random string
    ▪ Pseudorandomness
    - no efficient statistical test can tell apart G(s) from a truly random string r
    images\22-1.png

    Linear congruential generator


    • Xi = axi-1 + b mod m i >= 1 where
    ◇ x0 is the seed or start value
    ◇ a is the multiplier
    ◇ b is the increment
    ◇ m is the modulus
    • Output:
    ◇ (x1, x2, ..., xk)
    ◇ yi = xi mod 2
    ◇ Y = (y1y2...yk) <- pseudo random sequence of k bits

    Example


    • xn = 3xn-1 + 5 mod 31, n >= 1, x0 = 2
    • 3 and 31 are relatively prime, one-to-one
    • 31 is prime, order is 30
    • 2,11,7,26,21,6,23,12,10,4,17,25,18,28,27,24,15,19,0,5,20,3,14,16,22,9,1,8,29,30
    • When x0 = 2, 01101010001
    • When x1 = 3 10001101001

    Security


    • Fast, but insecure
    ◇ sensitive to the choice of parameters a, b, and m
    ◇ correlation between successive values
    ◇ short period, often m = 232 or 264
    • Used commonly in compilers - rand()
    • Not suitable for high-quality randomness
    • Not suitable for cryptographic applications

    PRG security


    • Pr[D(G(s)) = 1] - Pr[D(r)=1] | <= negl(n)

    PRG-based symmetric-key encryption scheme


    • encryption scheme is EAV-secure as long as the underlying PRG is secure
    • either fixed-length or arbitrary-length encryption scheme
    images\22-2.png

    Modes of operation for stream ciphers


    • on-the-fly computation of new pseudorandom bits, no IV needed, EAV-security
    images\22-3.png
    • random IV used for every new message is sent along with ciphertext, CPA-security

    Pseudorandom functions


    • Generalize the concept of a PRG
    ◇ produce pseudorandom bits that also depend on specific input
    ◇ keyed functions of the form Fk: {0,1}n -> {0,1}n
    • Operate essentially as a random function
    • Fk is PRF if it is indistinguishable from a truly random function f [e.g. f is a random permutation]
    • f: {0,1}n -> {0,1}n is randomly selected for the set of all length-preserving functions mapping n-bit inputs to n-bit outputs
    images\22-4.png

    PRF Security


    • Pr[DF(k,)(1n) = 1] - Pr[Df()(1n) = 1] | <= negl(n)

    PRF-based symmetric-key encryption scheme


    • Encryption scheme is EAV-secure as long as the underlying PRG is secure
    • Fixed-length encryption scheme
    images\22-5.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Modes of Operations for block ciphers


    ECB - electronic code book


    • insecure
    • deterministic - not CPA secure
    • not EAV-secure
    images\22-6.png

    CBC - Cipher block chaining


    • CPA-secure if Fk is a permutation
    • uniform IV - otherwise security breaks
    images\22-7.png

    Chained CBC


    • Uses last block ciphertext as IV of next message
    • not CPA-secure

    OFB - Output Feedback


    • IV uniform
    • message length doesn't need to be multiple of n
    • resembles synchronizes stream-cipher mode
    • stateful variant (chaining) is secure
    • CPA-secure if Fk is PRF
    images\22-8.png

    CTR - Counter Mode


    • CTR uniform
    • message length doesn't need to be multiple of n
    • resembles synchronized stream-cipher mode
    • CPA-secure if Fk is PRF
    • no need for Fk to be invertible
    • parallelizable
    images\22-9.png

    Additional Notes


    • Block length matters -> IV or ctr can be recycled
    • IV are often misused
    ◇ reused or not uniformly random
    ◇ CBC is a better option than OFB/CTR

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Security problems studied by modern cryptography


    • Classical cryptography - message encryption
    ◇ provide secrecy/confidentiality
    ◇ no message should be leaked while in transit
    • Modern cryptography - wide variety of security problems
    ◇ secrecy is not the only security concern when using an unprotected channel
    ◇ need to study large set of secrutiy properties
    • Sibling of message encryption - message authentication
    ◇ provide integrity
    ◇ while in transit, no message should be modified by an outsider

    Message Authentication


    • Information has value -> citrical information must be protected not to leak to unauthorized parties
    ◇ message encryption takes care of this
    • Correct information is valuable
    ◇ incorrect or falsified information may be of little value
    ◇ random information may be useless
    ◇ maliciously crafted information can be harmful
    ◇ message authentication takes care of this

    Examples of attacks


    • A bank receives an electronic request to transfer money from user A to B
    ◇ Did A actually send the request?
    • A user puchases from Amazon
    ◇ Did the user actually make the purchase?

    Integrity of communications / computations


    • no unprotected system can be assumed to be trustworthy
    ◇ origin of information (source) - attacks: impersonation, phishing, etc
    ◇ contents of information - attacks: man-in-the-middle, email spam, etc
    • prevention vs detection
    ◇ tampering with information cannot be avoided.
    ◇ need to be detectable
    • Goal: prevent undetected tampering

    Symmetric-key message authentication


    • Sign message m with tag t and send (m, t)
    • Verify authenticity of received m using t

    Applications


    • Secure communication
    ◇ verify authenticity of messages
    ◇ assumption
    ▪ securely generate distrbute and store shared key k
    ▪ attack does not learn key k
    • Secure Storage
    ◇ verify authenticity of files
    ◇ assumption
    ▪ securely generate and store key k
    ▪ attacker does not learn key k

    Symmetric-key message authentication code (MAC)


    • defined by triplet of PPT algorithms (Gen, Mac, Vrfy) security parameter 1n
    ◇ Gen: prob. alg. on input 1n, outputs a key k from the key space K
    ◇ Mac: prob. alg. on input message m ∈ {0,1}* and key k, outputs tag t, Mack(m) -> t
    ◇ Vrfy: det. alg. on input a pair (m, t) and key k, outputs a bit b, b := Vrfyk(m, t)
    • Satisfying desired properties:
    ◇ efficiency: key generation and tag computation / verification are fast
    ◇ correctness: for all m, k it holds that Vrfyk(m Mack(m)) = 1
    ◇ security: one cannot forge a verifiable pair (m, t)
    • Authenicating m = computing t
    • Verifying authenticity of m = running vrfy

    Security of MACs


    • attacker cannot forge a verifiable message-tag pair (m, t)
    • Replay attack -> insert a new message m*, t* into traffic so that (m*, t*) is verifiable.
    ◇ if m* = previously observed message, attack is successful
    • Brute-force attack Mack(m) -> t is publicly known
    ◇ An exhaustive search in key space K can be done to find the used key k
    • new messages may be forged undetectably, but they can be found only with negligible probability or after an exponentially large computation
    • replay-attack unsafe security definition
    ◇ better not to assume any semantics regarding the high-level app, but instead delegate the validity or safeety check to this app that consumes the messages
    • Eliminating replay attacks
    ◇ Use of counters between sender and receiver
    ◇ Use of timestamps along with an authentication window for validation

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    MAC constructions


    • Fixed-length MAC
    ◇ direct application of a PRF for tagging
    ◇ limited applicability
    • Domain extension for MACs
    ◇ straightforward secure extension of fix-length MAC
    ◇ inefficient
    • CBC-MAC
    ◇ resembles CBC-mode encryption
    ◇ efficient

    Fixed-length MAC


    • Based on use of a PRF
    ◇ employ a PRF Fk in the obvious way to compute and canonically verify tags
    ◇ set tag t to be the pseudorandom string derived by evaluating Fk on message m
    • secure, provided that Fk is a secure PRF
    • MAC scheme Π
    ◇ Gen(1n): {0, 1}n -> k
    ◇ Mack(m): set t = Fk(m)
    ◇ Vrfyk(m, t): return 1 iff t = Fk(m)
    images\22-10.png

    Domain extension for MACs


    • Based on previous fix-length MAC scheme Π
    • Split up m into multiple d blocks mi.
    • Pad them and authenticate via Π
    • Reordering attack -> verify the block index i
    • Truncation attack -> verify message length δ = |m|
    • Mix-and-match attack -> randomize tags (using message specific fresh nonce)
    • Fk(r || mi || i || δ)
    • secure provided that Fk is a secure PRF
    images\22-11.png

    CBC-MAC


    • Employ a PRF similar to CBC-mode encryption
    • security
    ◇ secure only when fixed-length messages are authenticated provided that Fk is a secure PRF
    ◇ messages of length equal to any multiple of n can be authenticated
    ▪ length needs to be fixed in advance
    ◇ insecure otherwise
    • Can authenticate longer messages than basic PRF-based scheme
    • more efficient than domain-extension MAC scheme
    • CBC-MAC uses no IV (or uses IV set to 0)
    • Only uses last PRF output
    images\22-12.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Authenticated encryption


    • Communication is over an open/unprotected channel
    • No message should be leaked
    • No message should be modified
    • Encryption schemes provide secrecy/confidentiality
    • MAC schemes provide integrity/unforability

    Secrecy vs Integrity


    • Secrecy
    ◇ sensitive information has value
    ▪ leaking it can be risky
    ◇ prevention
    ▪ does not imply integrity
    • Integrity
    ◇ correct information has value
    ▪ if manipulated, it can be harmful
    ◇ detection
    ▪ does nont imply secrecy

    Authenticated encryption constructions


    • CPA-secure encryption scheme ΠE=(Enc, Dec)
    • a secure MAC ΠM = (MAC, Vrfy)
    • instantiated using independent secret keys ke, km
    • order matters

    Encrypt-and-authenticate


    • Encke(m) -> c; Mackm(m) -> t; send ciphertext (c, t)
    • if Decke(c) ≠ fail and Vrfykm(m,t) accepts
    ◇ output m
    ◇ else output fail
    • Insecure
    ◇ MAC tag t may leak information about m
    ◇ if MAC is deterministic (CBC-MAC) then ΠAE is not CPA-secure

    Authenticate-then-encrypt


    • Mackm(m) -> t; Encke(m||t) -> c; send ciphertext c
    • if Decke(c) = m || t ≠ fail and Vrfykm(m,t) accepts,
    ◇ output m
    ◇ else output fail
    • insecure

    Encrypt-then-authenticate


    • Encke(m) -> c; Mackm(c) ->t; send ciphertext (c, t)
    • if Vrfykm(c,t) accepts then
    ◇ output Decke(c) = m,
    ◇ else output fail
    • secure scheme as long as ΠM is a strong MAC

    Application of Authenticated Encryption


    • Session communication
    ◇ ΠAE = (Enc, Dec) enables 2 parties to communicate securely
    ◇ session: period of time during which sender and receiver maintain state
    ◇ idea: send message m as c = Enck(m) and ignore received c that doesn't verify
    ◇ secrecy and integrity is protected
    • Possible attacks:
    ◇ reordering attack - counters can be used to eliminate reordering/replays
    ◇ reflection attack - directional bit can be used to eliminate reflections
    ◇ replay attack - c = Enck(ba->b || ctrA,b || m); ctrA,B++

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Hash Functions


    • maps objects to a fix-length string
    • core property: avoid collisions
    ◇ collision: distinct objects x ≠ y) are mapped to the same hash value (H(x) = H(y))
    ◇ collisions may exist, but they should be infeasbile to find
    • lies between symmetric and assymetric key cryptography
    • catpure different security properties on idealized random functions
    • qualitative stronger assumption than PRF
    • security parameter 1n
    images\22-13.png
    • general hash function H
    ◇ maps a message of an arbitrary length to l(n)-bit string
    • compression hash function h
    ◇ maps long binary string to a shorter binary string
    ◇ maps l'(n)-bit string to a l(n)-bit string with l'(n) > l(n)

    Collision resistance (CR)


    • H is collision-resistant if no PPT adversary can find collisions non-negligibly often

    Security


    • Given a hash function H: X->Y
    ◇ preimage resistant (one-way)
    ▪ if given y ∈ Y, finding a value x ∈ X s.t. H(x) = y happens negligibly often
    ◇ 2nd preimage resistant (weak collision resistant)
    ▪ if given a uniform x ∈ X, finding a value x' ∈ X, s.t. x' ≠ x and H(x') = H(x) happens negligibly often
    ◇ cf collision resistant (strong collision resistant)
    ▪ if finding two distinct values x', x ∈ X, s.t. H(x') = H(x) happens negligibly often

    Merkle-Damgard transform


    • reduces problem to design of CR compression functions
    • use for general hash functions
    • general design pattern for cryptographic hash functions
    • reduces collision resistance of general hash functions to colission resistance of compression functions
    • compressing 1 single bit is at least as hard as compressing by any number of bits
    • Design
    ◇ suppose that h: {0,1}2n -> {0,1}n is a collision reistant compression function
    ◇ the general hash function M: {x: |x|<2n} -> {0,1}n is defined as
    ▪ H(x) is computed by applying h(x) in a chained manner over n-bit message blocks
    - pad x and create B message blocks x1....xB with |xi| = n
    - set extra final message block xB+1 as n-bit encoding L of |x|
    - starting with z0=IV = 0n, output H(x) = zB+1, where zi=hs(zi-1 || xi)
    • If compression function h is collision resistant, then the derived hash function H is also collision resistant
    images\22-14.png

    Davies-Meyer Scheme


    • Generic construction of CR compression function
    ◇ assume PRF w/ key length n and block length l
    ◇ define h: {0, 1}n+l -> {0,1}l as
    ▪ H(x) = Fk(x) ⊕ x
    ◇ h is CR if F is an ideal cipher
    images\22-15.png

    +

    lecture 4

    Possible Eavesdropping Attacks


    • An attacker may posses a collection of ciphertext:
    ◇ ciphertext only attack
    ◇ EAV-attack
    ▪indistinguishability for a single message against an eavesdropper
    ▪An attacker may posses a collection of plaintext/ciphertext pairs for plaintexts selected by the attacker
    ◇ Chosen plaintext attack
    ◇ CPA-attack
    ▪ indistinguishability for a single message against an eavesdropper

    Perfect EAV-security


    • Definitions
    • For every DM, m ∈ M and c ∈ C, for which Pr[C=c] > 0, it holds that Pr[M=m | C=c] = Pr[M=m]
    • C is independent of M
    ◇ For every m, m' ∈ M and c ∈ C, it holds that Pr[Enck(m) = c] = Pr[Enck(m') = c]
    • indistinguishability
    ◇ For every A, it holds that Pr[b'=b] = 1/2
    • Absolutely no information is leaked about the plaintext
    • To adversaries that unlimited computational power
    • require that m0, m1 are chosen by a PPT adversary
    • require that no PPT adverasary can distinguish Enck(m0) from Enck(m1)

    Computational security


    • A tiny amount of information is leaked about the plaintext
    • To adversaries with bounded computational power
    • Attacks best strategy remains ineffective
    ◇ Random guess on secret key
    ◇ Exhaustive search over key space (brute force attack)
    • Negligible functions:
    ◇ negl = very small probability of success of the attack
    ◇ can be ignored

    Computational EAV-security


    • An attacker may posses a collection of ciphertext
    • require that m0, m1 are chosen by a PPT adversary
    • no PPT adversary can distinguish Enck(m0) frp, Enck(m1)
    ◇ Pr[b' = b] = 1/2 + negl

    CPA-security


    • An attacker may posses a collection of plaintext/ciphertext pairs for plaintexts selected by the attacker
    • Π = {M, (Gen, Enc, Dec)}
    • (Enc, Dec) is CPA-secure if any PPT adversary guesses b correctly with probability at most 0.5 + ε(n), where ε is a negligible function
    • Any encryption scheme that is CPA-secure is also CPA-secure for multiple encryptions
    • CPA security implies probabilistic encryption
    • EAV-security for multiple messages implies probabilistic encryption

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Pseudo-randomness


    • not truly random in that
    ◇ derived by a deterministic algorithm
    ◇ output is dependent on initial values
    • Two types: Classical PRGs, Cryptographically secure PRGs
    • Classical PRGs - linear congruential generator
    • Cryptographically secure PRGs - Blum-Micali generator
    • Definition
    ◇ Deterministic PPT algorithm G that on inpout a seed s ∈ {0,1}n, outputs G(s) ∈ {0,1}l/n
    ◇ G is a PRG if:
    ▪ Expansion
    - for polynomial l, it holds that for any n, l(n) > n
    - models the process of extracting randomness from a short random string
    ▪ Pseudorandomness
    - no efficient statistical test can tell apart G(s) from a truly random string r
    images\22-1.png

    Linear congruential generator


    • Xi = axi-1 + b mod m i >= 1 where
    ◇ x0 is the seed or start value
    ◇ a is the multiplier
    ◇ b is the increment
    ◇ m is the modulus
    • Output:
    ◇ (x1, x2, ..., xk)
    ◇ yi = xi mod 2
    ◇ Y = (y1y2...yk) <- pseudo random sequence of k bits

    Example


    • xn = 3xn-1 + 5 mod 31, n >= 1, x0 = 2
    • 3 and 31 are relatively prime, one-to-one
    • 31 is prime, order is 30
    • 2,11,7,26,21,6,23,12,10,4,17,25,18,28,27,24,15,19,0,5,20,3,14,16,22,9,1,8,29,30
    • When x0 = 2, 01101010001
    • When x1 = 3 10001101001

    Security


    • Fast, but insecure
    ◇ sensitive to the choice of parameters a, b, and m
    ◇ correlation between successive values
    ◇ short period, often m = 232 or 264
    • Used commonly in compilers - rand()
    • Not suitable for high-quality randomness
    • Not suitable for cryptographic applications

    PRG security


    • Pr[D(G(s)) = 1] - Pr[D(r)=1] | <= negl(n)

    PRG-based symmetric-key encryption scheme


    • encryption scheme is EAV-secure as long as the underlying PRG is secure
    • either fixed-length or arbitrary-length encryption scheme
    images\22-2.png

    Modes of operation for stream ciphers


    • on-the-fly computation of new pseudorandom bits, no IV needed, EAV-security
    images\22-3.png
    • random IV used for every new message is sent along with ciphertext, CPA-security

    Pseudorandom functions


    • Generalize the concept of a PRG
    ◇ produce pseudorandom bits that also depend on specific input
    ◇ keyed functions of the form Fk: {0,1}n -> {0,1}n
    • Operate essentially as a random function
    • Fk is PRF if it is indistinguishable from a truly random function f [e.g. f is a random permutation]
    • f: {0,1}n -> {0,1}n is randomly selected for the set of all length-preserving functions mapping n-bit inputs to n-bit outputs
    images\22-4.png

    PRF Security


    • Pr[DF(k,)(1n) = 1] - Pr[Df()(1n) = 1] | <= negl(n)

    PRF-based symmetric-key encryption scheme


    • Encryption scheme is EAV-secure as long as the underlying PRG is secure
    • Fixed-length encryption scheme
    images\22-5.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Modes of Operations for block ciphers


    ECB - electronic code book


    • insecure
    • deterministic - not CPA secure
    • not EAV-secure
    images\22-6.png

    CBC - Cipher block chaining


    • CPA-secure if Fk is a permutation
    • uniform IV - otherwise security breaks
    images\22-7.png

    Chained CBC


    • Uses last block ciphertext as IV of next message
    • not CPA-secure

    OFB - Output Feedback


    • IV uniform
    • message length doesn't need to be multiple of n
    • resembles synchronizes stream-cipher mode
    • stateful variant (chaining) is secure
    • CPA-secure if Fk is PRF
    images\22-8.png

    CTR - Counter Mode


    • CTR uniform
    • message length doesn't need to be multiple of n
    • resembles synchronized stream-cipher mode
    • CPA-secure if Fk is PRF
    • no need for Fk to be invertible
    • parallelizable
    images\22-9.png

    Additional Notes


    • Block length matters -> IV or ctr can be recycled
    • IV are often misused
    ◇ reused or not uniformly random
    ◇ CBC is a better option than OFB/CTR

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Security problems studied by modern cryptography


    • Classical cryptography - message encryption
    ◇ provide secrecy/confidentiality
    ◇ no message should be leaked while in transit
    • Modern cryptography - wide variety of security problems
    ◇ secrecy is not the only security concern when using an unprotected channel
    ◇ need to study large set of secrutiy properties
    • Sibling of message encryption - message authentication
    ◇ provide integrity
    ◇ while in transit, no message should be modified by an outsider

    Message Authentication


    • Information has value -> citrical information must be protected not to leak to unauthorized parties
    ◇ message encryption takes care of this
    • Correct information is valuable
    ◇ incorrect or falsified information may be of little value
    ◇ random information may be useless
    ◇ maliciously crafted information can be harmful
    ◇ message authentication takes care of this

    Examples of attacks


    • A bank receives an electronic request to transfer money from user A to B
    ◇ Did A actually send the request?
    • A user puchases from Amazon
    ◇ Did the user actually make the purchase?

    Integrity of communications / computations


    • no unprotected system can be assumed to be trustworthy
    ◇ origin of information (source) - attacks: impersonation, phishing, etc
    ◇ contents of information - attacks: man-in-the-middle, email spam, etc
    • prevention vs detection
    ◇ tampering with information cannot be avoided.
    ◇ need to be detectable
    • Goal: prevent undetected tampering

    Symmetric-key message authentication


    • Sign message m with tag t and send (m, t)
    • Verify authenticity of received m using t

    Applications


    • Secure communication
    ◇ verify authenticity of messages
    ◇ assumption
    ▪ securely generate distrbute and store shared key k
    ▪ attack does not learn key k
    • Secure Storage
    ◇ verify authenticity of files
    ◇ assumption
    ▪ securely generate and store key k
    ▪ attacker does not learn key k

    Symmetric-key message authentication code (MAC)


    • defined by triplet of PPT algorithms (Gen, Mac, Vrfy) security parameter 1n
    ◇ Gen: prob. alg. on input 1n, outputs a key k from the key space K
    ◇ Mac: prob. alg. on input message m ∈ {0,1}* and key k, outputs tag t, Mack(m) -> t
    ◇ Vrfy: det. alg. on input a pair (m, t) and key k, outputs a bit b, b := Vrfyk(m, t)
    • Satisfying desired properties:
    ◇ efficiency: key generation and tag computation / verification are fast
    ◇ correctness: for all m, k it holds that Vrfyk(m Mack(m)) = 1
    ◇ security: one cannot forge a verifiable pair (m, t)
    • Authenicating m = computing t
    • Verifying authenticity of m = running vrfy

    Security of MACs


    • attacker cannot forge a verifiable message-tag pair (m, t)
    • Replay attack -> insert a new message m*, t* into traffic so that (m*, t*) is verifiable.
    ◇ if m* = previously observed message, attack is successful
    • Brute-force attack Mack(m) -> t is publicly known
    ◇ An exhaustive search in key space K can be done to find the used key k
    • new messages may be forged undetectably, but they can be found only with negligible probability or after an exponentially large computation
    • replay-attack unsafe security definition
    ◇ better not to assume any semantics regarding the high-level app, but instead delegate the validity or safeety check to this app that consumes the messages
    • Eliminating replay attacks
    ◇ Use of counters between sender and receiver
    ◇ Use of timestamps along with an authentication window for validation

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    MAC constructions


    • Fixed-length MAC
    ◇ direct application of a PRF for tagging
    ◇ limited applicability
    • Domain extension for MACs
    ◇ straightforward secure extension of fix-length MAC
    ◇ inefficient
    • CBC-MAC
    ◇ resembles CBC-mode encryption
    ◇ efficient

    Fixed-length MAC


    • Based on use of a PRF
    ◇ employ a PRF Fk in the obvious way to compute and canonically verify tags
    ◇ set tag t to be the pseudorandom string derived by evaluating Fk on message m
    • secure, provided that Fk is a secure PRF
    • MAC scheme Π
    ◇ Gen(1n): {0, 1}n -> k
    ◇ Mack(m): set t = Fk(m)
    ◇ Vrfyk(m, t): return 1 iff t = Fk(m)
    images\22-10.png

    Domain extension for MACs


    • Based on previous fix-length MAC scheme Π
    • Split up m into multiple d blocks mi.
    • Pad them and authenticate via Π
    • Reordering attack -> verify the block index i
    • Truncation attack -> verify message length δ = |m|
    • Mix-and-match attack -> randomize tags (using message specific fresh nonce)
    • Fk(r || mi || i || δ)
    • secure provided that Fk is a secure PRF
    images\22-11.png

    CBC-MAC


    • Employ a PRF similar to CBC-mode encryption
    • security
    ◇ secure only when fixed-length messages are authenticated provided that Fk is a secure PRF
    ◇ messages of length equal to any multiple of n can be authenticated
    ▪ length needs to be fixed in advance
    ◇ insecure otherwise
    • Can authenticate longer messages than basic PRF-based scheme
    • more efficient than domain-extension MAC scheme
    • CBC-MAC uses no IV (or uses IV set to 0)
    • Only uses last PRF output
    images\22-12.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Authenticated encryption


    • Communication is over an open/unprotected channel
    • No message should be leaked
    • No message should be modified
    • Encryption schemes provide secrecy/confidentiality
    • MAC schemes provide integrity/unforability

    Secrecy vs Integrity


    • Secrecy
    ◇ sensitive information has value
    ▪ leaking it can be risky
    ◇ prevention
    ▪ does not imply integrity
    • Integrity
    ◇ correct information has value
    ▪ if manipulated, it can be harmful
    ◇ detection
    ▪ does nont imply secrecy

    Authenticated encryption constructions


    • CPA-secure encryption scheme ΠE=(Enc, Dec)
    • a secure MAC ΠM = (MAC, Vrfy)
    • instantiated using independent secret keys ke, km
    • order matters

    Encrypt-and-authenticate


    • Encke(m) -> c; Mackm(m) -> t; send ciphertext (c, t)
    • if Decke(c) ≠ fail and Vrfykm(m,t) accepts
    ◇ output m
    ◇ else output fail
    • Insecure
    ◇ MAC tag t may leak information about m
    ◇ if MAC is deterministic (CBC-MAC) then ΠAE is not CPA-secure

    Authenticate-then-encrypt


    • Mackm(m) -> t; Encke(m||t) -> c; send ciphertext c
    • if Decke(c) = m || t ≠ fail and Vrfykm(m,t) accepts,
    ◇ output m
    ◇ else output fail
    • insecure

    Encrypt-then-authenticate


    • Encke(m) -> c; Mackm(c) ->t; send ciphertext (c, t)
    • if Vrfykm(c,t) accepts then
    ◇ output Decke(c) = m,
    ◇ else output fail
    • secure scheme as long as ΠM is a strong MAC

    Application of Authenticated Encryption


    • Session communication
    ◇ ΠAE = (Enc, Dec) enables 2 parties to communicate securely
    ◇ session: period of time during which sender and receiver maintain state
    ◇ idea: send message m as c = Enck(m) and ignore received c that doesn't verify
    ◇ secrecy and integrity is protected
    • Possible attacks:
    ◇ reordering attack - counters can be used to eliminate reordering/replays
    ◇ reflection attack - directional bit can be used to eliminate reflections
    ◇ replay attack - c = Enck(ba->b || ctrA,b || m); ctrA,B++

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Hash Functions


    • maps objects to a fix-length string
    • core property: avoid collisions
    ◇ collision: distinct objects x ≠ y) are mapped to the same hash value (H(x) = H(y))
    ◇ collisions may exist, but they should be infeasbile to find
    • lies between symmetric and assymetric key cryptography
    • catpure different security properties on idealized random functions
    • qualitative stronger assumption than PRF
    • security parameter 1n
    images\22-13.png
    • general hash function H
    ◇ maps a message of an arbitrary length to l(n)-bit string
    • compression hash function h
    ◇ maps long binary string to a shorter binary string
    ◇ maps l'(n)-bit string to a l(n)-bit string with l'(n) > l(n)

    Collision resistance (CR)


    • H is collision-resistant if no PPT adversary can find collisions non-negligibly often

    Security


    • Given a hash function H: X->Y
    ◇ preimage resistant (one-way)
    ▪ if given y ∈ Y, finding a value x ∈ X s.t. H(x) = y happens negligibly often
    ◇ 2nd preimage resistant (weak collision resistant)
    ▪ if given a uniform x ∈ X, finding a value x' ∈ X, s.t. x' ≠ x and H(x') = H(x) happens negligibly often
    ◇ cf collision resistant (strong collision resistant)
    ▪ if finding two distinct values x', x ∈ X, s.t. H(x') = H(x) happens negligibly often

    Merkle-Damgard transform


    • reduces problem to design of CR compression functions
    • use for general hash functions
    • general design pattern for cryptographic hash functions
    • reduces collision resistance of general hash functions to colission resistance of compression functions
    • compressing 1 single bit is at least as hard as compressing by any number of bits
    • Design
    ◇ suppose that h: {0,1}2n -> {0,1}n is a collision reistant compression function
    ◇ the general hash function M: {x: |x|<2n} -> {0,1}n is defined as
    ▪ H(x) is computed by applying h(x) in a chained manner over n-bit message blocks
    - pad x and create B message blocks x1....xB with |xi| = n
    - set extra final message block xB+1 as n-bit encoding L of |x|
    - starting with z0=IV = 0n, output H(x) = zB+1, where zi=hs(zi-1 || xi)
    • If compression function h is collision resistant, then the derived hash function H is also collision resistant
    images\22-14.png

    Davies-Meyer Scheme


    • Generic construction of CR compression function
    ◇ assume PRF w/ key length n and block length l
    ◇ define h: {0, 1}n+l -> {0,1}l as
    ▪ H(x) = Fk(x) ⊕ x
    ◇ h is CR if F is an ideal cipher
    images\22-15.png

    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--lectures--lecture_5.html b/notes.ctb_HTML/cs306--lectures--lecture_5.html index 73ebd11..9109b93 100644 --- a/notes.ctb_HTML/cs306--lectures--lecture_5.html +++ b/notes.ctb_HTML/cs306--lectures--lecture_5.html @@ -142,5 +142,5 @@
  • homework
  • -

    lecture 5

    trengthening computational EAV security


    • PPT adversary can learn the ciphertext of any plaintext of its choice
    • no PPT adversary can distinguish c0, c1 non-negligibly better than guessing even with extra information
    • Pr[b' = b] = 1/2 + negl
    • *randomized encryption is needed

    Strengthening vs weakening security


    • strengthening - assume attacker is more powerful
    ◇ e.g. they learn encrypted chosen-plaintext messages
    • weakening - restricting the attacker to be less general
    ◇ e.g. same-length messages
    • Pr[b' = b] = 1/2 + negl

    Hash Functions


    images\37-1.png

    MD5 - Message Digest Algorithm


    • output 128 bits, collision resistance
    • completely broken
    • collisions can be found in less than a minute
    • widely used in legacy applications

    SHA1 - Secure Hash Algorithm


    • output 160 bits
    • considered insecure for collision resistance
    • broken

    SHA2


    • outputs 224, 256, 384, 512 bits
    • no security concerns yet
    • based on Merkle-Damgard and Davies Meyer generic transforms

    SHA3


    • Completely new philosophy
    • Sponge construction and un-keyed permutations

    Attacks against cryptographic hashing


    • assume CR compression function h: {0,1}l'(n) -> {0, 1}l(n)
    • brute force attack
    ◇ for each string x in the domain
    ▪ compute and record hash value h(x)
    ▪ if h(x) = h(y), output collision on x ≠ y
    ◇ evaluate h on 2l(n) + 1 distinct inputs
    ◇ by the pigeon hole principle, at least 1 collision will be found
    • birthday attack
    ◇ more efficient
    ◇ uses randomized search rather than exhausting search
    ▪ k balls = distinct messages
    ▪ m bins = number of possible hash values
    ◇ k balls are each independently and randomly thrown into one out m bins
    ◇ probability that the i-th ball lands in an empty bin: 1-(i-1)/m
    ◇ two balls land in the same bin: Pr[E] = 1-Fk = 1 - e-k(k-1)/2m
    ◇ approximate number of hash evaluations for finding hash collisions with probability p for varous digest lengths in Bits
    ◇ evaluate h on fewer distinct inputs that hash to random values
    ◇ probabilistic analysis - at least 1 collision will likely be found
    ◇ hashing half distinct inputs -> more likely to find a collision
    ◇ to get k-bit security, we at least need hash values of length 2k

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Efficient MAC


    • secure MAC for messages of arbitrary lengths based on CR hashing
    • Gen': instantiate H, Mac, output (s, k)
    • Mac': hash message m into h = Hs(m), output Mack-tag t on h
    • Vrfy': canonical verification
    • Πmac' is secure as long as
    ◇ H is collision resistant
    ◇ Πmac is a secure MAC
    images\37-2.png

    Insecure MAC based on hashing


    • tag t = Mack(m) = H(k || m)
    ◇ given H(k||m), it should be infeasible to compute H(k || m'), m' ≠ m
    • insecure construction
    ◇ susceptive to length-extension attacks
    • security vulnerability
    ◇ practical CR hash functions are of Merkle Damgard design
    • length-extension attack
    ◇ knowledge of H(m1) make it feasible to compute H(m1 || m2)
    ◇ knowing of length of message m1 can retrieve internal state sk even without knowing k
    images\37-3.png

    HMAC: Secure MAC based on hashing


    • HMACk[m] = H[ (k ⊕ opad) || H[ (k ⊕ ipad) || m ] ]
    ◇ two layers of hashing Hs - instantiation of hash and sign paradigm
    • upper layer
    ◇ y = H( (k ⊕ ipad) || m )
    ◇ y = H'(m)
    • lower layer
    ◇ t = H( (k ⊕ opad) || y' )
    ◇ t = Mac'(kouty')
    • if used with a secure hash function and follows specification (key size, correct output), no known practical attacks
    images\37-4.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Message Digest


    • Succinct secure description of data - used to detect changes to a block of data
    • Message Authentication - integrity checking
    • User authentication - password protection
    ◇ used with public-key algorithms for encryption and digital signatures
    • Main properties of modern cryptographic hash functions
    ◇ one way - fast to convert input to a digest but infeasible to infer input of a digest value
    ◇ collision-resistance - many collisions exist but they are not obvious to find

    Secure Cloud storage


    • Hashing can be used to
    ◇ check integrity of files
    ◇ correctness of file searches

    • Plain Model


    images\37-5.png
    ***Attacker can send back an altered file

    • Secure Cloud Storage Model


    images\37-6.png
    images\37-7.png
    • user has
    ◇ authentic digest d
    ◇ file F1' to verify
    ◇ proof (to help verification)
    • canonical verification
    ◇ combine F1' and the proof to recompute digest d'
    ◇ if d' = d - F1 is intact

    Hashing files as a whole


    images\37-8.png

    Hashing files separately


    images\37-9.png

    Merkle Tree


    images\37-10.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Digital Envelops / Commitment Schemes


    • Commitment schemes provide two operations
    ◇ commit(x,r) = C ------ seal an envelop
    ▪ put message x into an evelop using randomness r
    ▪ commit (x,r) = h(x || r)
    ▪ hiding property - you cannot see through an envelop
    - perfect opaqueness
    - reveals nothing about message
    ◇ open(C,m,r) = ACCEPT/REJECT --- open a sealed envelop
    ▪ open envelop using r to check that it has not been tampered with
    ▪ open(C, m, r): check if h(x || r) = ?C
    ▪ binding property - you cannot change the contents of a sealed envelop
    - perfect sealing
    - unforgeability - cannot find a cimmitment collision

    Online auction


    • Use digital envelops / commitment schemes

    Coin Flip - Who's doing the dishes


    • Use digital envelops / commitment schemes

    Forward-secure key rotation


    • Keep hashing the symmetric key after every message
    • If an attack intercepts the messages and breaks into a user's machine, key leakage will only begin after the current key
    • previous messages will remain safe
    images\37-11.png

    File Identifiers


    • h(f) serves as a unique indentifier for F
    • one can check whether two files are equal by comparing digests

    • Virus fingerprinting


    ◇ comparing digest of your files against database of digests of know viruses

    • Peer to peer file sharing


    ◇ routing tables store values in the hash range for easy lookup of files

    • Data deduplication


    ◇ don't save duplicates of file. check if hash is already being stored
    ◇ saves storage and bandwidth

    • Password hashing


    ◇ server stores password hashes
    ◇ if a password file leaks, passwords are protected because of onewayness
    images\37-12.png
    ◇ password space is small and predictable - need to use password salting
    ◇ password salting
    ▪ slow down dictionary attacks
    ▪ salt is appended to a user's password before it is hashed
    ▪ salt value is stored in clear along with the hashed password
    ▪ two users with the same password will have different hashed passwords
    ▪ slows down dictionary attacks

    • Digital Signatures and hashing


    ◇ Hash and sign
    ◇ hash of a message is signed
    ◇ signing message M
    ▪ let h be a cryptographic hash function, assume RSA setting (n,d,e)
    ▪ compute signature σ = h(M)d mod n
    ▪ send σ, M
    ◇ Verifying signature σ
    ◇ use public key (e,n)
    ◇ compute H = σe mod n
    ◇ if H = h(m)
    ▪ output ACCEPT
    ▪ else output REJECT

    +

    lecture 5

    Strengthening computational EAV security


    • PPT adversary can learn the ciphertext of any plaintext of its choice
    • no PPT adversary can distinguish c0, c1 non-negligibly better than guessing even with extra information
    • Pr[b' = b] = 1/2 + negl
    • *randomized encryption is needed

    Strengthening vs weakening security


    • strengthening - assume attacker is more powerful
    ◇ e.g. they learn encrypted chosen-plaintext messages
    • weakening - restricting the attacker to be less general
    ◇ e.g. same-length messages
    • Pr[b' = b] = 1/2 + negl

    Hash Functions


    images\37-1.png

    MD5 - Message Digest Algorithm


    • output 128 bits, collision resistance
    • completely broken
    • collisions can be found in less than a minute
    • widely used in legacy applications

    SHA1 - Secure Hash Algorithm


    • output 160 bits
    • considered insecure for collision resistance
    • broken

    SHA2


    • outputs 224, 256, 384, 512 bits
    • no security concerns yet
    • based on Merkle-Damgard and Davies Meyer generic transforms

    SHA3


    • Completely new philosophy
    • Sponge construction and un-keyed permutations

    Attacks against cryptographic hashing


    • assume CR compression function h: {0,1}l'(n) -> {0, 1}l(n)
    • brute force attack
    ◇ for each string x in the domain
    ▪ compute and record hash value h(x)
    ▪ if h(x) = h(y), output collision on x ≠ y
    ◇ evaluate h on 2l(n) + 1 distinct inputs
    ◇ by the pigeon hole principle, at least 1 collision will be found
    • birthday attack
    ◇ more efficient
    ◇ uses randomized search rather than exhausting search
    ▪ k balls = distinct messages
    ▪ m bins = number of possible hash values
    ◇ k balls are each independently and randomly thrown into one out m bins
    ◇ probability that the i-th ball lands in an empty bin: 1-(i-1)/m
    ◇ two balls land in the same bin: Pr[E] = 1-Fk = 1 - e-k(k-1)/2m
    ◇ approximate number of hash evaluations for finding hash collisions with probability p for varous digest lengths in Bits
    ◇ evaluate h on fewer distinct inputs that hash to random values
    ◇ probabilistic analysis - at least 1 collision will likely be found
    ◇ hashing half distinct inputs -> more likely to find a collision
    ◇ to get k-bit security, we at least need hash values of length 2k

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Efficient MAC


    • secure MAC for messages of arbitrary lengths based on CR hashing
    • Gen': instantiate H, Mac, output (s, k)
    • Mac': hash message m into h = Hs(m), output Mack-tag t on h
    • Vrfy': canonical verification
    • Πmac' is secure as long as
    ◇ H is collision resistant
    ◇ Πmac is a secure MAC
    images\37-2.png

    Insecure MAC based on hashing


    • tag t = Mack(m) = H(k || m)
    ◇ given H(k||m), it should be infeasible to compute H(k || m'), m' ≠ m
    • insecure construction
    ◇ susceptive to length-extension attacks
    • security vulnerability
    ◇ practical CR hash functions are of Merkle Damgard design
    • length-extension attack
    ◇ knowledge of H(m1) make it feasible to compute H(m1 || m2)
    ◇ knowing of length of message m1 can retrieve internal state sk even without knowing k
    images\37-3.png

    HMAC: Secure MAC based on hashing


    • HMACk[m] = H[ (k ⊕ opad) || H[ (k ⊕ ipad) || m ] ]
    ◇ two layers of hashing Hs - instantiation of hash and sign paradigm
    • upper layer
    ◇ y = H( (k ⊕ ipad) || m )
    ◇ y = H'(m)
    • lower layer
    ◇ t = H( (k ⊕ opad) || y' )
    ◇ t = Mac'(kouty')
    • if used with a secure hash function and follows specification (key size, correct output), no known practical attacks
    images\37-4.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Message Digest


    • Succinct secure description of data - used to detect changes to a block of data
    • Message Authentication - integrity checking
    • User authentication - password protection
    ◇ used with public-key algorithms for encryption and digital signatures
    • Main properties of modern cryptographic hash functions
    ◇ one way - fast to convert input to a digest but infeasible to infer input of a digest value
    ◇ collision-resistance - many collisions exist but they are not obvious to find

    Secure Cloud storage


    • Hashing can be used to
    ◇ check integrity of files
    ◇ correctness of file searches

    • Plain Model


    images\37-5.png
    ***Attacker can send back an altered file

    • Secure Cloud Storage Model


    images\37-6.png
    images\37-7.png
    • user has
    ◇ authentic digest d
    ◇ file F1' to verify
    ◇ proof (to help verification)
    • canonical verification
    ◇ combine F1' and the proof to recompute digest d'
    ◇ if d' = d - F1 is intact

    Hashing files as a whole


    images\37-8.png

    Hashing files separately


    images\37-9.png

    Merkle Tree


    images\37-10.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Digital Envelops / Commitment Schemes


    • Commitment schemes provide two operations
    ◇ commit(x,r) = C ------ seal an envelop
    ▪ put message x into an evelop using randomness r
    ▪ commit (x,r) = h(x || r)
    ▪ hiding property - you cannot see through an envelop
    - perfect opaqueness
    - reveals nothing about message
    ◇ open(C,m,r) = ACCEPT/REJECT --- open a sealed envelop
    ▪ open envelop using r to check that it has not been tampered with
    ▪ open(C, m, r): check if h(x || r) = ?C
    ▪ binding property - you cannot change the contents of a sealed envelop
    - perfect sealing
    - unforgeability - cannot find a cimmitment collision

    Online auction


    • Use digital envelops / commitment schemes

    Coin Flip - Who's doing the dishes


    • Use digital envelops / commitment schemes

    Forward-secure key rotation


    • Keep hashing the symmetric key after every message
    • If an attack intercepts the messages and breaks into a user's machine, key leakage will only begin after the current key
    • previous messages will remain safe
    images\37-11.png

    File Identifiers


    • h(f) serves as a unique indentifier for F
    • one can check whether two files are equal by comparing digests

    • Virus fingerprinting


    ◇ comparing digest of your files against database of digests of know viruses

    • Peer to peer file sharing


    ◇ routing tables store values in the hash range for easy lookup of files

    • Data deduplication


    ◇ don't save duplicates of file. check if hash is already being stored
    ◇ saves storage and bandwidth

    • Password hashing


    ◇ server stores password hashes
    ◇ if a password file leaks, passwords are protected because of onewayness
    images\37-12.png
    ◇ password space is small and predictable - need to use password salting
    ◇ password salting
    ▪ slow down dictionary attacks
    ▪ salt is appended to a user's password before it is hashed
    ▪ salt value is stored in clear along with the hashed password
    ▪ two users with the same password will have different hashed passwords
    ▪ slows down dictionary attacks

    • Digital Signatures and hashing


    ◇ Hash and sign
    ◇ hash of a message is signed
    ◇ signing message M
    ▪ let h be a cryptographic hash function, assume RSA setting (n,d,e)
    ▪ compute signature σ = h(M)d mod n
    ▪ send σ, M
    ◇ Verifying signature σ
    ◇ use public key (e,n)
    ◇ compute H = σe mod n
    ◇ if H = h(m)
    ▪ output ACCEPT
    ▪ else output REJECT

    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--lectures--lecture_6.html b/notes.ctb_HTML/cs306--lectures--lecture_6.html index 98ff9cf..7385fdf 100644 --- a/notes.ctb_HTML/cs306--lectures--lecture_6.html +++ b/notes.ctb_HTML/cs306--lectures--lecture_6.html @@ -142,5 +142,5 @@
  • homework
  • -

    lecture 6

    ymmetric Key Cryptography


    • Assumptions
    ◇ Adversary
    ▪ types of attacks
    ◇ trusted setup
    ▪ keys are distributed securely
    ▪ keys remain secret
    ◇ trust basis
    ▪ underlying primitives are secure
    ▪ PRG, PRF, CR-hashing
    • Limitations
    ◇ securely obtain
    ▪ strong assumption to make
    ▪ requires secure channel for key distribution
    ▪ seems impossible for two parties having no prior trust relationship
    ▪ not easily justifiable to hold a prioi
    ◇ shared secret key
    ▪ challenging problem to solve
    ▪ requires too many keys for n parties to communicate
    ▪ too much risk to protect all secret keys
    ▪ revovation complexity

    • 2 approaches to solve key distribution


    ◇ designated secure channels
    ▪ physically protected
    ▪ e.g. sound proof room
    ◇ trusted party
    ▪ entities autorized to dstribute keys
    ▪ e.g. key distribution center

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Public key (assymetric cryptography)


    • Goal: devise a cryptosystem where key management is more manageable
    • idea: user-specific keys (that come in pairs)
    ◇ Upk is public
    ◇ Usk is private
    • usage:
    ◇ employ public key for public tasks
    ◇ employ private key for sensitive tasks
    • assumption:
    ◇ public key infrastructure PKI: public keys become securely available to users
    ◇ secret keys remain secret
    ◇ underlying primitives are secure
    images\66-1.png

    Terms


    • asymmetric crypto = public-key crypto
    • symmetric crypto = secret key crypto
    • user's public-key pair = (user's public key, user's private key)
    • user's private key = user's secret key
    • pk = public key
    • sk = secret key

    Encryption


    • Sender and receiver maintain different keys
    • each user has two keys: public and private
    • message encrypted by receiver's public key can only be decrypted by receiver's private key

    Digital signatures


    • Sender and receiver maintain different keys
    • each user has two keys: public and private
    • messages signed by sender's private key can be verified by sender's public key

    Public key pairs and user identities


    • A public-key pair of user U can be specific to a machine or application
    • Gen is a key-generation algorithm to produce (Upk, Usk)
    • Public-key pair is always attached to a user's identity
    • associated with the user's identity

    Public-key infrastructure (PKI)


    • Setting
    ◇ a set of users produce their public-key pairs
    ◇ keys will be used by a public-key cryptosystem
    ▪ each private key is securely stored individually by the user owning the key
    • Where are publish keys stored?
    • How do they remain authenticated?
    • PKI is a mechanism for the secure management of public keys
    ◇ challenging to achieve

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Symmetric vs Asymmetric Crypto


    Key ManagementAssumptionsPrimitivesAdversarial Sampling
    SymmetricLess scalable and riskersecret and authentic communicationgeneric assumptionsoracle access
    secure storagemore efficient in practice
    Asymmetricmore scalable and simplerauthenticity (PKI)number-theoretic assumptionspublic-key operations and oracle access
    secure storageless efficient in practice (2-3 o.o.m)

    images\66-2.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Public-key encryption


    • assumes trusted setup
    ◇ PKI (public keys are public) and secure storage (private keys remain private)
    • Many parties can encrypt, but only one party can decrypt
    images\66-3.png
    • defined by message space M and triplet of algorithms (Gen, Enc, Dec)
    ◇ Gen: probabilistic algorithm that outputs a public-key pair (Upk, Usk) for user U
    ◇ Enc: probabilistic algorithm that on input plantextm and public key, outputs ciphertext c
    ◇ Dec: deterministic alogirthm that on input ciphertext c and private key, outputs a plaintext m

    Security


    • CPA-securty -- randomized encryption is required
    • Easy to check (Upk, Usk) is a valid key pair
    • infeasible to produce Usk from Upk
    • the attacker can posses the rcipient's public key
    ◇ all 3 collapse to the same attack type
    ▪ ciphertext-only attack
    ▪ known plaintext attack
    ▪ chosen-plaintext attack
    • EAV-security
    ◇ A scheme is EAV-secure if no PPT attacker can correctly guess b non-negligibly better than randomly guessing
    ▪ even when it can use the recipient's public key pk
    ▪ one message extends to multiple messages
    ▪ fixed-length messages extends to arbitrary length messages
    ▪ probabilistic encryption is necessary
    • CPA-security
    ◇ A scheme is CPA-secure if any PPT adversary guesses b correctly with probability at most 0.5 + ε(n), where ε is a negligible function
    ▪ even when it learns the encryptions of messages of its choice
    ▪ one message extends to multiple messages
    ▪ fixed-length messages extends to arbitrary length messages
    ▪ probabilistic encryption is necessary
    • EAV-security implies CPA-security
    • CCA-security
    ◇ attacker posses recipient's public key
    ◇ attacker has access to the decryption oracle
    ◇ attacker is not allowed to use the oracle on the challenge ciphertext
    ◇ probabilistic encryption necessary
    ◇ one message extends to multiple messages
    ◇ fixed length messages DO NOT extend to arbitrary length messages

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Hybrid encryption


    images\66-4.png
    • reduces public-key crypto to secret-key crypto
    • better performance
    • apply public-key encryption on random key k
    • use k for secret-key encryption of m
    images\66-5.png
    • Using KEM/DEM approach
    ◇ encapsulate secret key k into c
    ◇ use k for secret-key encryption of m
    ◇ KEM: key-encapsulation mechanism - Encaps
    ◇ DEM: data encapsulation machanism - Enc'
    ◇ KEM/DEM scheme
    ▪ CPA-secure if KEM is CPA-secure and Enc' is EAV-secure
    ▪ CCA-secure if KEM and Enc' are CCA-secure

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Digital Signatures


    • A person can deny that they signed something.
    • Digital signatures make it infeasible to fake

    • Mac for digital signing


    ◇ two parties share a secret key k
    ◇ one party generates MAC on the message to be signed, using k
    ◇ message digest serves as a signature
    ◇ the other party varifies the integrity of the signed message using k
    images\66-6.png

    Properties of Digital Signatures


    • Authentication - receiver can determine that the signature really came from the signer
    • Integrity/unforgeability - no one other than the signer can produce the signature without the signer's private key
    • Non-repudiation - the ability to ensrue that a party cannot deny the authenticity of their signature on a document
    • Not alterable signatures - no signer, receiver, or any interceptor can modify the signature without tampering being evident
    • Not reusable signatures (replay-attack safeness) - any attempt to reuse a previous signature will be detected by the receiver

    Asymmetric-key message authentication


    • Scheme
    ◇ Secret key is sued for signing and public key is used for verification
    ◇ The message m with signature σ is sent.
    • One only party can sign, but multiple parties can verify
    • Assumption: PKI
    • existential unforgeability
    ◇ infeasible for any PPT attacker to forge an invalid but verifiable signature on a new message

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Public Key Certifications


    • public-key pairs are bound to user identities
    • PKI implements a mechanism for securely managing public keys
    • Where to store keys so they are publicly available?
    • How are they secured so they remain authenticated?
    • Challenging to achieve:
    ◇ open, dynamic, multi-user system
    ▪ users can join or leave, or privileges can be revoked
    ◇ user-specific public-key pairs
    ▪ unique key pair is attached to the identity of user U
    ◇ authenticated public keys
    ▪ a user's current public key should be consistently known to everyone

    Distibution of public keys


    • public announcement
    ◇ users can distribute public keys to recipients or broadcast to community at large
    • publicly available directory
    ◇ users can obtain better security by registering keys with a public directory

    Trusting One's Public Key


    • Attacks:
    ◇ An impostor claims to be a true party --- impostor has public and private key of victim
    ◇ Impostor sends impostor's own public key to the verifier --- impostor pretends to be victim

    Certificates


    • A digital certificate is a public key and an identity bound together and signed by a certificate authority
    • a certificate authority is an authority that users trust to accurately verify identities before generating certificates that bind those identities to keys
    • imperfect practice

    Certificate hierarchy


    • a single CA certifying every public key is impractical
    • uses trusted root authorities
    • root CA signs certificates for intermediate CAs and they sign certificates for lower-level CAs.
    images\66-7.png

    X.509 certificates


    • framework for authentication services
    ◇ public keys stored as certificates in public directory
    ◇ certificates issued and signed by certification authority
    • used by many applications - SSL

    Key Agreement


    • vulnerable to man in the middle attacks
    ◇ need to verify with the certificate authority
    • Public key encryption
    images\66-8.png
    • Diffie-hellman key-agreement protocol
    ◇ computing discrete logs is computationally hard
    images\66-9.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Number-Theoretic Facts


    • Public key encryption algorithms
    ◇ typically based on number theory and modular arithmetic
    ◇ relies on hardness assumption
    ◇ Two algorithms:
    ▪ RSA
    - Based on the hardness of factoring large numbers
    ▪ El Gamal
    - Based on the hardness of solving discrete logarithm
    - Same idea as Diffie-Hellman key agreement

    Multiplicative inverses


    • x * y mod n = 1
    • multiplicative inverses of the residues modulo 11
    images\66-10.png
    • Theorem
    ◇ An element x in Zn has a multiplicative inverse if and only if x and n are relatively prime.
    • Z = 10
    images\66-11.png
    ◇ If p is prime, every nonzero in Zp has multiplicative inverses

    Multiplicative group


    • all numbers up to n in Zn that have multiplicative inverses

    Totient function Φ(n)


    • denotes order (length) of Z*n
    • e.g. Z*10 = {1,3,7,9). n = 10. Φ(10) = 4
    • if n = p * q, where p and q are distinct primes, then
    ◇ Φ(n) = (p-1)(q-1)
    ◇ difficult problem to find p and q, or order of n, only given N

    Fermat's Little Theorem


    • for each nonzero x in Zp, xp-1 mod p = 1
    • e.g. p = 5
    ◇ 14 mod 5 = 1
    ◇ 34 mod 5 =1

    Euler's Theorem


    • for each element x in Z*n, xΦ(n) mod n =1
    • e.g. n = 10
    ◇ Z*10= {1,3,7,9}. n = 10, Φ(10) = 4
    ◇ 3Φ(10) mod 10 = 1

    Computing Exponents


    • For the multiplicative group Z*n, we can reduce the exponent modulo Φ(n)
    • xy mod n = xy mod Φ(n) mod n

    Euclid's GCD algorithm


    • gcd(a, b) = if b = 0 return a else gcd(b, a mod b);

    Extended Euclidean algorithm


    images\66-12.png

    Computing multiplicative inverse


    • given two numbers a and b, there exist integers x, y s.t. x a + y b = gcd(a,b)
    • can be computed efficiently by the extended Euclidean algorithm
    • the multiplicative inverse of a in Zb exists iff gcd(a,b) = 1
    • The extended Euclidean algorithm computes x and y s.t. xa + yb = 1
    • the multiplicative inverse of a in Zb is x

    Powers


    • Let p be a prime
    ◇ the sequences of successive powers of the elements in Z*p exhibit repeating subsequences
    ◇ the sizes of the repeating subsequences and the number of their repetitions are the divisors of p-1
    images\66-13.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    RSA Algorithm


    General case
    • Setup (run by a given user)
    ◇ n = p * q, with p and q primes
    ◇ e relatively prime to Φ(n) = (p - 1)(q - 1)
    ◇ d inverse of e in ZΦ(n)
    • Keys
    ◇ public key is Kpk = (n, e)
    ◇ private key is Ksk = d
    • Encryption
    ◇ C = Me mod n for plaintext M in Zn
    • Decryption
    ◇ M = Cd mod n
    images\66-14.png
    images\66-15.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Signing with RSA


    • (Md)e = M mod p * q
    • signing algorithm = Sign(M,d,n): σ = Md mod n for message M in Zn
    • verifying algorithm = Vrfy(σ, M, e, n): return M == σe mod n
    • General case
    ◇ Setup
    ▪ n = p * q with p and q primes
    ▪ e relatively prime to Φ(n) = (p - 1)(q - 1)
    ▪ d inverse of e in ZΦ(n)
    ◇ Keys
    ▪ public key is Kpk = (n,e)
    ▪ private key is Ksk = d
    ◇ Sign
    ▪ σ = Md mod n for message M in Zn
    ◇ Verify
    ▪ Check if M = σe mod n
    images\66-16.png

    Security


    • Sign the hash
    • Current practice is using 2048-bit long RSA keys (617 decimal digits)
    • Plain RSA is deteministic
    • homomorphic

    Issues


    • Requires various algorithms
    ◇ Generation of random numbers
    ◇ primality testing
    ◇ computation of the GCD
    ◇ Computation of the multiplicative inverse

    Real-world usage


    • Randomized RSA
    ◇ To encrypt message M under an RSA public key (e, n) generate a new random session AES key K, compute ciphertext as [Ke mod n, AESk(m)]
    ◇ prevents an adversary distinguishing two encryptions of the same M since K is chosen at random every time encryption takes place
    • Optimal Asymmetric Encryption Padding (OAEP)
    ◇ roughly to encrypt M , choose random r, encode M as M' = [X = M ⊕ H1(r), Y = r ⊕ H2(X)] where H1 and H2 are cryptographic hash functions, then encrypt it as (M')e mod n

    Modular Powers


    images\66-17.png

    Pseudo-primality testing


    images\66-18.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ElGamal Encryption Scheme


    images\66-19.png
    images\66-20.png
    +

    lecture 6

    Symmetric Key Cryptography


    • Assumptions
    ◇ Adversary
    ▪ types of attacks
    ◇ trusted setup
    ▪ keys are distributed securely
    ▪ keys remain secret
    ◇ trust basis
    ▪ underlying primitives are secure
    ▪ PRG, PRF, CR-hashing
    • Limitations
    ◇ securely obtain
    ▪ strong assumption to make
    ▪ requires secure channel for key distribution
    ▪ seems impossible for two parties having no prior trust relationship
    ▪ not easily justifiable to hold a prioi
    ◇ shared secret key
    ▪ challenging problem to solve
    ▪ requires too many keys for n parties to communicate
    ▪ too much risk to protect all secret keys
    ▪ revovation complexity

    • 2 approaches to solve key distribution


    ◇ designated secure channels
    ▪ physically protected
    ▪ e.g. sound proof room
    ◇ trusted party
    ▪ entities autorized to dstribute keys
    ▪ e.g. key distribution center

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Public key (assymetric cryptography)


    • Goal: devise a cryptosystem where key management is more manageable
    • idea: user-specific keys (that come in pairs)
    ◇ Upk is public
    ◇ Usk is private
    • usage:
    ◇ employ public key for public tasks
    ◇ employ private key for sensitive tasks
    • assumption:
    ◇ public key infrastructure PKI: public keys become securely available to users
    ◇ secret keys remain secret
    ◇ underlying primitives are secure
    images\66-1.png

    Terms


    • asymmetric crypto = public-key crypto
    • symmetric crypto = secret key crypto
    • user's public-key pair = (user's public key, user's private key)
    • user's private key = user's secret key
    • pk = public key
    • sk = secret key

    Encryption


    • Sender and receiver maintain different keys
    • each user has two keys: public and private
    • message encrypted by receiver's public key can only be decrypted by receiver's private key

    Digital signatures


    • Sender and receiver maintain different keys
    • each user has two keys: public and private
    • messages signed by sender's private key can be verified by sender's public key

    Public key pairs and user identities


    • A public-key pair of user U can be specific to a machine or application
    • Gen is a key-generation algorithm to produce (Upk, Usk)
    • Public-key pair is always attached to a user's identity
    • associated with the user's identity

    Public-key infrastructure (PKI)


    • Setting
    ◇ a set of users produce their public-key pairs
    ◇ keys will be used by a public-key cryptosystem
    ▪ each private key is securely stored individually by the user owning the key
    • Where are publish keys stored?
    • How do they remain authenticated?
    • PKI is a mechanism for the secure management of public keys
    ◇ challenging to achieve

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Symmetric vs Asymmetric Crypto


    Key ManagementAssumptionsPrimitivesAdversarial Sampling
    SymmetricLess scalable and riskersecret and authentic communicationgeneric assumptionsoracle access
    secure storagemore efficient in practice
    Asymmetricmore scalable and simplerauthenticity (PKI)number-theoretic assumptionspublic-key operations and oracle access
    secure storageless efficient in practice (2-3 o.o.m)

    images\66-2.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Public-key encryption


    • assumes trusted setup
    ◇ PKI (public keys are public) and secure storage (private keys remain private)
    • Many parties can encrypt, but only one party can decrypt
    images\66-3.png
    • defined by message space M and triplet of algorithms (Gen, Enc, Dec)
    ◇ Gen: probabilistic algorithm that outputs a public-key pair (Upk, Usk) for user U
    ◇ Enc: probabilistic algorithm that on input plantextm and public key, outputs ciphertext c
    ◇ Dec: deterministic alogirthm that on input ciphertext c and private key, outputs a plaintext m

    Security


    • CPA-securty -- randomized encryption is required
    • Easy to check (Upk, Usk) is a valid key pair
    • infeasible to produce Usk from Upk
    • the attacker can posses the rcipient's public key
    ◇ all 3 collapse to the same attack type
    ▪ ciphertext-only attack
    ▪ known plaintext attack
    ▪ chosen-plaintext attack
    • EAV-security
    ◇ A scheme is EAV-secure if no PPT attacker can correctly guess b non-negligibly better than randomly guessing
    ▪ even when it can use the recipient's public key pk
    ▪ one message extends to multiple messages
    ▪ fixed-length messages extends to arbitrary length messages
    ▪ probabilistic encryption is necessary
    • CPA-security
    ◇ A scheme is CPA-secure if any PPT adversary guesses b correctly with probability at most 0.5 + ε(n), where ε is a negligible function
    ▪ even when it learns the encryptions of messages of its choice
    ▪ one message extends to multiple messages
    ▪ fixed-length messages extends to arbitrary length messages
    ▪ probabilistic encryption is necessary
    • EAV-security implies CPA-security
    • CCA-security
    ◇ attacker posses recipient's public key
    ◇ attacker has access to the decryption oracle
    ◇ attacker is not allowed to use the oracle on the challenge ciphertext
    ◇ probabilistic encryption necessary
    ◇ one message extends to multiple messages
    ◇ fixed length messages DO NOT extend to arbitrary length messages

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Hybrid encryption


    images\66-4.png
    • reduces public-key crypto to secret-key crypto
    • better performance
    • apply public-key encryption on random key k
    • use k for secret-key encryption of m
    images\66-5.png
    • Using KEM/DEM approach
    ◇ encapsulate secret key k into c
    ◇ use k for secret-key encryption of m
    ◇ KEM: key-encapsulation mechanism - Encaps
    ◇ DEM: data encapsulation machanism - Enc'
    ◇ KEM/DEM scheme
    ▪ CPA-secure if KEM is CPA-secure and Enc' is EAV-secure
    ▪ CCA-secure if KEM and Enc' are CCA-secure

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Digital Signatures


    • A person can deny that they signed something.
    • Digital signatures make it infeasible to fake

    • Mac for digital signing


    ◇ two parties share a secret key k
    ◇ one party generates MAC on the message to be signed, using k
    ◇ message digest serves as a signature
    ◇ the other party varifies the integrity of the signed message using k
    images\66-6.png

    Properties of Digital Signatures


    • Authentication - receiver can determine that the signature really came from the signer
    • Integrity/unforgeability - no one other than the signer can produce the signature without the signer's private key
    • Non-repudiation - the ability to ensrue that a party cannot deny the authenticity of their signature on a document
    • Not alterable signatures - no signer, receiver, or any interceptor can modify the signature without tampering being evident
    • Not reusable signatures (replay-attack safeness) - any attempt to reuse a previous signature will be detected by the receiver

    Asymmetric-key message authentication


    • Scheme
    ◇ Secret key is sued for signing and public key is used for verification
    ◇ The message m with signature σ is sent.
    • One only party can sign, but multiple parties can verify
    • Assumption: PKI
    • existential unforgeability
    ◇ infeasible for any PPT attacker to forge an invalid but verifiable signature on a new message

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Public Key Certifications


    • public-key pairs are bound to user identities
    • PKI implements a mechanism for securely managing public keys
    • Where to store keys so they are publicly available?
    • How are they secured so they remain authenticated?
    • Challenging to achieve:
    ◇ open, dynamic, multi-user system
    ▪ users can join or leave, or privileges can be revoked
    ◇ user-specific public-key pairs
    ▪ unique key pair is attached to the identity of user U
    ◇ authenticated public keys
    ▪ a user's current public key should be consistently known to everyone

    Distibution of public keys


    • public announcement
    ◇ users can distribute public keys to recipients or broadcast to community at large
    • publicly available directory
    ◇ users can obtain better security by registering keys with a public directory

    Trusting One's Public Key


    • Attacks:
    ◇ An impostor claims to be a true party --- impostor has public and private key of victim
    ◇ Impostor sends impostor's own public key to the verifier --- impostor pretends to be victim

    Certificates


    • A digital certificate is a public key and an identity bound together and signed by a certificate authority
    • a certificate authority is an authority that users trust to accurately verify identities before generating certificates that bind those identities to keys
    • imperfect practice

    Certificate hierarchy


    • a single CA certifying every public key is impractical
    • uses trusted root authorities
    • root CA signs certificates for intermediate CAs and they sign certificates for lower-level CAs.
    images\66-7.png

    X.509 certificates


    • framework for authentication services
    ◇ public keys stored as certificates in public directory
    ◇ certificates issued and signed by certification authority
    • used by many applications - SSL

    Key Agreement


    • vulnerable to man in the middle attacks
    ◇ need to verify with the certificate authority
    • Public key encryption
    images\66-8.png
    • Diffie-hellman key-agreement protocol
    ◇ computing discrete logs is computationally hard
    images\66-9.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Number-Theoretic Facts


    • Public key encryption algorithms
    ◇ typically based on number theory and modular arithmetic
    ◇ relies on hardness assumption
    ◇ Two algorithms:
    ▪ RSA
    - Based on the hardness of factoring large numbers
    ▪ El Gamal
    - Based on the hardness of solving discrete logarithm
    - Same idea as Diffie-Hellman key agreement

    Multiplicative inverses


    • x * y mod n = 1
    • multiplicative inverses of the residues modulo 11
    images\66-10.png
    • Theorem
    ◇ An element x in Zn has a multiplicative inverse if and only if x and n are relatively prime.
    • Z = 10
    images\66-11.png
    ◇ If p is prime, every nonzero in Zp has multiplicative inverses

    Multiplicative group


    • all numbers up to n in Zn that have multiplicative inverses

    Totient function Φ(n)


    • denotes order (length) of Z*n
    • e.g. Z*10 = {1,3,7,9). n = 10. Φ(10) = 4
    • if n = p * q, where p and q are distinct primes, then
    ◇ Φ(n) = (p-1)(q-1)
    ◇ difficult problem to find p and q, or order of n, only given N

    Fermat's Little Theorem


    • for each nonzero x in Zp, xp-1 mod p = 1
    • e.g. p = 5
    ◇ 14 mod 5 = 1
    ◇ 34 mod 5 =1

    Euler's Theorem


    • for each element x in Z*n, xΦ(n) mod n =1
    • e.g. n = 10
    ◇ Z*10= {1,3,7,9}. n = 10, Φ(10) = 4
    ◇ 3Φ(10) mod 10 = 1

    Computing Exponents


    • For the multiplicative group Z*n, we can reduce the exponent modulo Φ(n)
    • xy mod n = xy mod Φ(n) mod n

    Euclid's GCD algorithm


    • gcd(a, b) = if b = 0 return a else gcd(b, a mod b);

    Extended Euclidean algorithm


    images\66-12.png

    Computing multiplicative inverse


    • given two numbers a and b, there exist integers x, y s.t. x a + y b = gcd(a,b)
    • can be computed efficiently by the extended Euclidean algorithm
    • the multiplicative inverse of a in Zb exists iff gcd(a,b) = 1
    • The extended Euclidean algorithm computes x and y s.t. xa + yb = 1
    • the multiplicative inverse of a in Zb is x

    Powers


    • Let p be a prime
    ◇ the sequences of successive powers of the elements in Z*p exhibit repeating subsequences
    ◇ the sizes of the repeating subsequences and the number of their repetitions are the divisors of p-1
    images\66-13.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    RSA Algorithm


    General case
    • Setup (run by a given user)
    ◇ n = p * q, with p and q primes
    ◇ e relatively prime to Φ(n) = (p - 1)(q - 1)
    ◇ d inverse of e in ZΦ(n)
    • Keys
    ◇ public key is Kpk = (n, e)
    ◇ private key is Ksk = d
    • Encryption
    ◇ C = Me mod n for plaintext M in Zn
    • Decryption
    ◇ M = Cd mod n
    images\66-14.png
    images\66-15.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Signing with RSA


    • (Md)e = M mod p * q
    • signing algorithm = Sign(M,d,n): σ = Md mod n for message M in Zn
    • verifying algorithm = Vrfy(σ, M, e, n): return M == σe mod n
    • General case
    ◇ Setup
    ▪ n = p * q with p and q primes
    ▪ e relatively prime to Φ(n) = (p - 1)(q - 1)
    ▪ d inverse of e in ZΦ(n)
    ◇ Keys
    ▪ public key is Kpk = (n,e)
    ▪ private key is Ksk = d
    ◇ Sign
    ▪ σ = Md mod n for message M in Zn
    ◇ Verify
    ▪ Check if M = σe mod n
    images\66-16.png

    Security


    • Sign the hash
    • Current practice is using 2048-bit long RSA keys (617 decimal digits)
    • Plain RSA is deteministic
    • homomorphic

    Issues


    • Requires various algorithms
    ◇ Generation of random numbers
    ◇ primality testing
    ◇ computation of the GCD
    ◇ Computation of the multiplicative inverse

    Real-world usage


    • Randomized RSA
    ◇ To encrypt message M under an RSA public key (e, n) generate a new random session AES key K, compute ciphertext as [Ke mod n, AESk(m)]
    ◇ prevents an adversary distinguishing two encryptions of the same M since K is chosen at random every time encryption takes place
    • Optimal Asymmetric Encryption Padding (OAEP)
    ◇ roughly to encrypt M , choose random r, encode M as M' = [X = M ⊕ H1(r), Y = r ⊕ H2(X)] where H1 and H2 are cryptographic hash functions, then encrypt it as (M')e mod n

    Modular Powers


    images\66-17.png

    Pseudo-primality testing


    images\66-18.png

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ElGamal Encryption Scheme


    images\66-19.png
    images\66-20.png
    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306--lectures.html b/notes.ctb_HTML/cs306--lectures.html index a160277..a8146d8 100644 --- a/notes.ctb_HTML/cs306--lectures.html +++ b/notes.ctb_HTML/cs306--lectures.html @@ -142,5 +142,5 @@
  • homework
  • -

    lectures


    +

    lectures


    lectures
    lecture 1
    Definitions
    Examples of Controls
    Examples of threats
    Examples of vulnerability
    CIA triad
    Ways to neutralize threats or remove vulnerabilities
    lecture 2
    Definitions
    Why
    Symmetric-key encryption
    Kerckhoff's principle
    Applications of Symmetric Keys
    Attacks on symmetric encryption
    Brute Force
    Perfect correctness
    Perfect Security
    • Definition 1
    • Definition 2
    One time pad
    • Weaknesses
    Modern cryptography
    Symmetric encryption and Modern Cryptography example
    lecture 3
    Shannon's theorem
    Computational Security - Relax Perfectness
    • Definition
    Almost optimal security
    Alternative Approach
    Classical Ciphers
    Substituion cipher
    Caesar's cipher
    Shift Cipher
    Mono-alphabetic substituion cipher
    Vigenere cipher
    Stream Ciphers
    Block Ciphers
    Stream vs Block ciphers
    Perfect encryption of a block
    Primitive techniques for symmetric-key encryption
    Substitution boxes
    DES: Data Encryption Standard
    AES: Advanced Encryption System
    DES vs AES
    Block Cipher Modes
    ECB: Electronic Code Book
    CBC: Cipher Block Chaining
    lecture 4
    Possible Eavesdropping Attacks
    Perfect EAV-security
    Computational security
    Computational EAV-security
    CPA-security
    Pseudo-randomness
    Linear congruential generator
    Example
    Security
    PRG security
    PRG-based symmetric-key encryption scheme
    Modes of operation for stream ciphers
    Pseudorandom functions
    PRF Security
    PRF-based symmetric-key encryption scheme
    Modes of Operations for block ciphers
    ECB - electronic code book
    CBC - Cipher block chaining
    Chained CBC
    OFB - Output Feedback
    CTR - Counter Mode
    Additional Notes
    Security problems studied by modern cryptography
    Message Authentication
    Examples of attacks
    Integrity of communications / computations
    Symmetric-key message authentication
    Applications
    Symmetric-key message authentication code (MAC)
    Security of MACs
    MAC constructions
    Fixed-length MAC
    Domain extension for MACs
    CBC-MAC
    Authenticated encryption
    Secrecy vs Integrity
    Authenticated encryption constructions
    Encrypt-and-authenticate
    Authenticate-then-encrypt
    Encrypt-then-authenticate
    Application of Authenticated Encryption
    Hash Functions
    Collision resistance (CR)
    Security
    Merkle-Damgard transform
    Davies-Meyer Scheme
    lecture 5
    Strengthening computational EAV security
    Strengthening vs weakening security
    Hash Functions
    MD5 - Message Digest Algorithm
    SHA1 - Secure Hash Algorithm
    SHA2
    SHA3
    Attacks against cryptographic hashing
    Efficient MAC
    Insecure MAC based on hashing
    HMAC: Secure MAC based on hashing
    Message Digest
    Secure Cloud storage
    • Plain Model
    • Secure Cloud Storage Model
    Hashing files as a whole
    Hashing files separately
    Merkle Tree
    Digital Envelops / Commitment Schemes
    Online auction
    Coin Flip - Who's doing the dishes
    Forward-secure key rotation
    File Identifiers
    • Virus fingerprinting
    • Peer to peer file sharing
    • Data deduplication
    • Password hashing
    • Digital Signatures and hashing
    lecture 6
    Symmetric Key Cryptography
    • 2 approaches to solve key distribution
    Public key (assymetric cryptography)
    Terms
    Encryption
    Digital signatures
    Public key pairs and user identities
    Public-key infrastructure (PKI)
    Symmetric vs Asymmetric Crypto
    Public-key encryption
    Security
    Hybrid encryption
    Digital Signatures
    • Mac for digital signing
    Properties of Digital Signatures
    Asymmetric-key message authentication
    Public Key Certifications
    Distibution of public keys
    Trusting One's Public Key
    Certificates
    Certificate hierarchy
    X.509 certificates
    Key Agreement
    Number-Theoretic Facts
    Multiplicative inverses
    Multiplicative group
    Totient function Φ(n)
    Fermat's Little Theorem
    Euler's Theorem
    Computing Exponents
    Euclid's GCD algorithm
    Extended Euclidean algorithm
    Computing multiplicative inverse
    Powers
    RSA Algorithm
    Signing with RSA
    Security
    Issues
    Real-world usage
    Modular Powers
    Pseudo-primality testing
    ElGamal Encryption Scheme


    \ No newline at end of file diff --git a/notes.ctb_HTML/cs306.html b/notes.ctb_HTML/cs306.html index e4265d6..c37456f 100644 --- a/notes.ctb_HTML/cs306.html +++ b/notes.ctb_HTML/cs306.html @@ -142,5 +142,5 @@
  • homework
  • -

    cs306

    Logistics
    • The exam will take place during our class meeting time, that is, on Tuesday, October 17, at 10am.• Unless accommodations are to be provided - in this case, I'll contact you in a different message.

    • The exam will be with closed books and no use of electronic devises (cell phones, laptops, etc.) or other notes is allowed.
    • The exam will cover all materials that we have covered in class thus far.
    • The exam will be designed so that well-prepared students can finish it at most within an hour. However, you can take as much time as you need, but exams will be collected at the end of the class meeting time, i.e., at 12:30pm.
    Preparation
    • The exam will cover basic concepts (and typically at a high level) that we have studied in lectures, labs and homework HW#1.
    • The best way to prepare for the exam is to go through the (updated) posted lecture notes, the quizzes and your homework.
    • Most important topics for each one of Lectures 1 - 6 are as follows - but note that sometimes topics were covered in more than one lectures and that the exam will not necessarily cover only topics for the following list):
    • Lecture 1: Basic security concepts & terms
    • Lecture 2: One time pad & perfect secrecy
    • Lecture 3: Computational security, modes of operations
    • Lecture 4: Pseudorandomness, MACs
    • Lecture 5: Hash functions & applications
    • Lecture 6: Public-key encryption, signatures, key management
    +

    cs306


    Logistics
    • The exam will take place during our class meeting time, that is, on Tuesday, October 17, at 10am.• Unless accommodations are to be provided - in this case, I'll contact you in a different message.

    • The exam will be with closed books and no use of electronic devises (cell phones, laptops, etc.) or other notes is allowed.
    • The exam will cover all materials that we have covered in class thus far.
    • The exam will be designed so that well-prepared students can finish it at most within an hour. However, you can take as much time as you need, but exams will be collected at the end of the class meeting time, i.e., at 12:30pm.
    Preparation
    • The exam will cover basic concepts (and typically at a high level) that we have studied in lectures, labs and homework HW#1.
    • The best way to prepare for the exam is to go through the (updated) posted lecture notes, the quizzes and your homework.
    • Most important topics for each one of Lectures 1 - 6 are as follows - but note that sometimes topics were covered in more than one lectures and that the exam will not necessarily cover only topics for the following list):
    • Lecture 1: Basic security concepts & terms
    • Lecture 2: One time pad & perfect secrecy
    • Lecture 3: Computational security, modes of operations
    • Lecture 4: Pseudorandomness, MACs
    • Lecture 5: Hash functions & applications
    • Lecture 6: Public-key encryption, signatures, key management

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    cs306
    lectures
    lecture 1
    Definitions
    Examples of Controls
    Examples of threats
    Examples of vulnerability
    CIA triad
    Ways to neutralize threats or remove vulnerabilities
    lecture 2
    Definitions
    Why
    Symmetric-key encryption
    Kerckhoff's principle
    Applications of Symmetric Keys
    Attacks on symmetric encryption
    Brute Force
    Perfect correctness
    Perfect Security
    • Definition 1
    • Definition 2
    One time pad
    • Weaknesses
    Modern cryptography
    Symmetric encryption and Modern Cryptography example
    lecture 3
    Shannon's theorem
    Computational Security - Relax Perfectness
    • Definition
    Almost optimal security
    Alternative Approach
    Classical Ciphers
    Substituion cipher
    Caesar's cipher
    Shift Cipher
    Mono-alphabetic substituion cipher
    Vigenere cipher
    Stream Ciphers
    Block Ciphers
    Stream vs Block ciphers
    Perfect encryption of a block
    Primitive techniques for symmetric-key encryption
    Substitution boxes
    DES: Data Encryption Standard
    AES: Advanced Encryption System
    DES vs AES
    Block Cipher Modes
    ECB: Electronic Code Book
    CBC: Cipher Block Chaining
    lecture 4
    Possible Eavesdropping Attacks
    Perfect EAV-security
    Computational security
    Computational EAV-security
    CPA-security
    Pseudo-randomness
    Linear congruential generator
    Example
    Security
    PRG security
    PRG-based symmetric-key encryption scheme
    Modes of operation for stream ciphers
    Pseudorandom functions
    PRF Security
    PRF-based symmetric-key encryption scheme
    Modes of Operations for block ciphers
    ECB - electronic code book
    CBC - Cipher block chaining
    Chained CBC
    OFB - Output Feedback
    CTR - Counter Mode
    Additional Notes
    Security problems studied by modern cryptography
    Message Authentication
    Examples of attacks
    Integrity of communications / computations
    Symmetric-key message authentication
    Applications
    Symmetric-key message authentication code (MAC)
    Security of MACs
    MAC constructions
    Fixed-length MAC
    Domain extension for MACs
    CBC-MAC
    Authenticated encryption
    Secrecy vs Integrity
    Authenticated encryption constructions
    Encrypt-and-authenticate
    Authenticate-then-encrypt
    Encrypt-then-authenticate
    Application of Authenticated Encryption
    Hash Functions
    Collision resistance (CR)
    Security
    Merkle-Damgard transform
    Davies-Meyer Scheme
    lecture 5
    Strengthening computational EAV security
    Strengthening vs weakening security
    Hash Functions
    MD5 - Message Digest Algorithm
    SHA1 - Secure Hash Algorithm
    SHA2
    SHA3
    Attacks against cryptographic hashing
    Efficient MAC
    Insecure MAC based on hashing
    HMAC: Secure MAC based on hashing
    Message Digest
    Secure Cloud storage
    • Plain Model
    • Secure Cloud Storage Model
    Hashing files as a whole
    Hashing files separately
    Merkle Tree
    Digital Envelops / Commitment Schemes
    Online auction
    Coin Flip - Who's doing the dishes
    Forward-secure key rotation
    File Identifiers
    • Virus fingerprinting
    • Peer to peer file sharing
    • Data deduplication
    • Password hashing
    • Digital Signatures and hashing
    lecture 6
    Symmetric Key Cryptography
    • 2 approaches to solve key distribution
    Public key (assymetric cryptography)
    Terms
    Encryption
    Digital signatures
    Public key pairs and user identities
    Public-key infrastructure (PKI)
    Symmetric vs Asymmetric Crypto
    Public-key encryption
    Security
    Hybrid encryption
    Digital Signatures
    • Mac for digital signing
    Properties of Digital Signatures
    Asymmetric-key message authentication
    Public Key Certifications
    Distibution of public keys
    Trusting One's Public Key
    Certificates
    Certificate hierarchy
    X.509 certificates
    Key Agreement
    Number-Theoretic Facts
    Multiplicative inverses
    Multiplicative group
    Totient function Φ(n)
    Fermat's Little Theorem
    Euler's Theorem
    Computing Exponents
    Euclid's GCD algorithm
    Extended Euclidean algorithm
    Computing multiplicative inverse
    Powers
    RSA Algorithm
    Signing with RSA
    Security
    Issues
    Real-world usage
    Modular Powers
    Pseudo-primality testing
    ElGamal Encryption Scheme
    Notes
    Block Cipher Modes
    ECB
    ECB: Electronic Code Book
    CBC
    CBC: Cipher Block Chaining
    Chained CBC
    Chained CBC
    OFB
    OFB - Output Feedback
    CTR
    CTR - Counter Mode
    Stream Cipher Modes
    Encryption
    Symmetric vs Asymmetric Crypto
    symmetric
    Symmetric Key Cryptography
    • 2 approaches to solve key distribution
    One Time Pad
    • Weaknesses
    classical ciphers
    Subsitution Cipher
    Substituion cipher
    Mono-alphabetic substituion cipher
    Mono-alphabetic substituion cipher
    Caesar's Cipher
    Caesar's cipher
    Shift Cipher
    Shift Cipher
    Vigenere cipher
    Vigenere cipher
    Substitution Boxes
    Substitution boxes
    DES
    DES: Data Encryption Standard
    DES vs AES
    AES
    AES: Advanced Encryption System
    DES vs AES
    asymmetric
    Public-key encryption
    Security
    hybrid encryption
    Hybrid encryption
    algorithms
    El Gamal
    RSA
    RSA Algorithm
    Security
    Issues
    Real-world usage
    Pseudo randomness
    Pseudorandom functions
    Linear congruential generator
    Example
    Security
    Message Authentication
    MAC constructions
    Properties
    MAC
    CBC
    CBC-MAC
    Domain extension
    Domain extension for MACs
    Fixed Length
    Fixed-length MAC
    Hashing
    Efficient MAC
    Insecure
    Insecure MAC based on hashing
    HMAC
    HMAC: Secure MAC based on hashing
    Digital Signatures
    Digital Signatures
    • Mac for digital signing
    Properties of Digital Signatures
    Asymmetric-key message authentication
    Asymmetric-key message authentication
    RSA
    Signing with RSA
    Security
    Issues
    Real-world usage
    Authenticated encryption
    Authenticated encryption constructions
    Encrypt-and-authenticate
    Encrypt-and-authenticate
    Authenticate-then-encrypt
    Authenticate-then-encrypt
    Encrypt-then-authenticate
    Encrypt-then-authenticate
    Hashes
    Hash Functions
    Collision resistance (CR)
    Security
    Constructing
    Merkle-Damgard
    Merkle-Damgard transform
    Davies-Meyer
    Davies-Meyer Scheme
    Functions
    MD5
    MD5 - Message Digest Algorithm
    SHA1
    SHA1 - Secure Hash Algorithm
    SHA2
    SHA2
    SHA3
    SHA3
    Applications
    MAC
    Efficient MAC
    Insecure
    Insecure MAC based on hashing
    HMAC
    HMAC: Secure MAC based on hashing
    Cloud Storage
    Plain
    Secure
    • Secure Cloud Storage Model
    whole file
    Hashing files as a whole
    separate file
    Hashing files separately
    merkle tree
    Merkle Tree
    Digital Envelops / Commitment Schemes
    Digital Envelops / Commitment Schemes
    Online auction
    Coin Flip - Who's doing the dishes
    Forward-secure key rotation
    Forward-secure key rotation
    File Identifiers
    File Identifiers
    • Virus fingerprinting
    • Peer to peer file sharing
    • Data deduplication
    • Password hashing
    • Digital Signatures and hashing
    Attacks
    Types of Security
    Labs
    Lab 1
    Lab 2
    Lab 3
    Lab 4
    Lab 5
    Lab 6
    homework
    \ No newline at end of file diff --git a/notes.ctb_HTML/images/58-1.png b/notes.ctb_HTML/images/58-1.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9358ddfbc322cf91afbb708bd9c27fe1e95feb GIT binary patch literal 441728 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%0D~iuLBDj+=bHJS|++hZ#CF9#tV7&1k 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 z%0AdZ}0kQijys@ecZrCo@idq*;9jbOI*7@0lrJ*!VjPF z+ZR&-Aq~@Wm#TWUlM_Bj6)k9e@F%B;ng_BH-}tH@wUwB$|0o_*P^el7zM+6R$b@*QFo%6Cl79pV$SvbV#M*hc6%kyLz_@Z!;@@INUp zup)S1?UFk&{Z|&9%OGIXnHED;j3KDjT&SHTI)*%;NhhH&Td#Aq4X`llOBJ_L{aIPr z**B;2&d*T9*gNo_ZdDkhA_j#ZlOJDDbhn%R3N>hr7Q6KD^MJUyWZD;3N`dS76P*USH6jfs*fc9l49cKS zqk}VXp#X=yg9haohBoM<#1#~k5_Z+*1BKDbK>E^B-)NmpAsfAM{IaHbAwMNf|H03D z4NoX3#mOkTwN$KzXfCy^agBNl(eCtkK(#jqY~JD1uWx(=joAOd;5h0%5^vihwRN(Y zd+E3bAqws^mZ@V-R+0hABa81RovQ4s zJ(@;OQdEjxz7)cvng`a5pspuM8O}17edJ&tJ!}#NGG5O*iERqy1MK9w$~gmzs}z^Rv2GmW6ryKKppFBO{Tv+^5A`eI{b!O+^z1fxk)Og z2tw`NjOt7wr?1-qYCd!<>00Ow|uDPX&chCxViQIR2MVj`Xtt`&ebbG!3bwKa{H#y1J zT&cUd;iBXx*E8@F5^f~ZG38`zmkA3d*JGn``_D~Fwksl_vDCJ0VoD>9yu5rRPY zA(Kf2`hxWmUsL5_g|kpF-ji|(K0nu#aYdBXL>Ph&YIKkhRmSJ?{v!fa2!d1JU_iO5 zDh%G~nl+<>ZW}A^+1SnlH=QO|PS5vm8DnytwbpMleQ9vyuaNjJG%Fh%F2)S{nEQA7 z?03G(EGR-ouUiD~^!|_V$?1~UD)_tb!riG)GL?T$q45t!Q&7!|^$n@1kYRW)`~v>A zv_do%*n;U>ZiGQO!1*zcY3c{BdQ`Lh+mY(=CB9n=8^2vmyeVgqWQG#ry^ZX>(uIQO zeW%|S6nKBP#)^9_*bZjs-)0Wj<_hC)(TFrM!^GxS9{4 zn8DDe1@5R1el;&KnUt&!7^P}wmjfT-<1=Eh;SKkk2&)hH@W(GWpX{sJ9{B~JWZ+WM z;s^^|GGQ-ZQ5}zxCPEMoK#QMF7=NFcdCax3pwCTrBDtA#D2I z6Ar%VNs2`D3zR6{6Ce%%m>*9vdT%x_jfq8YO>9r>f2z@3MoKQzhws1S zP&f-o#L8MLp|6Vs26kQ!`}rbOXLa6k-w^#Qs~~OlUM0V65bJ;YWdnCzuOL5By{mAi zSYx}?V@rN5|3}lg$20x@|9?b{lsS~?fKjqiOwQ+q#hfSQkmEvHa!Qh8nnRjHne&hs zIhW(xIbn)SkqJ5Fu*zZ1a{gVP-|hDO+dpnxuj_gq9*@TzPx7~W23gotL*%`>*e=_f z?rT3-eT*@`L0PTHX#RQI934T1vUM0Cxqy~sNd~bdhQzsb01N3 zdre;8jY?ck$IViz>1TJ?5Iid8w63dRsCpY|HnW(|Y7PTQyw?mY&)JZ^t-e@on+${9 z1MXtCSmT77FHU@XTs!KE;mQ%7@KT-z68A17-^IKH;)H@tZ~qO+`*C|=Tvq^c?GXNq z#7}vJX(Qp01>WwNaM(%wR~ys*8+6#gJI^80q>migC8jWT0%;Z4n%5*Gi7<9(csv;3 zdD-29B0m0>H6c}=7E+R>waF@rZih@$k^~lpe#7wrwnxoQUtV=YEO%Nb#a~eXR$f%+FvMv%&}x7aI`= zg$l%ZSz2-+(1nash=(EG*SP-dXi^(TA8-h1M%I^kEEntkUR#qVLR18ZmUdUMeCUzA zxU0=J<>9LtJ^2q#eNq8FLtg;$cwtRQz0m3cn$vZi-Uu-fiZ4GwfV4e^<^{Gkr}gn>_jD_|W0nAGD)k?@oswij$Im^CsHo`PJJE z)lUQ67apB#LVtv7x3Yn$HrE?%=u-mFYV=-+g!Ykcm#)hyL^A}8cC-qOIDAyr$dQe$X{Vul17jE+Gi%?-)u8Qw7y41m78a1-e1fOiRs5MwE2C|oeX=gbqf*y+Ud~!l=5JD@2rsBP9iU`R`6_$?R`ARaM)cF4gRawYOgMF z&^5>bfi&{=%U|Olnm_r`Rm6=d8Jrv3-)FVVyU2`;k2Guy-@30zAl%0tT$#0P18PPD z1_;$suhzS(f!v<~RCxSTm>iErE76=kNS0xchN4jg5yYaRq?=Kq*Kb_vQI3GN9ywwH z6A>r%|KL44^+nB8$~%#r6mRt|8g~1n3x^rj)T9IYI?VCsgW+>_IpixRSLLr`piW>~ zn0}UL&q~Qy{188>05I&N5HKhB1)yX**L^3tvFINDVf0gec35dOJTUydzX;3>0}IRg z{uN|zPiRovPo*?I>I-lty?CRYDn*r~ieadd;Rb_#nA2C3-5LuC_#S0r9;dKR@Lb|W zjcSiU`D0>UbOEF9@)0m)u-0{gM@)ph6GTIAS|(L162rK1$jYqDO`;i7yQQ|_QxUuJ7{`tCzAgcFr3Wcva!I3U>wN`-4K~#Ygr4st# zM0~?~sglFP8e%jo2k6k1sqFX|aSl<>v0j;wr3i>)i5`@X#P_l7tDE&K=>mG3lyQ1saUZPJWWu73d(yiMXqoy}6g5*&*BpwJVmD@m&)-2gkor@b2i>6{wbI>k(2qmkcOXX; zglAlP`v`}{q0I)J~f-4&k^-h4*%LHg)3>maf=g? z{NW8XS7#St_d31rq*5ZyN-alfEGb z2%AGbHNXLJv7Vp5Pr%3au^sOzU*zka-`nFq=@2~BMlZs?6z_HClR`cW`t%slSar9Bjx?SkMqo#pYFIE5B+th5VpR{8= znR|Z0KFIU9?Cz-ASVQ~fPTHloh7tRnkDGDK(B8_>{nLvQY!j{V2Q$TEzEi6Qy9%N^ zIZ+Oe9!du?Om~NSwU}(2``0i0E3by<2H0B>aLdy=KkhSHcGOyS`cj(K97DC5m{r#y zRC(ItcdCxW8NJ14qMcmgR;?hiSO;a2xY{huO?r+>H+#kGP>$ndq7D=F`5ly5Qq;t6 z6z`V?A4_g>i_g!`8zuJH@S#`K{ppdg7iedqb4elA%If&=dX{ib^9{|D+cuBM97 zg~5$hb^8hm@%iQhcqAN*L6~}3LQ&F9(gGC!CgXMEQ?DV~{Aq`@m)Ix><}#+n1jHx!WW^gmU4)B^kzVq)+6cWg%&L2iOMX~Kxr!B*eB3mo z8>Zfilx+KYNmME~AWKv$>sZ?~#rQPn#9I-~Qx?2Zoa|!>& z8MUcN>JNh@qcI|-S5OE9Wh)~l38E1$BO3G zV1q5o`smc1S+p=75`A>+fg%S4rVU{=Ub}e#dLjyT%3K!;>bm#dXZol0z{wFA;D7X>oy* zyyhp@F%DM$jl8mZ(dLBL6xRR|8p_*2_T&Fr`OMP>#N21FmnUe*@Xz%3Q&aM%O1aLv zn8Q6F+9&&}KjX4*j8u!sYpl@z*Roy-P;>VPS_1QB6{?`~?Xu%ggUWXaH_j%nR$P4X z20rkcBC{H9_A2a+RE)Rsv7E>7>*4QK<8b*^&SV#BjBr1;1MVNUkjH&U;MH05UHz}R zgxM0y#29ctwTfPQTaAX&3cndp;yK;OX2h@e>Hzg9fDL|3NA!>vW>va(HRw!ddtc&h zaD^xoHi+FohW!o}BU|C2RGcf~F|d6-A_O{-GJqUS`s$x1Qx4y7RN-A7C-q}F;B1O3 z<9XajhFR^;h>mom3y(m>10|GpvKt9_OD&_xuhe_v&uS?iPxMRn&0+=&u0wMhrAqvS zX$Fr#!6oH#L77K+<{7e-gj(JD*(n<<@nO>blg*_&7y%;x_v*8p9PsdXhKi`TCH91i zf$XUQqz3TwLh<+Y;<(g_+e#zQAU2ranOpGOFCGcq9TWPrFA%!a95;55(fr^@spsy5+f#M@(Op{YS&{B} z3|pI<=|iu2pZb4V>U+hD*IWc3k6G0WoUBnQmaUTW?A zo7RU#b|{b7NGEsCxHf?hLJ~^SEz3LT_YseWmX_E;feR*HG`28r5ww0zjtzmOW0yoz z#*s&BETe*8OYcx7(M};asXP+XlnmN)Gu7;#?|G#6aJ(1< z>W$GMje)d2Nhn0iQ z*M_cs+uQ5e6M6it@hwyUa%Y~lI8oyiY-V{L&jWc?EQgUbk${k0+)1PN74@>*&aG-% z5h|n$NG5HcBCJHtm|@N{p#lJI5^Lk0288rZ6fsQKf7QvT!%%BHB&S~WXMc*z=ZGIA zH+KSe^sFDVR@EJ(XS<)B$jK|4D`TZ}pBFge{AC5bz89oun9PJDXm@#JO>}rrGOH79 zK6NEsxR}1E-xNNe9oT6WK<5WMEP`?&u*lMH@2_48JN{bZy_Q^sODjJbMWZ)N=-8zc z1WT_z;hS=;yFF`t7(!Z|a+?RiJ4Ca=b=kNJCX@+^4(T@5&B#2NjLP-a{rxHFgDt)S z!%y1W+$gHQ*e%YkOh6U@KF~sGv6?Le@|He^tdN%AIE~MDcc%2b7|O%oH4tzy=WryV z733z4eyIW&KiVe-HmEgakg$dWinkKPX%^9SCf)>o?rsK7FJXw zPqQJ+72zbQ|NXvkbdklnH8UzE2rga-bePotm?KB(pE8fe$Ge&tRL>Y$FFIv2`~@sm zu}BIFYCBN;NdPZePVb%BMy*Hl@YcHrjvzFtHpJgwDfqf}w69ZXX74F{DJuUW*5y9* z!T&yoqT+#jNhbn+Nvp6L*NrU*rJ0-ZBG;sZpc0VZ4I&@<)e~C-2|B~uN|k8|xWdnQ z@#g8wfOc(R52dp+_X&iNKq0gvrPy1wE>Nz4dEazs$aJU9VYNJ{W56@`kAKU0lF;pC zvO_2%QN*0IBN5gzW9->zGPcfot;%|{lNnk&D5X#xe>32lQpg-*#KE`UA>?m^jPfR) z_4rn&$Z}6gropZoLn7?phjHk`>i^~{E3eAbuaz{|5ktL70zYsg#5gj_LKj$jV}=gf zuR_hPQj_Z2v6t}jt)DfmE|!M#+Ku$MR_41`p>X=l`NhSogm6?0U=OCaoWL(>>P8pd z0womn3zTN3rA;Cxly(480{X36W%C^He*oURWs*PTKfGqP4rxyoB;&5qw_)lu-8-)w zOC&jAojK(hlHEWrcQX-nl8qa76?vf)nlR&IIcRBj3yd-EMtg@IgrP1H!{EX~F4osb zj1j@y7(VN=?C0{;9+M084|}X@BrEPrrZ}GC1e3G=B*Tfo8-zY|f8A{&po z;EZY0TAJy9p^%;@_qYtf=mGOEJSGU>*?|R>A+PPzrzQC#jL}uy&z3i zJtIJdFN^#Ut|F8t=ni!$-Jm}aP2V!oFRYU5ztiMKcC|KvvYi~MDIh)Y@C;-=;~h@F z)%feg^u~xx!{*Ie`|-7n7X3(+8^!;cr7IlG`avk$>bb5ld%Agcr5wlu2nYVPu86gpDJeOcSN7nK7wqtU(gh4 zUL|3%9VT` zyI9_`w6i7%=b}FDx3b}HV7d5|nJ(7s?ccW|VO++ri&9iOE!}8%&er`%*veQh^F`U5 z&Kg}c+}ql+!9Pp73%A6PBTsw#odbn|q#2N2;!c@SXsGVhUr==EdoO>eOVGi@YpIx` zi=`SouWoxP!gJn8<;IgL8>P*NWa;U~8Or5B0#=F%dSYmLJ%aq0Ir}1D+<$u!R^QTF zCspiI7aAtZPQ;PjqBRqRA!f{H)in>&+l^7f`bbD zdnNpW#`X`w{_oMj@okUz$IKn2Uwy35-)D5bTw+TIZR>5EPvYHSiq1KNB8c`|F$9PG zm6XtL>Bv$-S@ZU>!KSe&n2u400(-miDxLcJtFFl!LQI>kMlvHoU;_GQ_h15OG|$*p z8>o(n32^6?HsfD1z``S69niE%OsJA@BIOH&$(v~z>8(Gvjp3_cm}7OIn*ZS9Xecc2 z`tXr#X>oy;k*F{jR?7f;hJ-@EApxvccTS0)%Q=KNr$9kqm_aM$;czxHxn$$xd#Mu~ z9-u^YhKfM=!udY(y(&Q#<|X(a7hp$8KJ|(zj7Od0j_^HsTt>>I*X!@O3p)lx^WiV& z-RNt6II%C20U|z$XA#q~^IT^2xBn+nte;0=XjVjcqv?z~O;` zH?Lra+<2OIT~krprccGt|EC3jw08C%iEBLq(dTlWx?sOgw~UV@?Gta)`pN3ghD%vy<~sBz(Kru zds%BQn|^d-cPqvEOZuW!_;TUsXhoT;wIYuO`Wyz(PTL(z-_sN-G5W$f-?46KB!n&z zN+Z8>n(uz|rTAWxeF3{aoOXI_rIQu1X1Oz0BZ2 zMEJ9#0rn7GLS`0iC`be?We7xiC0#If?Q`$~U3+9@exXtZ1E`iJ(2m5N2Vro5mmQpg zHFg$*sRE}8zoqlrkX^LaV2B*$r1hKPF#%0bm?4!J=6sH2P}u) zF@Sd=3g&EmlH$wpIQ=kI-~4~<0LOI6d!|Ar-T^E0<&rLy4A*e$WF69!{Dz&wz(DKs zmR&O+c^R4iydoQYt+Slajeb+Icl6>=DnKAOm|-kQJdVIfqoc)ucd zXuiS2`=!QNvnWiO3))Nf)7N#RNSEsMl1$o5!^zB)G#*WgdVrj9pcv+(Ri+Tc8&~8p zQX#FhaM(#bqogZc9Kf-AfnOrRgRc5SNvCh!fJ?&LrB9`x%#HYr?8JFKRwZHEAZm2YvxQsK*I) z2hxS^m7p_GPVjW=%(v_iu{j*T*coHF~d$MzB; zKiUvT@2(z(F|dc&v3GAya~GI@p zjatn)t5hRpGjb*3s`n@C?>QAEif*s^lYR=IH3T;UzYp45%@s*k8YR0#px!Jdn?8g%?-JcBOjQ`01KD_>eWb3R277I_Rls?)zXOPR&0jpB5PB!m? z9WFJBk=H}q_w?+9M}_>}HqozB4hd=k(uz!OvhJiKsRO3o{%q!&YZPBkCy5`#;FyDw;a?n|Job8=u1qfC~M;F|6Tyum}oNkHiSE_V+!qA zIpdUo=It3U2SV&D=b>$l##KWM3>#UCtQwJ#UhEWM@q_l)<_%enD?0dGYEmaT7` z9N%q^8ueQ6Jor^EueF=!*~B_|*57l#VY4xC@7=-1TK7qZQ-m3n_>ex8!M*M5=2;H% z_?B^sG<4{Q(SY(xHB?Dne-r#ND&a?hO-!^ws4pu7T1LpC=tql?UI=!6rq%HiY*3~>H9hO!`4KT z3&{{z#fh)oZw$XRn!WAC%2ZHH^D;w2T|Ucvh4-k`(tMCGF?@;NNeNx#(N;W~qzLxw zV(b-k8Vr|^EQog9lHK62phYuI;f;_}6o0!EgVwrt^n0ajW~4$LSCuIghAEvd-J4e} z0?-~H^8pxvp0G;1$JDyu=ZW4T&aYGN=Jwyjcs)lk069ZetjpaiOHR=^hMxqBfza!| zTkF8N=#`DB`GEZnGZ>4I?aG^vw3nqvEYS;I-X{LmS)$8z!7vOfqW4QCBT%q4FlB=* z*PXjb8_v6zN9JzLTqU7O6{hB6qO^7$)ya!6&#hS6pNE~IG3 z`>{jgY7x+~BGrGgMolWma?tmRsbsv?!?q>Hoaev9+A**0(pp>>5vFG@M&v`gm{UUc z0gNPMdNzKS!8+hXOk2Czc@NE`6p)zTU+6)pHz@HT(=5;ZuRZXoqpZNmDKM=R-FkZ+ zK^g#mI{35A<%ApEKb|zjp^{ymqCUa{gdVi)ZNSk3@(|g$-0H)K=`_>k!z5n?Kcp>`Nmf@4<*hOiGc3AK^jzK?8XnjrZiy)jp%qO65sjjv+p1QBt zM!Z;B)pz(B$+5~r@t55oXdvE9kW^S=G_}RX{)|--?~_4m$HPYUSDI=y_I@bNhF?D% z7RKhoID39y{9@jhgqv9R2-Gh*L$HZ8;ciu9(VU>D_Gemw8=D912Rrcx)^#nxpL=)P z|J+JxUSf@JG<812VGp~Ih67o~*@qxuzRk0mS3RvH!H#w!@q&NsfS$P=Efy6#7zO)J z5XS!TT=+An$9R&Td#rKuwCcBd6jqaS>jEXU#!o;ZLN=Bdz)o3W?`K8#*3-E=71=D^qvo4`eSnc>T|G1-k zct>)Yqv`2|dw94TR2hwNH-=%81a;0ln%sIe?mVYJ7gp`rq}lh4PoT^;rhZm{kL7cr{|MS~~K1Xw2% z`(W(hP*lyrVMI8a8tc{0Wl81OCX4(jdE~?R_vgW)rT1rWYi0Ik{+bW-n(33z@pjE0 zAk2`R;t=oMKZLTt*78Oc=O6!HC6`)ux&%XrvWPIL{p;i5<8vb-{*#`KEB)TfAeQ69 zxBGF~t83YN5&N8jw^xT9f(Hq_@qVl*jV-RVB`d*0;?r3^dT}RdcNDWV)(f?kh!@nC zdpw`?zp#JU^IYJO@Ay&Cho8?wKLixSDu8%T3$i6gJKPvw0mnZ93f?y)NhY32 zslK9-Kz=2-ve;yJ_!T-Pl_Q(+>na^WWJCWwapB52mnznddbb3Jn}*|^SOf3-a3}4F zQACDJ_qi!?S{UfWND5d2ofGrP<}~^a#T*U!ppwm0(LNLTl0OE;PU@Tf2JeZuLx#MD zw+0@8j76!ZfVSji<>Ei#PQD5G!smRiRAQ#zh(1AZV5Ho~OHfcm7o45QA=<8K z6YA`FpEKW^5IUsVh*ktN56L@Rmi9y0cA69YmG@BVx#uClO9t^0d3VU-Bq2aoCT zsGkX_8XOI#1kH-g|6mX`MCxWUe&+zhB%oC;fkVi?g4*<&AZ( zc+Uo5?YU{K4l%V31`kGe#{35?Z&61++gO~Oc`2=*{|D3O2;^Pi9YG@ER=G#0mC~11 zD6%KfA0UkS98ij&_1!Yp8CGplK;aFDkVam`#vG0m(ds}kqBe^93Wd#Fg*=75Lfb*l z3%&(9ZXM`Z8nT0EjxALPFoz<@=|ou6TYfZvj+;a7rXNo4ZkZ(1+OJ0*@)F%E9{I`} zGVq9pjZK*;sW9|e)aGX*PqE1*y3`>KINudw<;_by0r&E9pr~yq-|`dY7w(BrKGSR& zpW^C#xEf0iS@~smGh=^@4RR)QZA!!n*5{{@Bae|P=FaI-Q;XBUHW9_Uf^ z4WsYQn}Vm{j9^T}VR{6weXM}nuGv2472RJtUsgca!XXeB+sgO>G3S2CpOZLV3m(Lz zs;BNXS#Dsq67|u3jxEOt4g;UFdT;j|FS_xRzN~?F9STGIpypX3e7KFXmhpr+Tw`3< z81BnFgQvV#=8<6X;DNNyA0@Yt^hJ&aJ$F@th+f*e8>7zKdMMlpE(@XxJ#4gL&PIu? z;=TRf`9=Rc%y;L|CYd93LvECJLIaYQLEcz92tKH_>qJ&E0$4ynP7)wl5Mq3vLL$A5 zBqN|7q9D+cYPm#rUcf})gXA>NRjR9%I&pA}?EoY>8hP;$;w^B)T*rQL(iUm`%!rc1 z3JVR`{dmwD5GW;=9$pm*M1%a=L4G;8lBVtZ!B6#eLPdE;!X zR@7?XsUzG7M{nA(J=fO%8Ncy)&V^MaxO(+XctL|4?!R^w{x$_f@Z@ZmN#)*_9I1s_|>RO@a?aX zRn&Kv>ah|&b|a{GH12QX=9mR7PUP^frtI%lf-Xx>QF$OmowWCfQ|Pu-X=XLKPrVn- zfj9aeY1*2FCZS`R7lNW!hwk^6A<)T8SWXdv_7=D8SohsV0z&)miyXFa^<;+_$VmLQ z19j@lFD$B=!+Da-vCyY*a?Nx9cv-Wq@Xg$;3L|z%?w7lUNb@OO*<@>1(tCz8x~l?; zvT+-!xm*me4oxX?rz7d7)G~UuoxB(`E+P_wdRK_wZORAd+|yx@9Qj_ryxG)zd_ZO8 zABb)uXfVnFj^kp*`iFwXCB5frw0>hk^g-xRHoj?C z+>zGlPe*we#o+ZOCUncR%u{6omX%|fS^ino$-d1E4H+9$zA%{2faSpv>UWjvNJGti zn+(&CUsE0=ZHqi^|H18bu@q?NRA}ooWxTSukYBkN*SKhB7iL&eFXkNEuL$!q4~i* z4%s*hlGxSHa2HDKls*@-8+SVMkwS)XhD#dEr`m=Kp)4b^^e8IGz^x8f%ua|;6~l&Al}P#7Egtyl32 zEnn3Xj4dr~-PpvQ02tJEbIHB%Wm%A4hk*)Fu9r!2wv9K>1z(1I*uZBmO}L%{waUwx z?wM=#-}xK^1Jy98->VuL<}!7{h-8W{?JX+ZJnNq}pZ4izs4FXAj%=W6i#J|+dQ}9O zOLPoB`_EfF+)SGb-B8oJLh)8KPF&rWC*CWq{!?63!w};jtu_p99b-n%q-pgYB|U%WzD@K8_{fmT$#7m&zP2km z;+rH#ugd98M5OGv&0BAF?bR)H_H*CnHC$gh&ryy%2wrwj=mnaTy=!i`{`XLmUu>O6j`udp%+6QbuRo*}yJ~W|ms>l$z&%liNaezC8=I zn(Hs#eft&=VNP8@=^CgBhq zbN8{~iPndq-dMXOk}nX^T+L9JQkHVr7}g+}+Y92bVRti)FYZ}ioeGyp>8?*J1o<^D z&F{r#R!PDK0sHjPm;ecZ)}1)>6dp{1n+;Z5S};j|!M7|eK|$fsa4H2IU0;ZJBdB(- z^jND7ao}EB_ZcT$;bWR+Sdu({-P3adMkIY)EC)#L9}5T2w8g54))xBMNlzBd21-KA3rOs4cFR>LJ zg&x3CQZT+)H)KuNUX&+dFn{Ru_Y=Wk|Ke&}_P~PTT0VdFRZOBra2M53 z(_1=aYhyzZVnqY*?sSrMJ{hykP-j%n0DOIg@H@{hgyV4`ZUMO`wH- zD{N?+)1_-0^cuxsTczw?aa{-yvI?Q!cFDrSzcXPkr!@z|Hjw zp<4ven0(9Xs1)jEzjT+yObXteA2p;kQTt0G1SGxIufGppeTUnLh zOezL>nNMX+j!dJ$bK`FdmQcJ{V~>Vw(4vaI?0}Kj1_-3HdC`{Dxz_l@nN)JK*i|t@ zQi10g2=N8!%y1c3-w$5U98GcJyUH*KPSBEm;#_AA9p4(Tutr7L{xq{`HwlzkI(uxV@3p z^rCBcVsXCYby)hTzhf`qc=Wn)?UiEHUh6@B7i$sp-9Zo|@mX*5dl<~E03okU1fE>C zfO}^r|puciZ;kf|G$E*M8lU%xuKp-(EpYGwZYcely+C7lNmr(hLo6l)D9Ku zKoI$fV%P58X)SpDq-Jqgy?3tuZxpKgyaWeKI5NbKBd1Uah_GJt-H`bih--3VL<0=~pu);0OFxo^|JqgCf9)r#N#9e9i;3Z0jiF@*dW)#y;Uh3$m< z*Z7A_6q*M963AWyZNw4q;J*0el#l#Ib0n$=!H!LdTi>0wRy?kwk&&dA_K1g;x>e$I z-_|`>a-rnx_HP|W5{lMcWJH^RJK^sqyTNm77JxjGmvj{)Oii_7Rw*Q=%YO8;JBsA{ zu()^yZ{&W$`E3_Jge=FwCPd+rGZH|wTfN}(y5b>=_9A3*A-a7ukaR0cONPpl(^nny zXCx#S_u{UiLs`AkQ&b%)C47y&di{xp@@?g}ru8Z+tC zo#Y;7Eb1m9cTHRN5rYq-GG%=A2uHs%n=X@wSs~pm==}Ql@jH@y;X^^QO`Sw5CXnQi z3=qZj9APs)f0{POB(!fYVWXSpK+;U2(TaN?R6?{d-rlP$R^^6JNZPHC#oXrn?Ps-( zTPdOI6w$ry6<^PQg%|ez-G8_}wnxUddI#TL*IIv{;vjXC72KU2bgIjU_YFn5(S7f)v|OZ5I*8V~vRBJ148w^A>*f|{$VtF5G6f%EYF zkKy6^wLZg^#jf(5FK$}4w-i3!B@hBB7!K&QPjY`Uea9q-WCrCuj2-fZe4YcA_Pe3X z-IZoDNAagec+CpCv7@oZI$GxvUqU|!_f~{6zS|a*K82T7yI3nT>zfP6JbMYufSc2F zmDV~GLnR6VYwrj$kvcjibL$eljv>kZh3V^YWv}@{X5eVI=8+5I8gHyP%&n@Sy%A~LBweKiSPLTBy-#t`Xg{R8-{}JS z8p+?^G})yCjwea>I(dxd31a>$x`eEJm__O{80E}K?1RIYBy-gwuBlLH4qX*Yl4dZM z=+>4u>2*LEd|WTf^YX0C>D*F9ZV8IjJLzjuAC!5ZPJ~z(4*P9g12VtBnz4S$Rg`g< zEgVkr!(%(US8oKdSgb>@4GQ7-WEb*FCwStIRe7Qf6C!q^5d5QphTp3Z?7G5z8LH)L zVpMhiM~}kIG}hpW5>OZ8Q3&Q94sm#nhxrC@`$TsS?y&5fuZ;F>H@lU(*^SSQjqerf zZ1Rc!5QB$Z=F}-bp|3fr9eY`?C#H*t;fWCpfSs3;$m7wU=i&%BSvaGNle~sKBcReH zwgK%#C-;wPC(=gOW^Nb%ZJ2KwAE_@-YTYg}!7E{H-sk~x^?-_B(MI9$PVHa=<6vvg zw~Ch+cS-Dye~l?h+&Q`xF7clk4)~Bbj>pF@TP~V$w?aQmf-ndqDd|;#yGSGg09yq= z;kzKO^C&4Nkd`+20Ny3TS_J59)bUj(^S0W(i)KZe)NjYMC(+3ihTrG&M-d^*LZQnA zTFd>~`nk4D>FdYA!f6U*gosDpyYx}J`5N_Rz>TG8?|U8XBbj-SE8)RyNZFA&+#!{tjvB zMRt1`dmS z1HyM@k2h5(BP1YKI0|pXjlUYH-;WAe*V-A9*~=W?UMoK+H9fTViT9x3pw0APQD%>3 zh=D>{w&}$nyP;)^HwzcT)Y`2)STEnpP~#TU+V;)fuU@~kzc{|*d9cB1j6sG>cZM#O zb8(mBV#a^n$>EpF|4m7;@o?=y&hXgv3$lkFCG<=#L&$x@PZf;YWF4<$AN*pD2eLE} zGXx=Zgo37x{=&73X8l_If8ORbwuHVtwb>c969P|m(G-cdjDP4GxcY0qBfG{U{K-Z2 z%iUFtd({AlnSC%kzF!?5IzLq~Rd~97BDi$6)N^=hS(%ipyEgFi5X|{^{l>#|*n7!z zUwW@YFxo<+!M}_n1Mh9O|@?jQu0K6hq9Nu{yjFwixyX<_y2*VP05!Rl$oPe+>7l$sr{P z70L7TYt2GYLC+W4&vi$$w?q%V8A3j^tQl$@XgJ#?U*wFyDGPC~)O)D7(cl8V9;!bI z9=stR9QJkjvATFOMyjQy#S^$|9Vwimar=3;na;X2`bI;l&oO5l_8vXo0{|3ayzOq$ z5@0dWu@CrO9#u6Kz|HTpo_a>wfhkYURpe8uZc-s~x)*zDs1)#Xa|=z6{&Zg0y~vyl zX7yp#e}XE@Q_E5j99Ynf$a^(}4?Ij1r#CtlFp&B^;00cTiN_;)~t=#Zf4sGOFd}<0OLHy+V zX&==rXMIlWXeg5%MJ&4Q-I{WP$p4QGjSp@UlcOsO{d%Z+4T;01L&a6`Ne_~%#mN_` z_7Y?j78O?S(d3I(qBnGQM&&P%$({Y?&~Ngkt7Q!2pnC%homv$!bfc!9?Ij;J>VbaU^s8POnf!it>sgEvZ3zBRmIw5eHx?$viOKN#8U@B5 za26Vx4Z;3^4ZHNG6@JI+bi~}A&6R-B8h2F%;}M0+dNy~s5T_dWOvyNqUEVphyuV+T zY<#h>OF%g&iPxhagyx9Zjj&Tys3CBs`^s3Yv4C?GeQngNGz>KFhsbEGdpbkqQc}^` zDU}pKJW}Q5%FfIS@C$oBSD&{s!CEtiS1ww(hdFGc{nfymq)yq69gr_6ntZb zd&&dAJ>LNi*C=Z(H)>;-g*qEAUL#a>x&ZSrpGxc3InTH=xa|!*eA#V835{MBjo-a9X7VSih!Y#PHqf z28GTs-Ey{onm$lZB~O!eNR0b*=fN6qUU+#oN9qS6MX7g;MW3+hVBfA+mI)&D6d&4| zY3*Ff-tGxKs1-3e_|4jHlL?;J+AVu9QggfO>n3A3-<+xqILwRpe>aR-6`wv4^g9Yc zG zFArLgkdI2ptW;=jGQO^RbIyIP&Qa_5syr8~`T@lk@h{|ertkWkB2gQPMEQBRl?=pg zfMD?qoC)Hj6oOcO{q2yn_(`JQ)&7U~ANJRr6;C>mm*l>$7%del5o8yvEVF;SHuUwajLY`KjzOw(}Rbf&G^!})PHJy z*LS^go(iB=zEfE+8=b%^ejr!Hq~FYwCvGg3eG7vlOlzlqX)_;SzE;sVT^OL40-o=}K{DWW)k(wDC(k zFE6pL%w4!I1dcN*9vUu-MO^8o_|ho_f(ZF%^8N;2Z5i30G|>M48!3?`^84snQZq4;jAn?XqJi zXwE%9E?8>Hd0O7-%gUY&HIRQ3T!oXGZm|QgkFMw!DhnYaZ{tR)fI;U@<|@+6haLT= zY;>T{2dO+gY&d23xwbcplUZ7QTbBKM!1ce2uW*F<2S2Ng3Bb?b6GvC2TaPHNKevFs zbk?Oa1F)z8uA&-u?6FM9_o0&wWms%w>1{A_!*c2O*&Ja#jUqD{dgd+0) z$jcmMq6t(ohZ%y#ucNhwZ2v6n$GvA;`Br(SjHMd5e(3)(_3rUZ_kaBV6jvi4w{FUa$A-{d_&2kH`Hn7`~RbB_rd>dUM8|)uGav<=TcnFDcIdJ{D*4 zX*Sz7R{432?8{*_2kq(wk~u2n28Z+7xfjYE(8*0343QioUbrlqL(fa{el7#M4|{;m z@p#7k0!DVx^n|7nQ%njp7%@#dyZXXp`2`c&`!a0QaPark(E8M!h2)L5m)GAet*-`c z^i79<$&cXU+HiV&V`F2O>CmDyVQ3!b2|mk-=DOm-AQ$pZ{H^p9Y>^*=vqyYe#KU>A zlLzDxT|GxBaHfW*Jf@@ic3W2k#pIVDn9NBq5`SUQv@osMb9D_3eZo)Cnz@>|R42^{ zeD{a#gCViH^n3bhHvg(G9S@%}30a!#OqT>(3UQdTt$nvMN_k!)MA(bne4T(4|6p(S z?TnE9Zbc|%s4Iaquw6k8r2@F#pMiS{$~TGO@Fd4<*2 zu0KFz`Royskc+Ru_FC`SQnDK@UGk-`TbGTfZFr$vTYQ9lZyJF)H(7L&Uw2+}v@YE; z3-Rg{n|Z>H)mEbQUs0*KroWy2MT`RpF|#ls>@~UkMk;151?!?WCa4DfjA>TEfl_(S zJZr9BbPTYC#~?UruIw!mpr>PEKMZe1+{)l@xx?uu;>5YkQxj}Sz`u}0=eu>)itFPRXOJxR}htCfx9(*WA_=q%&Cw1%c?Fq8tqUQ~ibSEwR zjZ2EEh47t_X3n>0_74y#R1l;B$(08mIvclHDTzD5H8zL4$ocNahTpd)z*CiAQ0~VS z#J}@XlvnT$meTIJ<1k1rwu+KRu04M$W5C-;VDJt{-hK7PzeHKdU&;?Zk?(-%Yx>DZ z#8L6TK6ztB$-MV;1mdakxAhUJXSXV_TW@hMQng6rQZX)ZyDtcihw;Wd%rB zNlBVAGWQ>XrPvo1gPV6wm4)5!yEIfOsmY8#jFM4?;roj@y{o{91L)kA`F}H$$a{ef z$R?Mdsr}pNIQ8p-Zf0P2PhxoMe>Fveq0>cFt0PmaOwZ$y5YbS~3Xf! zeppOE{Kv7^Z)VkZvja4Fn)ab*R^U$N=(K36%Ihp4{#ryu!vn38%vWrvc;l#k=HnrQHuXLI%C@wA_V|>r2X_;Y&{apR1#&1!KuKekE(#^PZ&!2 z7R~B9CXfLo4+WGp?&c8(&6# zY>=|nU0qE!0!%h$$1U)aBfi#9-*@totW*m|ks!I-s=7y&oN;2OW^R(m1?&ez)D9(R9k?=ym z`&bxUusDm4p@^K|H%~gj?LLH-Fb~pAS58KVBbGgqhwaHmroHp1Kkk1iBJVkK+(!PQ z_fwnVQ8wTH{$az@);c%Kg4X!MCCKJ@b1LHkr29%$rrN6~d>A z%F!k$CiYuVM*QId>0V2D)V<4^$#`GX#EpWW`flA%M+4Y>Wp;D}a;ESyd?)@}-ptM% zNh=^lQ!)z9%g<8b+c1Aj*A#m)q^hpLx!qo09x6U$kMX9$d__Fr4nuz0TzEt6C_|6( zHx%YSjQT_~?A&U4NICUJBIN%D1M_d-WCUqTPqS2@TBi ziZgNtBg!)6)Y<48f4(i2*vJc)my^&1T;}9MLYc==wX;ni*JeEk_!x;}xg$9Kk(Y^+m>3Np25Chx1{5sIj?~3S( zJ0qq7q2I9sij9#m^|jklE2kn|<~-4`$6uhWkMek+**sRPY~x$*Aha@dT+5!Y@599QjOH-N^r-G)AfC~`FBnFp z`D1T#_S*B)sE**tWM@g=o90mQ|9H97@J1O+2>738Cs>M*H^)6zKty@CMV|Opw8N<< zBziJ%6AX0&1jU}%K3aB^&s+<4E!kw^1OpH|=r;oS+{aeRU6}0W5>Q3eU6#$6vlSJ> z*#ZOcnPBcSWzBP#b1;7^n2ZFy4@G}nR+PQ+Sv(lLcm{l?YUSDS;}J`Ru4~>>n(Wn{ z%WFL)8xtiF<;PcMmuEv8#i5NqBag3sP+0pX>DB2~Mw7kVZBflJGSwIdI;whnwaf4F zynOEX)B!oBpPFQIkkps@$5?X|$qLoXv}tuPzv39qIfYXpmll02r_=>%!@+qWc`{&bE98u7$7cSn)O3n~`V9*3cc>BtP?Ib~7C!JV@v^LjCC>|Lh-7X5&pC%^5AyvI7dj z2R0$xy#w21f&_V>mS2cNv>w4n4%axOL|TXV1z!=#%ZQtFm|%+wtGx_PQ?3zCnShs| za%bo91U%vLBz3>XfRHNs#=U+HkbC3B;1;l%e&W1r`t?^i2YwG{sz4J-xaZvSN6?XQ zY^K$gFV+NAGgA-R5JmEbv_R0Qd4Em{Q(sl}lIo9{@Cu3hF!q9@UNaE>4rzgjxNp5e zg-7K9$tE#wC?3{8Hp2Pe+eL+luOC`R_QNinzIRPS`PsV%P zeACy=9Zq#K-%s<~kyhPw`NZeK5NAD)=PKUmhX|AU+f8Ho+QS>gj7S6`@npLUK1N`G zsw&MmV}G`;p*r~9y_V`g=T!GVkS$iXc-*z2$klCSAl%tbfb+bqCqKAFebacwv?J!m zfTul)(H919(h+W|6=jH+Wy9Zn4X}Jolp&kLt!DaFW?Nl=A^B2?6iLm{)T{6MZ#CJ{ z_~#Y^eg4xRpY*(>w(@|e(&0@QlLVL99y%47Yz zE7F#!Bz6jvRYdWlS5^?CjE%oU8|Gizs%RmFzS@0@aNS{> zN)l>$m?p0bC$0YceT#F(&`{F95NN=4jwU*iyjKpudd?t7N5`eDpD|apPP=fdvX{Pl zDn!4#R_Zrv*f?kS2|h%nw9jO3{4m+L>AG;(Wd1#6z-4eikHZ_Z8*QKQtq^V>^$n)Z z`)+)gFXM&uuDqo>)CUc&oY%t&JN0>-U7+>z4vF^kT-ghG7jcD|d41_|)&}yUW$mLn z09*X+ZkgcfqsFAJG)q0orI|nj0_vTgxc)MN>=0dQ2mcdu5rdny&;~m+E3VYCu;h-9 z%V0ed-%`9dxJ%Rgqy5~hHXlJ}+D-<$AYwCzz@`_dj$`-pZ8JKCn(A)z#Fs|I9sIJ%5jS< zdKZbU%()s$iK4gjSr1qu*D};-sd&16ZqSf3f1=~m^r0$WffgHT6^EYg2%xZA*u(hy z)`A3!k)}$E6#&q?>{!ZMNRgKo@pe44$;}_VsC7&~VtqAO1kxpLxX=+z`b6@wn>nWU zGBpPDNA-k#}e6F-?N~piLfm1OOYtRv_&88wAU#V7(Lol0P*NsDX! zF5xf*{(`nL!keLxjgjx)>#R-&PpgtBqMI#Zv6!9!TJFfE3gHulCor~mgs9j8gW)J% zxmaCXxR^7&?3E6Ki&uS(lUSC@wEwn!NbYg<$o_l=e9i`9ky46MI;T`s(_0Z{y5z#(HS?4 zGf&n(sjt1;7*l`u)AAb^9=1BFKE#{q&@+i`S+%ai5mkT=Y%yiyl z^c$b^UOPz!qB-gS93@O2HmlDdG5pY^nCXTU7tFbf%`(T)+eTY(owzfh3%AoJI(BlQTbCs`NACV=ieqoCu!za&8R=y<$N_L7&FL0s;(= zck?LN^Q7CoR7uSVfnw>E^!-Zv2Q0~)>d=|8Jt3QZu7^%SsuJj3@0vcUwy~`Nh=|Rs9nfa?$iGl< zbFmZrx6(P(cn_~hjbQ~Gy8$-rmlLV}i?dd6RC3tTEShbuX&oCUM30}>i?Jo(z}YZ5 znqz!h9qiZZ5qEb1pE=5G6BF#$lPAIr_9d2rM}&nvq}lX;_v;&(Yhb@3cl3@HFLW_k zsnnf#qlk^Q^73+u2#y-u!oMfFtJ=D>q>37AZcF_mu50<{J$>dS%&tvqjSoLiNS&@m zjSUUn72)@czUFlRjyx+MN*cRtnsGDB3Y7;IM}e!Pkl2irMGN}>*&Q`xcc@*VSI?da z<+kXHPXF!hD`Z)9SM4d$J}&IgWn-!`{@a{zZh6IqQ6cE znXaUMB3f{mc2}YoCccy3<v=Ah61OjFMOJ1 z7Ii0VEUs21h#(s!k0VOLRICk}XTo*-)^$_7D7tqgE`GJ{KM0Mv=p zik@EZ#2)NVK>l09A(GL|;fJUL^k3roAVEkcG9&LICXQ)rZ1kPK*Sc$QuhbW_{q%kD z@3cfr;?!cTcW&4MzkFq73*pw9T@3bEThX4i)uk0efuyi74Z_GIj;r1ADM|dW`$2`! zM{<)W=fKl?k) zzV{PuQM{J5cGrRH@a6mWb_cxPN4 zUDkBq(S(!cv7a92k7Ce-(tRgrBO6N(xpssr^^ZV4ix+%krEz1$1OVvPIvOU_e_NRR zo(QU2iUb|U#u+{1QlCO)_pHODb`TY#9~j-;!*v#b^eovoirC*D?hZ@_w&T>d`yk&< z>Q3f)^=n6&DrT16>W#(a|fnG`Kzv;W$(lGcNN3muO zx0+n3PK$Bw4s_o5{rdy;7z~a|rCMT&B{kY@>$e++;=1d4?3Z=66Jozjc&+#tXS%;v zPjT^QIe=vZJ5In{P6-tC`P56RXd2 zn0d^aV#f(wUSPzA&W}H)jZhwyCQnfNpD%_N-df%PpUUJKOP>ufQp*6j_gV4p2Es36 zRHL+2z<6LY^aqUazI<)aAX<6ocf1}5LqGC};pfp#9IYR9stdZ8Pp)liYa?!EC_fnP z2!Fz~qo-5mgm)yu`I{egZU3JZfEN2v{0j^wKl8vjNLOZEqi^@5ZA(5W$P0!D2fmCp zHTfVPB)pp1ZrpR>LasgG%D0_(sjT{$?<4Dp2n62FA>DZ*&nv4D1mJ>3uAm^c%As{; zVj>+Pc9Js#L^Td1b`t%=|2D7oxI7H)Nn#v@%pb{TTe~WHAM>me*!m09_w8FQF7a23 z1zA~)th^m4-PGLN!RZAdQqwmyfTq8XBu_XsfBUy=PEZgNao5kUnldpEG*sJA^Tp|{ zvgBzF*A6pq_ZTYhtFDFxZfI~2j}cb)AJ41MDqyZ2yV4j|wJxuM>bWgRx9APxr~Q99 zVYA64w5yVvdfTmIN^gqV%i0;GJc%ZX`N8wfXCk??Qvf$L$3%Up_XLug91s4}#Rs{{ z(7l;2%{uWEk%6b;$K9i>+NwGxtM|_gCx4)#r&6hIoRa8le9Yl%(WL}3-`7D{MK6{- zRG2f$%yjjA8#EZaMKx<`;ne>gAMvCu`8^pv+&2|REv7hbN`T@~{4~uR=b>??qSr-0 z7_fE;n?EPITRU)z@n@{SLHxO|x!SJZ@J=Qt=?QE0(>VLoE>$A=fyO9nlfHzR(9*{% z9<0ur)E@=WIBG$J_lsF3ow&^G%mZxW*OR)I`8!Y_bTbp4XI0?T>B9%)F{x?pv9chA z{4(Z~J^7NXY_Nn=nG30i#Q<+Pl^+B+#azohb(MlGcVPRQ?*;q0aV|s&)A}2wWLSQT z((`0erPrw%uiS+E(NakW=hMJIeZa!(mraS0usNenka;Myv^jE0&9;+0xVi^PAbXY3VWJjA^SAX>wu$(Dk?+Z z!4Kbmo!YQE?uR7jB$WGPi7C$dDwJL+6l->EN)Qqn94sXr79;aI^l;U%lWFj`lh;}Q zeL54d?%pW+q_1qoqd3AxX1^#Y)+>m3Qox@hnfNyQFYz+`o;rQ(s0!>KzR(N+7kkk` zG|#v=OlG$0{;rbnsX}OSO@Gt<(jRY(isu*%uCs-#5>h(4Bi6*^S=!H(Ez3ED z0akj)#9w~iL%zFmaej4aj@iAmu9mnA%lAsp+acBU^}MD7tho5N5l%AN5Mr}yKovnXWR`R5ztegvtmO21Nw1zC;N9@_d$ zcaE6{!He8c<5TkyYU!Top>n#?lanwxm6e?jg9L!|4`N6l@|vwzkFGX7jkOq_zGDoZ zP*HPC6>fd#Lxe@_Zeyp2ltSj`3d-JHf8*b>2vN#&%}X-M_Nj3iawwbD(W=7BErbGA zTUn8GYZKTS?gX=5#rsehvkNCKN(BwOe%@6GCw@4`3b<2`cs{+-k@hZn3n#GqbX#2@ zO~ou^WhzKtj82tjQ_}s^{#umqc$7*`hF#LLn=Q;FiZ>*{vIl%Fz_G$jD5ynwROiRH zjdU=FC@tE<9vc|}UOC7+;}3vr+{!oG4tTvcz}=b}5HQ7Zt+XUlD&w|(q;lp)mR33= z5ltT~=lZ|qF=qv$>HSU1UqNB7BachH@wA^eaJmh5jd*}DTD2+dgvRFm0td|1Lr?v}X|$>OY;m=uhT>ceUOL$} zA?vF$P|eUZDHfy_%?vCKZiWfy0X(k^H>4(NPPZ^`MyQAnTG@-DV{NbA$xIT~OdG0) z-7WU2Pyp;=JbdgSvz2#hqN%S&!44cu)!SijKyPOY8&tLkRFspPlz-^TQR&8_LMV2B zG6W)Hdavu7?j>v%?+rzJ9*1$=BfFgL{PGT7>AtLu6aONaEL=;riJrFj%)!WYIn;u~ALrp@C}8%98?qD>NE8{VqhgE6^W?DdQH)DL;B zd|+S*lk=?w5^>FXOGGK|OlWuce3P~RE_}x{vfZ5O15grn=nJBu?SFW89plL}+yz)Z@v&QzeGHr_Jv}O6x zwhs!z+RDLj$5;c2ReBer=@y4N_$?1B%F9SWTxV@X`4g&52TcCNNQjDB5TU8+i1oAk zT^cI(sa(_QY=BvwKl;i_R+9}z|4UlRl>YNtlSKgnSwZH!Q%u8jToIFKDfxwvXD|++$(iEbYKg ztACT+b^(KxeT07oEl_6igjX4oBjSIvO}_^32@Bg;6XSpSA@gp0Br4$t!^N4q!+-C9 zXXf)Laixp^HuX%SEw}+e3`#FHcd%Ce8CT9&ehm)$L^~kk+Ph8h$vZPlf&~O&qe?w; z&F>>UnLSTE_$daHp zXt>E^V;;}a0y-y&_wRhdQ$RLs+I9+AnmSzG}(@;Igc#oM{2=(Lu^|85Tu>{nZ zlPrJ6d-OGv<3geU2OVu;U&kEee|wLeU=@PsJw?)w=!Vu(e+>OulKX%i9xgVL&IZLy zk3lE0yJ_@=uz%$`M+MKQl{&%7`&+n;jlkE{R0R$?lJEHVbnt>z{0XK7*hB1|Am>=j z_;{Lt%3-T&HV552mI-^wL|YWXga3{3GBBIc5zs)=;4Tq;Bz*or z#Q25v<;!dHAc~_TZ0bn%%6GBxN?&LAkATL-dmH%#x$xQi@L9v5Re{OxdXwL!>Kijj ztvB@m8_lTM{?2w)yEU0SWj3Nk5kmwn_$`OdPCcXa=RG$D8OuCjv8Xk1r>4-M<%Y#Y zLf_(=mjU#wD zy&a>{B7J}V=qB&?Gh1%?ulpLgbN{xf5yc6DbCK>JfMg)`1}InvMdi3;rV9E-@BG{e zF_VrEI*^LGyembKh^(_HtZhJ-Zs(^PS2vOY+q|Zz@H*=xs0>gCAFxRH+!#jkzmYL0 z|2O12LGTe>OKJ0YYeuaCg6QniR;B?(RcHh{*f}VA^FZU3DR3lnAnYw!-7Y(W;HHTW2{7=D9=T!T^Y4 zzYHI5dANwpKV?Vv7Ozd-vvrOBFyPaUzT92p=sY(G8m9dJ((smwMkwXU8Vc;0>wz8| z3T;N%otxmN9dr09Wm44fByV=H>pkmcX)pfaR=!Y3d9EUf(0_3?S}6(*~Cgd zQgYOjW&JP)`q^PWZFjbZvZGGHxQJ{EDG{ofX!;EoO*FA^S#x1z`K}8+Awfy`194Be z!?b2X9>qd1SLf@J@ye92^RJS*Y{Dc|27(D*Z@Z8SZUg_79W{+fc!=Um6ZcqdFW~zi zNz|qWO2%ck^utm1Yt{cl4vrputC~hEH`kq5MV$^%e=7{TUH7JfO9Ya4ddy+`*7O3sr#-vql73U+Es$~G~X zJI-m*kD^ON={6I|Di>7$ zFMcDKa1oxk<2^_XRxI^$6gx#FnfVHIYZ8en_mxTJSB~t2;pLlE*r&u{&MC|t8V8uZ zD8y^~J?c}viklqZI%qwntRlj%;g{X z9lFwED|g~{ZSkSo(khQ`=2qA>AG>=lw}xT^Kc#e#{)}GX1Oc`DA@gKg7+bKJNV|E%T}hzJf_bFc2Z z1^XC&KP(D*_rF=8I%9HbKH_e8I&-XEFi%@PmKS@WlyjL^Hv!-39e=H?=cQJ@+Wos= z?KhnQ=f*JZzp^y6IIKCsE9757IhW=~3@(a3pmRC~!%lP8J}2R)f4WLPO~Kr7x%nn7 zDBfCw9gDg>KSKBh#c~hPugB5izzrQ{YVM#YN3Xf{LczRXai8j*sFBSe#&{G-gW;J; zgQ0u}#ucqAJHM%x1qlrF^GJg*wV@#*2VQzPVb&}I8YJW32gz$9>+%o*BC;y+**>DU9x1qnmk>u+a+05P1 zUuఋ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 zⅆ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�K5-4owkfId(6Ub=Av2_f&0^U={2%2xAF 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 DvD=U} literal 0 HcmV?d00001 diff --git a/notes.ctb_HTML/images/2-1.png b/notes.ctb_HTML/images/67-1.png similarity index 100% rename from notes.ctb_HTML/images/2-1.png rename to notes.ctb_HTML/images/67-1.png