Является ли какой-либо существующий хеш-алгоритм достаточно сильным?
Да; на самом деле любой криптографически безопасный хеш-алгоритм (такой как SHA-2, SHA-3, Blake2) будет достаточно сильным.
Чтобы подчеркнуть это, позвольте мне указать, что MD5 достаточно силен. Теперь MD5 считается довольно слабым (и никто здесь не одобрит его использование); однако даже с его известными недостатками он все еще достаточно силен против этой конкретной атаки.
MD5 имеет 128-битный вывод (в отличие от криптографических хэш-функций, которые мы используем на практике, которые имеют гораздо большие выходные данные). Кроме того, известны способы генерации «коллизий», то есть пар входных данных, которые MD5-хешируют до одного и того же значения. Однако эти методы предполагают, что атака имеет контроль над обоими входными данными — в этом случае действительный издатель генерирует действительное изображение, а злоумышленник не может изменить то, что подписывает издатель, поэтому слабость коллизии MD5 не применяется. MD5 не имеет известных слабых мест по отношению к атакам «второго прообраза» или к атаке «многоцелевого второго прообраза» (что именно так и есть), и поэтому единственный подход, который есть у злоумышленника, — это хешировать различные входные данные, пока он не найдет совпадение.
Теперь предположим, что существуют 60 000 долларов США \приблизительно 2^{16}$ действительные подписи; если злоумышленник делает предположение, это имеет около $2^{-128+16} = 2^{-112}$ вероятность хеширования до одной из целей. Другими словами, чтобы получить шанс один к тысяче найти изображение, которое совпадает с одной из целей, ему нужно было бы хешировать около $2^{102}$ картинки.
По оценкам, глобальная индустрия майнинга биткойнов оценивает примерно $2^{68}$ хэшей в секунду (на самом деле чуть меньше); это означает, что если бы злоумышленник мог посвятить всю эту обработку [1] атаке на вашу систему, им пришлось бы заниматься этим около $2^{34}$ секунд (или около 500 лет), чтобы получить шанс 1 из тысячи.
Если вы замените MD5 реальным хэшем криптовалюты, эти 500 лет превратятся в временные рамки типа «тепловой смерти Вселенной».
[1]: Конечно, текущая инфраструктура майнинга биткойнов построена на SHA-256 — я проигнорирую эту деталь.