So I am working on a problem as follows, it's a pretty basic standard question that I think I figured out, but I am confused as to why it works out the way it does.
Essentially, we are given a hash function $H$ that is collision resistant and maps to a fixed output length.
We want to create a new hash $H'$ such that
$H'(n) = H(n)||x$
Where we say, $x$ is just a random string of a given arbitrary length $m$.
Now what I think is the right thing to do is to use the contrapositive to say, if $H'$ is not collision resistant, than we can build an adversary to work in time ε. Thus we can alter our adversary easily by just cutting off the last m bites to get an adversary to solve for $H$
My question is that why can't we just use a direct proof to solve this? Must we use a contrapositive? I believe that it has to do with proving something is secure is a lot harder than proving it isn't, but I'm unsure.