Let's say we want to sign message $M$ with RSA using a safe hash function.
However, instead of signing $\operatorname{hash}(M)$,
We split the message into 64-bit blocks (||
is concatenation):
$$M = {m_0}||{m_1}||{m_2}||{m_3}\,...$$
For each block we calculate:
$${h_i} = \operatorname{hash}({m_i}||i)$$
and then we calculate the total hash:
$$h = {h_1} \oplus {h_2} \oplus {h_3}\,...$$
and sign $h$ with RSA instead of $\operatorname{hash}(M)$.
Why is it weaker than signing $\operatorname{hash}(M)$?
I know that the order of the blocks cannot be modified because of the concatenation of $i$, and that I cannot add the same block twice because of that too.
I think the answer involves collision, birthday or brute-force attack which may be faster than performing those attacks against $\operatorname{hash}(M)$ but couldn't show that. Any ideas?
P.S: Homework question - hint is enough :)