По известному h сложно вычислить M, такое что h=H(M).
По известному M вычислительно сложно или практически невозможно сформировать (вычислить) M’, такое что h=H(M)= H(M’). (3)
Вычислительно сложно или практически невозможно найти случайные M и M’, такие что H(M)= H(M’). (4)
Длина lh хеш-функции должна выбираться из условия устойчивости против нападения. Например lh lдоп, где lдоп – допустимая длина хеш-функции, определенная с учетом прогноза развития средств криптоанализа.
Необходима открытость и общедоступность алгоритмов и средств хеширования.
Безопасность хеш-функций должна обеспечиваться их однонаправленностью. Это требование заключается в том, что h напрямую и в существенной мере зависит от M. При изменении хотя бы одного бита исходного сообщения значение хеширования должно в среднем измениться на lh/2 битов.
В случае 4 полагается, что M и M’ порождаются путем изменения двух исходных сообщений, например добавлением незначащих пробелов.
При выполнении только требований (1)-(3) существует возможность подбора двух сообщений, имеющих одинаковое значение хеширования, т.е. коллизии.
Хотя требования (1)-(3) обеспечивают однонаправленность хеш-функции, в большинстве приложений необходимо выполнить и требование 4, реализовав защиту от коллизий.
СВОЙСТВА хэш-функции
Первые три свойства требуют, чтобы хэш-функция создавала хэш-код для любого сообщения.
Четвертое свойство определяет требование односторонности хэш-функции:
легко создать хэш-код по данному сообщению, но невозможно восстановить сообщение по данному
хэш-коду.
Пятое свойство гарантирует то, что не удастся найти другое сообщение, дающее в результате
хэширования то же самое значение, что и данное сообщение.
Если это свойство не выполнено, противник может действовать по следующей схеме:
перехватить сообщение вместе с присоединенным к нему шифрованным хэш-кодом,
вычислить нешифрованный хэш-код сообщения,
создать альтернативное сообщение с тем же хэш-кодом.