スポンジは、Keccak-f 置換によって入力を 1600 ビットの状態に吸収し、そこから出力を絞り出します。状態は、レート(入力と出力が触れる部分)と、安全性を決めるキャパシティ c に分かれます。SHA3-256 ではレートが 1088 ビット、キャパシティが 512 ビットです。キャパシティは決して出力されないため、SHA-3 は伸長攻撃を受けず、SHA3-256(key ‖ message) は健全な MAC の構成になります。ただし、標準化されているのは KMAC です。
テストベクトル:空文字列の SHA3-256 は a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a です。Ethereum の「SHA3」は元のパディングを使う Keccak-256 で、異なるダイジェストになります。FIPS 202 では、ドメイン分離のビットが追加されています。
SHA-2 命令を備えた CPU では、ソフトウェア実装の SHA-3 は SHA-256 より遅くなります。Apple M4 Max の 1 コアで OpenSSL 3.6.5 を使うと、SHA3-256 は約 1.01 GB/s、SHA-256 は 2.85 GB/s です。SHA-3 は SHA-2 の後継ではなく、構造の異なる予備として標準化されました。その SHAKE 関数は、ML-KEM、ML-DSA、SLH-DSA の内部で使われる主要なハッシュプリミティブです。