В большинстве случаев SHA-1 используется для обеспечения совместимости: мы используем SHA-1, когда внедряем протоколы, для которых обязателен SHA-1. Также учитывается простота разработки: реализации SHA-1 на разных языках и в среде программирования встречаются чаще, чем реализации SHA-512.
Кроме того, несмотря на то, что в большинстве случаев использование хеш-функций не вызывает проблем с производительностью (по крайней мере, проблем с производительностью, когда хеш-функция является узким местом), есть некоторые архитектуры, в которых SHA-1 значительно более эффективен, чем SHA-512. Рассмотрим базовый маршрутизатор Linksys: он использует производный от Mips процессор с тактовой частотой 200 МГц. Такая машина может быть перепрограммирована, например, с OpenWRT (небольшой Linux для встроенных систем). Как маршрутизатор, он имеет быструю сеть (100 Мбит / с). Предположим, что вы хотите хэшировать некоторые данные (например, как часть некоторого программного обеспечения VPN - маршрутизатор выглядит хорошим кандидатом для запуска VPN). С SHA-1 вы получите около 6 МБ / с при полной загрузке процессора. Это уже намного ниже, чем пропускная способность сети. SHA-512 даст вам не более 1,5 МБ / с на одной машине. В такой системе разница в производительности не является незначительной. Кроме того, если я использую SHA-1 на своем маршрутизаторе Linksys для какого-либо протокола связи, то устройство на другом конце канала также должно будет использовать SHA-1.
Хорошая новость заключается в том, что продолжается конкурс на выбор новой стандартной хеш-функции с кодовым названием SHA-3 . Некоторые из конкурирующих кандидатов обеспечивают производительность, аналогичную SHA-1, или даже несколько лучше, но при этом выдают 512-битный выходной сигнал и (вероятно) так же безопасны, как SHA-512.