Pular para o conteúdo
ecdsa.com

SHA-3

A família de hash baseada no Keccak padronizada no FIPS 202 (2015) — SHA3-224, SHA3-256, SHA3-384, SHA3-512 e as funções de saída extensível SHAKE128 e SHAKE256 —, construída sobre uma esponja, e não sobre Merkle–Damgård.
Também escrito comoSHA3SHA3-256SHA3-512Keccak (FIPS 202)

Uma esponja absorve a entrada em um estado de 1600 bits por meio da permutação Keccak-f e espreme a saída a partir dele. O estado se divide em uma taxa (rate, a parte tocada pela entrada e pela saída) e uma capacidade c, que define a segurança; o SHA3-256 usa uma taxa de 1088 bits e uma capacidade de 512. Como a capacidade nunca vai para a saída, o SHA-3 é imune à extensão de comprimento, e SHA3-256(key ‖ message) é uma construção de MAC sólida, embora a padronizada seja o KMAC.

Vetor de teste: o SHA3-256 da string vazia é a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a. O “SHA3” do Ethereum é o Keccak-256 com o padding original e produz um digest diferente; o FIPS 202 acrescentou bits de separação de domínio.

Em software, o SHA-3 é mais lento que o SHA-256 em CPUs com instruções SHA-2: cerca de 1,01 GB/s para o SHA3-256 contra 2,85 GB/s para o SHA-256 em um núcleo de Apple M4 Max com OpenSSL 3.6.5. Ele foi padronizado como uma alternativa de reserva estruturalmente diferente do SHA-2, e não como substituto, e suas funções SHAKE são as principais primitivas de hash dentro do ML-KEM, do ML-DSA e do SLH-DSA.

Padrões e referências

Todos os termos