В цитируемом тексте вроде бы говорится о нахождении коллизии 128-битной хэш-функции с атакой Birthday. В атаке на день рождения человек создает вокруг $\sqrt{2^{128}} = 2^{64}$ сообщения так, чтобы они ожидали найти сталкивающуюся пару с вероятностью 1/2.
В описанной атаке Оскар хочет создать два конкретных сообщения с одинаковым значением хеш-функции.
$x_1$= Переведите 10 долларов на счет Оскара
$x_2$= Переведите 10 000 долларов на счет Оскара
Чтобы создать $2^{64}$ сообщения, можно использовать невидимые символы, такие как пространство
и вкладка
. Если вы добавите 64 символа к $x_1$ или же $x_2$ это либо вкладка, либо пробел, тогда вы можете получить 64 местоположения. Это делает $2^{64}$ сообщения, имеющие одинаковое значение с высокими, вероятно, разными хэшами.
Эта невидимая модификация применяется как $x_1$ и $x_2$.
Создать $2^{64}$ разные строки для $x_1$ и $x_2$ и объединить их в набор. В этом наборе мы ожидаем столкновения. Имейте в виду, что таким образом у нас может возникнуть коллизия внутри варианта $x_1$ (или же $x_2$).
Теперь Оскар ищет способ обмануть вас. Оскар посылает вам сообщение $x_1$ с парадигмой хеша и знака, и вы проверяете это. Позже Оскар утверждает, что они послали вас $x_2$. Они показывают вам, что подписи такие же, как и предыдущие, и здесь нам нужно разрешить конфликт.
Другие примеры использования хеш-коллизии в реалистичных атаках см. в этом вопросе;
Атака столкновения против второй атаки предварительного изображения
в атака столкновением мы ищем два сообщения $m_1$ и $m_2$ с $m_1 \neq m_2$ такой $ч(м_1) = ч(м_2)$. При атаке столкновением злоумышленник может свободно выбирать значение хеш-функции, он ищет только два сообщения с одинаковым значением хеш-функции. Эта свобода снижает стоимость атаки. Общая стоимость столкновения $\mathcal{O}(\sqrt{2^{n/2}})$-время для $n$-битная выходная хэш-функция.
В некоторых других сценариях злоумышленнику необходимо вторая атака предварительного изображения; дано сообщение $м$ и это хэш-значение $х=ч(м)$, найти другое сообщение $м'\neq м$ такой, что $ч(м)=ч(м')$. Это сценарий, в котором злоумышленник создает подделку цифровой подписи (хэш и знак). Учитывая подпись, они пытаются найти другое сообщение $м'$ так что подпись совпадает с данной.
Две общие затраты на вторичную атаку прообраза составляют $\mathcal{O}(\sqrt{2^n})$-время для $n$-битная хеш-функция.
Формальные определения можно найти в