Understand RSA Threshold Signatures in CIRCL
mainCIRCL provides an implementation of Protocol 1 from the paper "Practical Threshold Signatures" by Victor Shoup.
Core Concepts
Threshold signatures allow a group of $l$ players to participate in a signing process where at least $k$ players (the threshold) must cooperate to produce a valid signature.
The Lifecycle:
- Setup: A trusted dealer generates $l$ key shares from a single key pair and distributes them to the players.
- Signing Phase: At least $k$ players use their individual key shares and the target message to generate unique signature shares.
- Combination: The $k$ signature shares are combined to form a single, valid signature for the message.
Important Security Limitations
- Not Robust: This implementation is not robust. Corrupted players can prevent non-corrupted players from forming a valid signature because all verification steps have been removed.
- Prime Requirements: Unlike the original paper which requires $p$ and $q$ to be safe primes, this implementation does not enforce that requirement.