Почему SHA512 выбрал SHA384?
SHA384 - это усеченная версия SHA512. Но зачем кому-то это использовать? И следствие: если SHA384 так же хорош, как SHA512, существует ли какое-либо обоснование при использовании версии с 512 бит?
Я планирую использовать один из алгоритмов для проверки целостности файла, поэтому меня главным образом интересует безопасность в коллизии.
Я был бы рад услышать, как каждый использует дайджест SHA2 на практике и почему вы выбрали одну версию над другой.
Ответы
Ответ 1
Для практических целей и в обозримом будущем, как SHA384, так и SHA512 достаточно хороши для практически любого воображаемого приложения сопротивления столкновению. Как правило, основным определяющим фактором того, какой хэш вы бы использовали, когда мы превысили 256 бит и сопротивление столкновению бесконечно для практических целей, - это то, сколько бит нужно вам. Например, если вам нужен хеш для генерации 256-битного ключа HMAC и 128-битного ключа шифрования, SHA384 является естественным выбором. Если вам нужно как можно больше средств для вычислительной стоимости, скажем, для вывода PRNG или как случайного заполнения, тогда SHA512 имеет смысл.
Ответ 2
SHA512 также SHA256 SHA1 и MD5 уязвимы для атаки с удлинением длины SHA224 и SHA384 не являются уязвимыми, поскольку выходной сигнал понижен до внутреннего состояния, SHA3 также не уязвим. Имея это в виду, SHA512 является хорошей криптографической стойкой к коллизиям хэш-функцией.
Ответ 3
SHA512 уязвим для атаки с удлинением длины, а SHA384 - нет. [источник]
Ответ 4
Сертификаты, подписанные с SHA512, не работают с TLS 1.2 в Windows (см. здесь)
Поэтому я буду воссоздавать цепочку сертификатов с использованием SHA-384 (или, я полагаю, могу использовать SHA-256).
К счастью, я еще не опубликовал никаких сертификатов, поток на связанной странице предлагает метод обхода/исправления для тех, кто застрял с SHA-512.
НТН!
Ответ 5
Единственная причина, по которой я мог подумать об использовании SHA-384 или SHA-512, связана с необходимостью подписи дайджеста. Например, если вы принимаете подпись ECDSA-384, для этого требуется дайджест хэша 384, а не 512 бит. В идеале можно выкинуть любой 128-битный из 512-битного. Но получающему концу нужно знать, какой 128-битный вы выбрасываете. Таким образом, единственная разница между SHA384 и SHA512 состоит в том, чтобы определить, какой 128-битный вам нужно выбросить.