Я читал, тот SHA-1 ликвидируется с FIPS стандарт 180-2.
По-видимому, существуют слабые места в SHA-1, который привел к этому решению. Кто-либо может уточнить на основе для того решения? Есть ли последствия для использования SHA-1 в коммерческом применении?
Мои реальные вопросы:
Заинтересованный основными платформами:.NET, Java, C/C++, Python, JavaScript, и т.д.
Sha1, Sha0, md4 и md5 оказались небезопасными за последние несколько лет. Проблема в том, что если злоумышленник может сгенерировать 2 разных сообщения, которые производят один и тот же результирующий хэш, это называется коллизией. Это вызывает множество проблем для PKI, управления паролями, проверки целостности файлов и многого другого. В настоящее время sha1 обеспечивает только 2 ^ 52 бита безопасности, доступных злоумышленникам. Где SHA-256 (наименьший член семейства sha2) предоставляет 2 ^ 256 бит.
Все платформы должны иметь реализацию SHA-256, хотя не все из них являются собственными. В PHP вы должны использовать расширение mhash. Довольно сбивает с толку то, что некоторые платформы не предоставляют безопасных хэш-функций, я искренне верю, что это потому, что они не заботятся о безопасности. В случае PHP я точно знаю, что они не заботятся о безопасности .
В настоящее время в SHA-2 нет ничего плохого, и он имеет очень большой запас прочности. Вы можете использовать SHA-512, если вы действительно параноик. Sha-3 выйдет в 2012 году, вам следует пропатчить все, что вы можете, с помощью sha-2, такого как ваши ПАРОЛИ , а затем перейти на SHA-3, когда сможете, но SHA-512 будет работать ОЧЕНЬ долго время.
Windows Vista и более поздние версии поддерживают SHA-2 в Microsoft Enhanced RSA and AES Cryptographic Provider for CryptoAPI, а .NET Framework поддерживает SHA-2 начиная с .NET 1.1.
Большинство платформ теперь поддерживают семейство SHA-2. Однако SHA-1 все еще используется во многих приложениях, например, в SSL, и будет использоваться еще некоторое время.
Соревнование за "SHA-3" идет полным ходом. Возможно, будет разумно перейти от SHA-1 к новому стандарту SHA-3, когда он появится.