cronokirby

(2026-05) LoTRS; Practical Post-Quantum Structured Threshold Ring Signatures from Lattices

2026-05-17

Abstract

Threshold ring signatures (TRS) enable a quorum of TT users to jointly sign a message while hiding which TT of the NN ring members participated, supporting privacy-preserving endorsement in ad-hoc settings. That said, many deployments do not need anonymity over every TT-subset of a ring: when the approval pattern is already public, a structured ring can be sufficient. In this work, we first formalize this setting as a structured threshold ring signature (sTRS) and introduce LoTRS\mathsf{LoTRS}, a lattice-based sTRS that avoids a dedicated leader and keeps interaction to the optimal number of two rounds by separating the threshold signing relation from the anonymity mechanism. To the best of our knowledge, LoTRS\mathsf{LoTRS} is the first construction in which a TRS variant is obtained by combining: (i) an aggregated signing layer: a two-round lattice-based multisignature protocol producing an aggregated signature relation, with (ii) a selection-hiding layer: a 11-out-of-NN proof that hides the chosen ring element supporting that relation. While it is natural to use a TT-out-of-NN proof to build a TRS, our LoTRS\mathsf{LoTRS} exploits a 11-out-of-NN proof to significantly improve efficiency. LoTRS\mathsf{LoTRS} concretely instantiates the aggregated signing layer using DualMS\mathsf{DualMS} (Crypto'23) and the selection-hiding layer arising from Esgin et al.'s lattice-based one-out-of-many proof (IEEE S&P'22).

Our (T,NT)(T, N\!\cdot\!T)-LoTRS\mathsf{LoTRS} construction achieves polylog(N,T)\mathsf{polylog}(N, T) signature size and outperforms (T,N)(T, N)-TRS schemes significantly. For example, for N=100N=100 and T=50T=50, our signature size is only 3636 KB, which is 3.5×\approx3.5 \times smaller than the previously best performing lattice-based scheme LastRings\mathsf{LastRings} by Jeon et al (ISC'25). Our Rust reference implementation further supports practicality: for T=16T=16 and N=32N=32, i.e., structured ring size TN=512T\cdot N = 512, it produces 2525 KB signatures, with mean signing time 149149 ms and verification time 4343 ms in a release build on a Ryzen AI 9 HX 370 laptop.