Files
zeekay abf99d05fc papers: reorganize into per-paper dirs, add Antje Worring as co-author
Restructured from flat .tex/.pdf files into per-paper subdirectories.
Added Antje Worring as co-author on all papers.
Synced PDFs to pdfs/ for download site.
2026-04-18 21:50:07 -07:00

54 lines
1.8 KiB
TeX

\section{Our Go Implementation}
The entire lattice cryptography stack for Lux Network is implemented in Go with SIMD
acceleration via assembly (covered in our companion NTT paper).
\subsection{Package Structure}
\begin{lstlisting}[language=bash,caption={Package layout}]
luxfi/crypto/
lattice/
ring.go # Ring element operations
ntt.go # NTT forward/inverse
ntt_amd64.s # AVX2 NTT butterfly
poly.go # Polynomial arithmetic
sample.go # Sampling (CBD, uniform, challenge)
mlkem/
keygen.go # ML-KEM key generation
encaps.go # Encapsulation
decaps.go # Decapsulation
mldsa/
keygen.go # ML-DSA key generation
sign.go # Signing with rejection sampling
verify.go # Verification
corona/
threshold.go # Threshold operations
share.go # Secret share management
aggregate.go # Partial signature aggregation
\end{lstlisting}
\subsection{Performance}
\begin{table}[H]
\centering
\small
\begin{tabular}{@{}lrrl@{}}
\toprule
\textbf{Operation} & \textbf{Time} & \textbf{vs.\ Reference} & \textbf{Platform} \\
\midrule
ML-KEM-768 KeyGen & 28\,$\mu$s & 1.1x ref C & Apple M2 \\
ML-KEM-768 Encaps & 34\,$\mu$s & 1.2x ref C & Apple M2 \\
ML-KEM-768 Decaps & 38\,$\mu$s & 1.1x ref C & Apple M2 \\
ML-DSA-65 KeyGen & 52\,$\mu$s & 1.3x ref C & Apple M2 \\
ML-DSA-65 Sign & 186\,$\mu$s & 1.4x ref C & Apple M2 \\
ML-DSA-65 Verify & 56\,$\mu$s & 1.2x ref C & Apple M2 \\
NTT-256 (pure Go) & 3.1\,$\mu$s & 2.8x ref C & Apple M2 \\
NTT-256 (AVX2) & 0.9\,$\mu$s & 0.95x ref C & AMD Zen 4 \\
\bottomrule
\end{tabular}
\caption{Performance of Lux Network's Go lattice crypto implementation.}
\end{table}
%% ============================================================