Перейти к содержимому
ecdsa.com

SHA-256

256-битная хеш-функция семейства SHA-2 (FIPS 180-4), хеш по умолчанию в TLS, JWT, X.509, Bitcoin и большинстве инструментов проверки целостности файлов; её стойкость к коллизиям — 128 бит, к нахождению прообраза — 256 бит.
Другие написанияSHA256SHA2-256sha256sum

SHA-256 обрабатывает 64-байтные блоки за 64 раунда над 32-битными словами в конструкции Меркла — Дамгора и выдаёт 32 байта. Дайджест SHA-256 для пустой строки — e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, для строки abc — ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. Ни одна атака даже не приближается к границам её стойкости.

У большинства современных процессоров есть инструкции для SHA-256 (расширения SHA у Intel и AMD, криптографические расширения ARMv8). На одном ядре Apple M4 Max OpenSSL 3.6.5 хеширует со скоростью около 2,85 ГБ/с с буферами по 16 КиБ — быстрее, чем SHA-512 (1,65 ГБ/с) и SHA3-256 (1,01 ГБ/с) на той же машине. Bitcoin применяет SHA-256 дважды (SHA-256d) для идентификаторов блоков и транзакций.

Структура Меркла — Дамгора допускает атаку удлинения сообщения, поэтому SHA-256(secret ‖ message) не годится как MAC; используйте HMAC-SHA256. Идентификаторы: OID 2.16.840.1.101.3.4.2.1, S256 в PKCE (JOSE) и sha-256 в _sd_alg для SD-JWT, SHA-256 в WebCrypto, sha256 в OpenSSL и Node.

Стандарты и ссылки

Все термины