Lattice-based cryptography uses SHAKE to expand seeds into byte strings for matrix generation and sampling. SIMD Keccak implementations process multiple hash streams in parallel. Differences in stream lengths and input dependencies can prevent full SIMD utilization. We present a cost-aware method for scheduling Keccak permutations across hash streams during a single execution of a cryptographic algorithm. The method groups ready streams and divides long streams into segments for regrouping. A model of permutation calls, state movement, initialization, and input preparation guides the selection of stream groups, segment lengths, and state placements. We evaluate ML-KEM and HAETAE on an Apple M5, a Cortex-A72, and an Intel Core i5-11500, using Keccak kernels that process two, four, or eight streams per call. ML-KEM achieves speedups of up to $1.31\times$ for encapsulation and $1.44\times$ for decapsulation, while HAETAE achieves up to $1.28\times$ for signing and $1.26\times$ for verification.
Efficient SIMD SHAKE through Cost-Aware Permutation Scheduling
A cost-aware scheduling method for Keccak permutations across parallel SHAKE hash streams speeds up lattice-based cryptography, delivering up to 1.31× faster ML-KEM encapsulation and 1.44× faster decapsulation, and up to 1.28× faster HAETAE signing and 1.26× faster verification. The method groups ready streams and splits long streams into segments for regrouping, guided by a model of permutation calls, state movement, initialization and input preparation. The authors evaluated ML-KEM and HAETAE on an Apple M5, a Cortex-A72 and an Intel Core i5-11500 using Keccak kernels that process two, four or eight streams per call.
Run your AI side-project on zahid.host
EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.