TR3.5

Cryptography

Huxley Marvit 2021-10-14 Thu 19:30

#ret #incomplete #hw *

1 Cryptography!

1.1 Hashes

1.1.1 Requirements for a hash

First, how do we know if it works? A hash needs to be: - One way? - Deterministic - Unique

How we we prove it is one way? uh, we can't. unless we prove P!=NP. hash function zoo! https://ehash.iaik.tugraz.at/wiki/The_Hash_Function_Zoo

1.1.2 -

source - No preimage: given y, it should not be feasible to find x such that h(x) = y. - No second preimage: given x1, it should not be feasible to find x2 (distinct from x1) such that h(x1) = h(x2). - No collision: it should not be feasible to find any x1 and x2 (distinct from each other) such that h(x1) = h(x2).

  • what this means
    • not feasible to get the original from the function output
    • not feasible to find a colliding hash?
    • not feasible to find collisions
  • breaking a hash function, from here
title: what does it mean for a hash function to be broken?

"For a hash function with a _n_-bit output, there are generic attacks (which work regardless of the details of the hash function) in _2n_ operations for the two first properties, and _2n/2_ operations for the third. If, for a given hash function, an attack is found, which, by exploiting special details of how the hash function operates, finds a preimage, a second preimage or a collision faster than the corresponding generic attack, then the hash function is said to be 'broken.'"

1.2 Custom hashing function

what if… we just use a neural network?

create a giant, randomly initialized neural network. then, have permuting layers in the middle which make the output space non-continuous

KBxCryptographyRet