Recently, we announced our optimization work on ML-DSA that leverages the BLAKE3 hash function for internal calls (ML-DSA-B)
A similar approach for SLH-DSA (SLH-DSA-B) yields 15-18% faster signatures & 5-15% faster verification
SLH-DSA (FIPS 205) is a hash-based post-quantum signature scheme based on SPHINCS+. It has two variants: one using SHA-256 and one using SHAKE.
We replace those with BLAKE3 and call the new scheme SLH-DSA-B.
We ran experimental benchmarks, modifying RustCrypto's SLH-DSA with the reference BLAKE3 Rust code. Preliminary results show that, depending on the platform SLH-DSA-B yields 15-18% faster signatures & 5-15% faster verification.
The signing improvement scales w/ message size.
Our results: SHAKE is the slowest choice in all benchmarks (4–7× slower) because of its higher per-bit hashing cost.
BLAKE3 and SHA2 (SHA2 is the FIPS-205 standard) are in a similar performance range; the faster one depends on hardware.
Architecture effects dominate: x86 favors BLAKE3 (SIMD parallelism), Apple M3 favors SHA2 (hardware SHA extensions).
But the SLH-DSA-B improvement is quite relevant for client-side signature generation/verification given the native SIMD instruction support in browser runtimes.
Similar to ML-DSA-B, the motivation here is performance maximization without sacrificing security, particularly in distributed settings where signatures are generated and verified in large volumes in parallel across a network
(think post quantum blockchains)
This work is open-source, and we hope it serves as a foundation for others to build on.
Check out the latest version, or feel free to contribute according to the guidelines in our repository!