Which of the following hash functions is collision resistant? Let $H: M \to T\ $ be a collision resistant hash function. Which of the following is collision resistant: $
1.H'(m) = H(m \big\| m)$

$2.H'(m) = H(m) \big\| H(0)$

$3.H'(m) = H(m) \oplus H(m)$

$4.H'(m) = H(H(m))$

$5.H'(m) = H(0)$

$6.H'(m) = H(|m|)$

$7.H'(m) = H(m)[0,\ldots,31] $   (i.e. output the first 32 bits of the hash)

Is the answer functions 1, (2) and 4?
looks like it it is collision resistant, as hashes the message "twice"
Is collision resistant, as a part of the digest is collision resistant.
Is always $0$, so not collision resistant
Collision resistant, as it hashes the message twice and outputs a valid hash of a valid message (the hash of the message)
Always the same. Not collision resistant
Always the same for messages of the same length. Not collision resistant.
Depends on your definition of collision resistant. By itself it's a subset of a collision resistant hash function it is collision resistant if the subset is large enough. So from a theoretical point of view there's no faster attack than brute-force to find a collision, making it a collision resistant 32-bit hash function. From a practical point of view or if you consider it a n-bit hash function with n the digestsize of $H$ it's not collision resistand as one can find one with $2^{16}$ hash function calls.


So the answer is 1,2,4 and maybe 7.