L>Насколько я понимаю, найти сообщение, соответствующее какому-то *конкретному* хэшу просто невозможно — хотя бы потому, что любому конкретному хешу соответствует бесконечное множество сообщений.
Я имел в виду, что найти хотя бы одно сообщение, соответствующее конкретному хэшу очень трудно как в случае SHA-1, так и в случае MD-5 (на счет MD-4 не уверен).
L>Влом хеш-алгоритмов состоит именно в подборе коллизий — когда появляется возможность модифицировать сообщение, оставив хеш неизменным.
Вообще существует несколько свойств, которыми должны обладать хэш-функции:
Preimage resistant (See one way function for a related but slightly different property): given h it should be hard to find any m such that h = hash(m).
Second preimage resistant: given an input m1, it should be hard to find another input, m2 (not equal to m1) such that hash(m1) = hash(m2).
Collision-resistant: it should be hard to find two different messages m1 and m2 such that hash(m1) = hash(m2). Due to a possible birthday attack, this means the hash function output must be at least twice as large as what is required for preimage-resistance.
(взял с
http://en.wikipedia.org/wiki/Cryptographic_hash_function)
То, о чем написал ты — атака на второе свойство. Таких атак по-прежнему нет, т.е. SHA-1 остается second preimage resistant и preimage resistant. Китаянка доказала, что SHA-1 НЕ является collision-resistant, но для большинства приложений это и не важно. Правда говорят, что в Микрософте есть специальный человек, который сейчас "на всякий случай" во всех продуктах заменяет SHA-1 на SHA-256. А раньше, судя по слухам, этот человек заменял MD-5 на SHA-1

Есть подозрение, что и в будущем без работы он не останется