HMAC против простого хеша MD5 - PullRequest
45 голосов
/ 19 февраля 2011

Кто-нибудь может указать, в чем преимущество использования HMАC?

Например, если у меня есть текст T и ключ K, я могу использовать алгоритм HMAC-MD5 или Md5(T + K), чтобы получить подпись.

Ответы [ 3 ]

36 голосов
/ 05 апреля 2011

HMAC не подвержен атакам с удлинением.

md5 (T + K) должно подойти для большинства случаев использования, если только у вашего противника нет стимула вмешиваться в ваше сообщение и он обладает очень хорошей вычислительной мощностью. Пока вы контролируете T, атаки на день рождения не применимы, и у вас есть только атаки грубой силы. Но хорошо знать об ограничениях. Если вы хотите использовать этот подход, вы можете использовать SHA1 (T + K) вместо MD5.

md5 (T + K), безусловно, лучше, чем md5 (K + T), когда злоумышленник может добавить текст в ваше сообщение и сгенерировать другой действительный MAC-адрес.

При использовании md5 (T + K) проблема заключается в том, что если злоумышленник может обнаружить столкновение с T2 таким образом, что md5 (T) = md5 (T2), то md5 (T + K) = md5 (T2 + K) , Но для этого требуется атака грубой силой.

Примечание: Я говорю ", пока вы контролируете T ", потому что если можно внести изменения в T (таким образом, что это не очевидно), можно попробовать генерировать 2 сообщения T1 и T2, где T1 может пройти для T и md5 (T1) = md5 (T2). Теперь это сделать намного проще (мы говорим 2 ^ 64 вместо 2 ^ 128), и причина в так называемом парадоксе в день рождения или в атаке на день рождения.

Примечание: Дизайн HMAC был мотивирован, чтобы избежать подобных атак расширения. Нет известных атак против HMAC.

26 голосов
/ 19 февраля 2011

Статья Википедии о HMAC дает хорошее объяснение этому.

В разделе Security той же статьи говорится:

HMAC существенно меньше подвержены коллизиям, чем только их базовые алгоритмы хеширования.

Таким образом, добавление HMAC к хешу MD5 существенно затруднит взлом через радужный стол.

5 голосов
/ 19 февраля 2011

Я бы рекомендовал прочитать документы HMAC Белларе, Канетти и Кравчика.

...