  Dilithium is a lattice-based digital signature scheme standardized by the
NIST post-quantum cryptography (PQC) project. In this study, we focus on
developing efficient sparse polynomial multiplication implementations of
Dilithium for ARM Cortex-M4 and Apple M2, which are both based on the ARM
architecture. The ARM Cortex-M4 is commonly utilized in resource-constrained
devices such as sensors. Conversely, the Apple M2 is typically found on mobile
devices, emphasizing high performance and versatility. Accordingly, our
optimization strategies differ between ARM Cortex-M4 and Apple M2. We
prioritize optimizing stack usage for the former while enhancing computational
efficiency for the latter. Our optimized sparse polynomial multiplication
achieves significant speedups of up to 30% on ARM Cortex-M4 and 55% on Apple M2
compared to the state-of-the-art Number-Theoretic Transform (NTT)
implementation. Additionally, we integrate the sparse polynomial multiplication
with the infinity norm judgments in the Dilithium signing process, further
enhancing signing efficiency. Our optimized implementation not only reduces
stack usage by 10.8%, 1.2%, and 7.7% in the signing procedure of Dilithium2,
Dilithium3, and Dilithium5, respectively, but also enhances signing performance
by 0.4% to 0.8% compared to the state-of-the-art ARM Cortex-M4 implementation.
Furthermore, we optimize polynomial sampling, rounding functions, and
polynomial packing and unpacking using ARM Cortex-M4 DSP instructions,
resulting in a 0.4%-3.2% improvement in key generation and verification
procedures. On the MacBook Air 2022, our Dilithium implementation achieves 10%
to 11% speedups in the signing procedure. To the best of our knowledge, our
work sets new performance records for Dilithium on both ARM Cortex-M4 and Apple
M2 platforms.
