Алгоритм хеширования в цифровой подписи


Какой алгоритм предпочтительнее, если выбирать для цифровой подписи – MD5 или SHA1 и почему?

Комментарии
— serzh (04/12/2006 14:04)   
Если выбирать из MD5 и SHA1, то конечно SHA1, т.к. MD5 уже взломан.
— Pah (05/12/2006 12:01)   
спасибо за ссылки. когда начинал разбираться с электронной подписью, читал и о MD5 и о SHA1. Но все-таки, вопрос остается открытым? Чтобы Вы, например, выбрали в моем случае?
Еще немного мыслей. мне кажется, опасность коллизий зависит от области применения данного алгоритма. К примеру, текстовое сообщение подменить, практический смысл какой, если оно будет нечитабельное (хотя читал, что нашли коллизию двух читабельных сообщений (MD5, вроде), интересно было бы на них посмотреть). Так же некоторые данные, передаваемые между приложениями, максимум, приведут к ошибке, так как будут некорректные, хотя и с правильной подписью. Другое дело, что искаженные данные были бы определены на более раннем этапе проверки подписи.
— SATtva (05/12/2006 14:29)   
Чтобы Вы, например, выбрали в моем случае?

Я до сих пор пользуюсь ключом DSS, работающим только с хэш-функцией SHA-1 (и я далеко не одинок). Правда, в ближайшее время я ключ начну заменять, но главная причина здесь — слишком малый модуль у самого DSS.
— Pah (05/12/2006 15:12)   
я пока остановился на MD5 + RSA. думаю, возможно, перейду на SHA1. не знаю...
— SATtva (05/12/2006 15:51)   
Если есть возможность, используйте SHA-1! MD5 уже слишком неоднозначен.
Гость (06/12/2006 04:12)   
Какой хеш лучше использовать в сверхкритичных к производительности системах?
Сейчас я использую md5, но есть основания предполагать, что есть люди заинтересованые в порче передаваемых данных, поэтому думаю переходить на другой хеш.
— Pah (06/12/2006 10:21)   
Какой хеш лучше использовать в сверхкритичных к производительности системах?


Нашел неплохую статью:

Статья[link6]

Если есть возможность, используйте SHA-1! MD5 уже слишком неоднозначен.

В смысле, что, слишком непредсказуем, возможно скоро или уже будет найден способ получения коллизий?
Послушаюсь Вашего совета и переделаю все на SHA1, наверное. Хотя, тот же Web Money использует MD5 + секретную строку, известную только продавцу и WebMoney (включается в сообщение) для подтверждения целосности сообщения и проверки подлинности. Хотя данная защита мне кажется не слишком надежной.
— sentaus (06/12/2006 11:43)   
У меня на машине два произвольных файла с одинаковым md5 генерируются за несколько секунд. (P4 630 3GHz) Здесь проскакивала ссылка на программу, которая это делает.
— Pah (06/12/2006 11:49)   
другое дело, что наполнение их невразумительное. а эти файлы каждый раз разные? ;)
— SATtva (06/12/2006 19:46)   
Хотя, тот же Web Money использует MD5 + секретную строку, известную только продавцу и WebMoney (включается в сообщение) для подтверждения целосности сообщения и проверки подлинности. Хотя данная защита мне кажется не слишком надежной.

Это называется имитовставкой или кодом аутентичности сообщений (MAC). В подобных приложениях коллизии хэш-значений не играют роли, в них важна только защита от атак на прообраз. Коллизии имеют значение в приложениях цифровой подписи и аналогичных схемах, где данные аутентифицирует только хэш-значение.

Ссылки
[link1] http://www.pgpru.com/biblioteka/statji/kriptoanalizheshfunkcijjprogressvnushaetopasenija

[link2] http://www.pgpru.com/biblioteka/statji/kriptoanalizheshfunkcijjvremjadljanovogostandarta

[link3] http://www.pgpru.com/biblioteka/statji/novoenevsegdaluchshee

[link4] http://www.pgpru.com/forum/kriptografija/sha1broken

[link5] http://www.pgpru.com/forum/kriptografija/neozhidannyesobytijaposlednihdnejjvkriptoanalizeheshfunkc

[link6] http://www.gotdotnet.ru/LearnDotNet/ASPNET/685.aspx