mirror of
https://github.com/lux-apps/papers.git
synced 2026-11-03 05:07:46 +00:00
Ringtail (Boschini et al., ePrint 2024/1113) is third-party prior art; Lux's Corona (Ring-LWE = Module-LWE rank-1) builds on it; Pulsar is Module-LWE rank-k. Retired the conflated boschini2024corona/corona2024/coronago/... bib keys to the single canonical ringtail/corona/pulsar/magnetar keys, rewrote \cite + \bibitem by context, and fixed 'Pulsar (Ring-LWE)' mislabels (Corona where corona.metal/ single-ring/Ringtail-derived; Pulsar where Module-LWE rank-k/ML-DSA). Cryptographer-led.
86 lines
2.3 KiB
TeX
86 lines
2.3 KiB
TeX
\section{Dual-Signature Quantum Security}
|
|
|
|
|
|
M-Chain implements a phased approach to quantum resistance through dual signatures.
|
|
|
|
\subsection{DualSigTx Transaction Type}
|
|
|
|
|
|
|
|
\begin{algorithmic}[1]
|
|
\State \textbf{struct} DualSigTx:
|
|
\State \quad $SwapID$: X-Chain transaction ID
|
|
\State \quad $AssetID$: Asset identifier
|
|
\State \quad $ClassicalSig$: CGG21/MuSig2 signature
|
|
\State \quad $ClassicalBitmap$: Classical signers
|
|
\State \quad $QuantumSig$: Corona signature
|
|
\State \quad $QuantumBitmap$: Quantum signers
|
|
\State \quad $ProofHash$: Combined proof hash
|
|
\end{algorithmic}
|
|
|
|
|
|
\subsection{Phase Transition}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{@{}llll@{}}
|
|
\toprule
|
|
\textbf{Phase} & \textbf{Classical Sig} & \textbf{Quantum Sig} & \textbf{Validity} \\
|
|
\midrule
|
|
Phase 0 & Required & Not generated & Classical only \\
|
|
Phase 1 & Required & Generated & Classical validates \\
|
|
Phase 2 & Required & Required & Both validate \\
|
|
Phase 3 & Optional & Required & Quantum primary \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
|
|
\label{tab:quantum-phases}
|
|
\end{table}
|
|
|
|
|
|
|
|
\begin{algorithmic}[1]
|
|
\State \textbf{function} \textsc{ValidateDualSig}($tx, state$)
|
|
\State $phase \gets state.QuantumPhase$
|
|
\State
|
|
\If{$phase \geq 1$}
|
|
\State \textbf{Verify classical signature}
|
|
\State $validClassical \gets \text{VerifyCGG21}(tx.ClassicalSig, \ldots)$
|
|
\If{not $validClassical$}
|
|
\State \Return $\texttt{INVALID\_CLASSICAL}$
|
|
\EndIf
|
|
\EndIf
|
|
\State
|
|
\If{$phase \geq 2$}
|
|
\State \textbf{Verify quantum signature}
|
|
\State $validQuantum \gets \text{VerifyCorona}(tx.QuantumSig, \ldots)$
|
|
\If{not $validQuantum$}
|
|
\State \Return $\texttt{INVALID\_QUANTUM}$
|
|
\EndIf
|
|
\EndIf
|
|
\State
|
|
\State \Return $\texttt{VALID}$
|
|
\State \textbf{end function}
|
|
\end{algorithmic}
|
|
|
|
|
|
\subsection{Security Analysis}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{@{}lll@{}}
|
|
\toprule
|
|
\textbf{Adversary Type} & \textbf{Classical Sig} & \textbf{Result} \\
|
|
\midrule
|
|
Classical attacker & Secure (128-bit) & Safe \\
|
|
Quantum attacker (Phase 0) & Vulnerable & Vulnerable \\
|
|
Quantum attacker (Phase 1) & Vulnerable & Safe (redundancy) \\
|
|
Quantum attacker (Phase 2+) & Vulnerable & Safe (required) \\
|
|
Both compromised & Compromised & Unsafe \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
|
|
\label{tab:dual-sig-security}
|
|
\end{table}
|
|
|