I've been doing some questions related to hashing and came across these three. I am a bit confused as how to go about solving them.
The question is stated as follows,
Suppose a hashing function H(m) that takes any input m and produces a fixed-length 64-bit digest h. Answer the following questions
a) How many hashes would you need to compute in order to have a 50% probability of finding any two inputs m1 and m2 such that H(m1) = H(m2)?
b) Given some hash digest h, how many inputs would you need to hash in order to have a 50% probability of finding an input m such that h = H(m)?
c) Given some input m1, how many inputs would you need to hash in order to have a 50% probability of finding an input m2 such that H(m1) = H(m2)
Would we simply be using the birthday paradox to solve these questions or is there another way to solve them?