This is related to my school work, I've basically created an example of a problem that I need to solve to better understand some things.

Say we are given a 128 bit message, m

We have a secure hash function H(x) that produces 256 bit output

We want to find a 128 bit value, t, such that H(m || t) gives us a result that has 50 leading zeros. Note: m || t is m concatenated with t.

The question is, how many times do we need to call the hash function so that we can expect to find at least one value of t that satisfies our requirement.

All help is appreciated.