what is the definition of a hash function?
an N-bit (cryptographic) hash function is an efficiently computable function:
H: {0, 1}* –> {0, 1}N
mapping an arbitrary length input string to a fixed-length hash value (sometimes called message digest)
hash functions are not a keyed primitive
what are the applications of hash functions?
Applications of Hash Functions
* message fingerprinting
* * file integrity checking, file sharing
* signature schemes (hash-then-sign paradigm)
* message authentication codes (e.g., HMAC)
* key derivation
* * e.g., to derive keys from ‘raw data’ in Die-Hellman key exchange
* password hashing
* commitment schemes
* pseudorandom number generators
* Bitcoin (proof-of-work schemes)
* post-quantum signature schemes.
to what extent does password hashing improve security?
what is salting passwords?
how does hash iteration improve security?
what are the primary security goals of hashing?
what are the secondary security goals of hashing?
what is the pigeonhole principle?
collisions must exist, because the input space of the hash function is much larger than the output space
what is the birthday bound implication?
*Meaning attack cost is 2N/2 “operations” + memory in some cost model
how to achieve post-quantum security with a Merkle-Damgard-based hash?
use 512-bit or larger hash outputs fo 256-bit post-quantum security
impement quantum-secure compression functionc such as those based on lattice assumptions or modular arithmetic
define the shortest vector problem (SVP)
given a lattice L(B), find a (nonzero) lattice vector Bx (with x ∈ ℤk) of length (at most) ||Bx|| <= λ1
define shortest integer solutions (SIS) problem
SIS(n, m, q, B)
Given A ∈R ℤn x m, find z ∈ ℤqm such taht Az = 0 (mod q), where z != 0 and z ∈ [-B, B]m (and B «q/2)
ℤq = {0, 1, 2, … , q - 1}
x ∈R S means x is selected uniformly (and independantly) at random from S
all vectors are column vectors