I have found interesting for me paper about constructing collisions in SHA 0. On page 60 the author determines M variable which is a concatenation of 32-bits vectors $M^{(i)}$, but I can't find any explanation about this

$$\forall i,0\leq i\leq 79,M^{(i)}_{0,k}=0\text{ if }k\neq 1$$ $$\forall i,0\leq i\leq 79,M^{(i)}_{0,k}=m_0^{(i)}$$

$M$ with superscript $(i)$ means a 32-bits vector which refers to $i$-th word W.

What does $M$ with two subscripts $0$ and $k$ mean?

It is very important to make it clear because whole process of getting right mask $M$ is based on the first mask $M_0$. Please help me to understand the author's definition.


In the referenced paper, $M^{(i)}_{j,k}$ is bit $k$ of the 32-bit $M^{(i)}_j$, with $-5\le i<80$, $j$ the same index as in $m_j$ with $0\le j<6$, and bit index $k$ is with $0\le k<32$.

The question's two statements are thus equivalent to $$\forall i,0\leq i\leq79,\quad M^{(i)}_0=\begin{cases} \mathtt{00000000_h}&\text{if }m_0^{(i)}=0\\ \mathtt{00000002_h}&\text{if }m_0^{(i)}=1 \end{cases}$$


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.