Files
papers/lp-137-gpu-crypto-stack/sections/03-per-algorithm-spec.tex

38 lines
2.7 KiB
TeX

\section{Per-Algorithm Specification (Pointer)}
\label{sec:per-algorithm-spec}
LP-137 carries no per-algorithm formal content. Each primitive in the stack is specified in its own LP, organized one LP per algorithm. The full per-algorithm index lives in \texttt{LP-INDEX.md} of \texttt{luxfi/lps}. The scope covered here is the Lux GPU substrate (\S\ref{sec:architecture}), the byte-equality contract (\S\ref{sec:determinism-harness}), the GPU-residency invariant, and the production performance methodology (\S\ref{sec:performance}).
Per-algorithm LPs of immediate relevance to LP-137 are summarized in Table~\ref{tab:lp-pointers} below; consult each LP for parameters, algorithm pseudocode, KAT sources, implementation paths, and security analysis.
\begin{table}[H]
\centering
\small
\begin{tabular}{lll}
\toprule
\textbf{Family} & \textbf{Algorithm range} & \textbf{LPs}\\
\midrule
Hash & SHA-256, Keccak-256, RIPEMD-160, BLAKE2b, BLAKE3, Poseidon2 & 148, 149, 150, 151, 126, 069 \\
AEAD & AES-256-GCM, ChaCha20-Poly1305 & 116, 117 \\
Curve & secp256k1, secp256r1, Ed25519, Curve25519, X25519 & 147, 123, 124, 112, 114 \\
Curve (pairing) & BN254, BLS12-381, Banderwagon, Baby Jubjub, Pasta & 146, 075/110, 152, 111, 113 \\
Commitment & KZG, Pedersen, IPA, Verkle & 118, 119, 153, 026 \\
Lattice & NTT, poly\_mul & 029, 159 \\
PQ Sig & ML-DSA, SLH-DSA, FALCON, Lamport & 070, 071, 074, 156 \\
PQ KEM & ML-KEM, X-Wing & 072, 115 \\
Threshold & Pulsar, FROST, CGGMP21, Shamir, Universal & 073, 154, 155, 077, 076 \\
FHE & TFHE & 013, 066 \\
EVM Precompile & evm256, modexp & 157, 158 \\
Misc & ECVRF, ECIES, HPKE & 131, 121, 122 \\
Attestation & Remote (TEE) & 127 \\
\midrule
Accel kernel & batch-inv, multi-curve MSM, combined Miller, Karatsuba modexp, & 160, 161, 162, 163, \\
& six-step NTT, Pedersen tree-reduce, threshold pre-sign & 164, 165, 166 \\
\bottomrule
\end{tabular}
\caption{Per-algorithm LP pointers. Each LP is the canonical formal spec for its primitive; LP-137 (this paper) is the GPU substrate that all of them share. LP-160 through LP-166 \cite{lp160,lp161,lp162,lp163,lp164,lp165,lp166} are acceleration kernels that consume one or more per-algorithm canonicals (e.g.\ LP-161 consumes LP-075/LP-110/LP-146/LP-147/LP-152) and ship under the same byte-equality contract.}
\label{tab:lp-pointers}
\end{table}
The LPs follow a uniform template (LP-148 SHA-256 \cite{fips180} is the model): \texttt{Abstract / Specification / Implementation / Test oracle / Security analysis / References}, with the \texttt{Implementation} block always linking the Go canonical, C++ CPU body, and Metal/CUDA/WGSL kernel paths.