ΥΣ13 - Computer Security

ΥΣ13 - Computer Security

ΥΣ13 - Computer Security Hashing Κώστας Χατζηκοκολάκης 1 • Solution : hash function - h(x): f0; 1g∗ ! f0; 1gn - h(x) is the hash/digest of x Context • Goal - Represent large/sensitive message by a smaller one - Numerous applications 2 Context • Goal - Represent large/sensitive message by a smaller one - Numerous applications • Solution : hash function - h(x): f0; 1g∗ ! f0; 1gn - h(x) is the hash/digest of x 2 - h(x) ! x : hard · Even to find a single bit of x ! • No collisions - Do x =6 x0 exist such that h(x) = h(x0)? YES - But the should be hard to find! Properties • One-way - x ! h(x) : easy 3 YES - But the should be hard to find! Properties • One-way - x ! h(x) : easy - h(x) ! x : hard · Even to find a single bit of x ! • No collisions - Do x =6 x0 exist such that h(x) = h(x0)? 3 Properties • One-way - x ! h(x) : easy - h(x) ! x : hard · Even to find a single bit of x ! • No collisions - Do x =6 x0 exist such that h(x) = h(x0)? YES - But the should be hard to find! 3 • Just 23! − • − 364 · 363 · · 365 22 ≈ pb = 1 365 365 ::: 365 0:507 • Approximation - e−x ≈ 1 − x (x ≈ 0) − m2 - pb ≈ 1 − e 2·365 Collision-resistance Birthday paradox • How many people do we need so that any 2 have the same birthday with pb 50%? 4 • Approximation - e−x ≈ 1 − x (x ≈ 0) − m2 - pb ≈ 1 − e 2·365 Collision-resistance Birthday paradox • How many people do we need so that any 2 have the same birthday with pb 50%? • Just 23! − • − 364 · 363 · · 365 22 ≈ pb = 1 365 365 ::: 365 0:507 4 Collision-resistance Birthday paradox • How many people do we need so that any 2 have the same birthday with pb 50%? • Just 23! − • − 364 · 363 · · 365 22 ≈ pb = 1 365 365 ::: 365 0:507 • Approximation - e−x ≈ 1 − x (x ≈ 0) − m2 - pb ≈ 1 − e 2·365 4 • 50 bit hash - T ≈ 1015 total values (huge) - m: number of messages we hash - How many for a 50% collision? - 40M (milliseconds to generate!) Collision-resistance Birthday paradox • m people, T possible values each 2 - pb ≈ 1 − e−m =2T p - m ≈ −2T ln(1−pb) 5 - 40M (milliseconds to generate!) Collision-resistance Birthday paradox • m people, T possible values each 2 - pb ≈ 1 − e−m =2T p - m ≈ −2T ln(1−pb) • 50 bit hash - T ≈ 1015 total values (huge) - m: number of messages we hash - How many for a 50% collision? 5 Collision-resistance Birthday paradox • m people, T possible values each 2 - pb ≈ 1 − e−m =2T p - m ≈ −2T ln(1−pb) • 50 bit hash - T ≈ 1015 total values (huge) - m: number of messages we hash - How many for a 50% collision? - 40M (milliseconds to generate!) 5 - Example: password authentication · Protect against data breach · Only need to test whether input is correct! • Solution - Store h(x) - Better: generate random r (salt), store r; h(x; r) why? • Which properties of h does this rely on? - One-wayness: should not learn the password - Collision-resistance: should not login with different password One-way encryption • Goal - Store x in an encrypted form - We don’t need to decrypt, only to test equality of encrypted messages 6 • Solution - Store h(x) - Better: generate random r (salt), store r; h(x; r) why? • Which properties of h does this rely on? - One-wayness: should not learn the password - Collision-resistance: should not login with different password One-way encryption • Goal - Store x in an encrypted form - We don’t need to decrypt, only to test equality of encrypted messages - Example: password authentication · Protect against data breach · Only need to test whether input is correct! 6 - Better: generate random r (salt), store r; h(x; r) why? • Which properties of h does this rely on? - One-wayness: should not learn the password - Collision-resistance: should not login with different password One-way encryption • Goal - Store x in an encrypted form - We don’t need to decrypt, only to test equality of encrypted messages - Example: password authentication · Protect against data breach · Only need to test whether input is correct! • Solution - Store h(x) 6 • Which properties of h does this rely on? - One-wayness: should not learn the password - Collision-resistance: should not login with different password One-way encryption • Goal - Store x in an encrypted form - We don’t need to decrypt, only to test equality of encrypted messages - Example: password authentication · Protect against data breach · Only need to test whether input is correct! • Solution - Store h(x) - Better: generate random r (salt), store r; h(x; r) why? 6 - One-wayness: should not learn the password - Collision-resistance: should not login with different password One-way encryption • Goal - Store x in an encrypted form - We don’t need to decrypt, only to test equality of encrypted messages - Example: password authentication · Protect against data breach · Only need to test whether input is correct! • Solution - Store h(x) - Better: generate random r (salt), store r; h(x; r) why? • Which properties of h does this rely on? 6 One-way encryption • Goal - Store x in an encrypted form - We don’t need to decrypt, only to test equality of encrypted messages - Example: password authentication · Protect against data breach · Only need to test whether input is correct! • Solution - Store h(x) - Better: generate random r (salt), store r; h(x; r) why? • Which properties of h does this rely on? - One-wayness: should not learn the password - Collision-resistance: should not login with different password 6 • Assume 365 outputs. How many x0s to generate for 50% success pb? • 253! huh? but we said 23… • Different problem: pb that someone has the same birthday as you! n • − 364 pb = 1 365 (only 6% for n = 23) One-way encryption Can we break it? • Preimage attack : find x0 such that h(x0) matches the given h(x) 7 • 253! huh? but we said 23… • Different problem: pb that someone has the same birthday as you! n • − 364 pb = 1 365 (only 6% for n = 23) One-way encryption Can we break it? • Preimage attack : find x0 such that h(x0) matches the given h(x) • Assume 365 outputs. How many x0s to generate for 50% success pb? 7 • Different problem: pb that someone has the same birthday as you! n • − 364 pb = 1 365 (only 6% for n = 23) One-way encryption Can we break it? • Preimage attack : find x0 such that h(x0) matches the given h(x) • Assume 365 outputs. How many x0s to generate for 50% success pb? • 253! huh? but we said 23… 7 One-way encryption Can we break it? • Preimage attack : find x0 such that h(x0) matches the given h(x) • Assume 365 outputs. How many x0s to generate for 50% success pb? • 253! huh? but we said 23… • Different problem: pb that someone has the same birthday as you! n • − 364 pb = 1 365 (only 6% for n = 23) 7 • Can be used to show approval of x - Eg: x is a contract signed by Alice - But it is expensive for large x • Solution: provide sign(h(x); Alice) • Alice needs to know x to construct h(x)! - Does this show approval of x? Yes if collision-free - One-wayness can be useful if we want to reveal x in the future! Signatures • Assume: sign(x; Alice) is a message that can only be constructed by Alice - We will see how to do this using asymmetric encryption! 8 - Does this show approval of x? Yes if collision-free - One-wayness can be useful if we want to reveal x in the future! Signatures • Assume: sign(x; Alice) is a message that can only be constructed by Alice - We will see how to do this using asymmetric encryption! • Can be used to show approval of x - Eg: x is a contract signed by Alice - But it is expensive for large x • Solution: provide sign(h(x); Alice) • Alice needs to know x to construct h(x)! 8 Yes if collision-free - One-wayness can be useful if we want to reveal x in the future! Signatures • Assume: sign(x; Alice) is a message that can only be constructed by Alice - We will see how to do this using asymmetric encryption! • Can be used to show approval of x - Eg: x is a contract signed by Alice - But it is expensive for large x • Solution: provide sign(h(x); Alice) • Alice needs to know x to construct h(x)! - Does this show approval of x? 8 - One-wayness can be useful if we want to reveal x in the future! Signatures • Assume: sign(x; Alice) is a message that can only be constructed by Alice - We will see how to do this using asymmetric encryption! • Can be used to show approval of x - Eg: x is a contract signed by Alice - But it is expensive for large x • Solution: provide sign(h(x); Alice) • Alice needs to know x to construct h(x)! - Does this show approval of x? Yes if collision-free 8 Signatures • Assume: sign(x; Alice) is a message that can only be constructed by Alice - We will see how to do this using asymmetric encryption! • Can be used to show approval of x - Eg: x is a contract signed by Alice - But it is expensive for large x • Solution: provide sign(h(x); Alice) • Alice needs to know x to construct h(x)! - Does this show approval of x? Yes if collision-free - One-wayness can be useful if we want to reveal x in the future! 8 • Collision attack : find - honest contract x and fraudulent contract x0 - such that h(x) = h(x0) - So Bob will provide sign(h(x); Bob) = sign(h(x0); Bob) • Assume 365 outputs.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    68 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us