海绵结构通过 Keccak-f 置换把输入吸收进 1600 位的状态,再从中挤出输出。状态分为速率部分(输入和输出触及的部分)和决定安全性的容量 c;SHA3-256 的速率为 1088 位,容量为 512 位。由于容量部分从不输出,SHA-3 不受长度扩展攻击影响,SHA3-256(key ‖ message) 也是一种可靠的 MAC 构造,不过标准化的构造是 KMAC。
测试向量:空字符串的 SHA3-256 哈希为 a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a。以太坊所说的“SHA3”是采用原始填充的 Keccak-256,得到的摘要不同;FIPS 202 增加了域分隔位。
在带有 SHA-2 指令的 CPU 上,SHA-3 的软件实现比 SHA-256 慢:在 Apple M4 Max 的单个核心上使用 OpenSSL 3.6.5,SHA3-256 约为 1.01 GB/s,SHA-256 约为 2.85 GB/s。SHA-3 是作为结构不同的 SHA-2 备选方案而标准化的,并不是要取代 SHA-2;它的 SHAKE 函数是 ML-KEM、ML-DSA 和 SLH-DSA 内部主要的哈希原语。