mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
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.
54 lines
1.8 KiB
TeX
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}
|
|
|
|
%% ============================================================
|