mirror of
https://github.com/zoo-apps/papers.git
synced 2026-11-03 14:59:55 +00:00
28 lines
1.3 KiB
TeX
28 lines
1.3 KiB
TeX
\section{ML-DSA: Digital Signatures (FIPS 204)}
|
|
|
|
|
|
\subsection{Construction}
|
|
|
|
\MLDSA{} (formerly Dilithium) uses Module-LWE and Module-SIS with ``Fiat-Shamir with Aborts'' rejection sampling. Zoo deploys \MLDSA{}-65 (NIST Security Level~3, $k = 6$, $\ell = 5$, $q = 8380417$).
|
|
|
|
Key generation: $\mathbf{A} \xleftarrow{\$} R_q^{k \times \ell}$, $\mathbf{s}_1 \leftarrow S_\eta^\ell$, $\mathbf{s}_2 \leftarrow S_\eta^k$, $\mathbf{t} = \mathbf{A}\mathbf{s}_1 + \mathbf{s}_2$. Signing samples $\mathbf{y} \leftarrow S_{\gamma_1}^\ell$, computes challenge $c$ from $\mathbf{w}_1 = \text{HighBits}(\mathbf{A}\mathbf{y})$, and outputs $\mathbf{z} = \mathbf{y} + c\mathbf{s}_1$ if norm bounds are satisfied (otherwise resamples).
|
|
|
|
\subsection{Performance and Usage}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{lcc}
|
|
\toprule
|
|
\textbf{Parameter} & \textbf{ML-DSA-65} & \textbf{ECDSA (secp256k1)} \\
|
|
\midrule
|
|
Public key / Signature & 1,952\,B / 3,309\,B & 33\,B / 64\,B \\
|
|
Sign / Verify & 680 / 250\,$\mu$s & 45 / 120\,$\mu$s \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{\MLDSA{}-65 vs classical ECDSA}
|
|
\label{tab:mldsa-perf}
|
|
\end{table}
|
|
|
|
\MLDSA{}-65 is the default transaction signature on \KChain{}: user transfers, contract calls, staking, governance proposals. The 59x key and 52x signature expansion is mitigated by pruning after finality.
|
|
|