The (t,n)(t, n)-Threshold Problem

Why Secret Sharing?

Suppose you want to store a cryptographic key, a medical record, or a nuclear-launch code in a way that no single server can read it, but any authorized coalition of servers can. The requirement has two sides: robustness (some servers may crash, so the secret must still be recoverable) and privacy (some servers may be compromised, so the secret must remain hidden).

Secret sharing is the information-theoretic solution to this problem. A secret ss is split into nn shares s1,,sns_1, \ldots, s_n with two properties: any tt shares reconstruct ss perfectly, and any t1t-1 shares reveal absolutely nothing about ss (not "computationally hard to guess" — literally zero mutual information).

Secret sharing is one of two pillars that support all of Parts II–V of this book (the other is network coding). The coded matrix multiplication of Chapter 5 will evaluate polynomials in exactly the same way Shamir does; the secure aggregation protocols of Chapter 10 will use additive secret sharing; ByzSecAgg (Chapter 11) uses ramp secret sharing explicitly. Spending time on Chapter 3 is the investment that makes the rest of the book readable.

Definition:

(t,n)(t, n)-Threshold Secret-Sharing Scheme

A (t,n)(t, n)-threshold secret-sharing scheme over a finite alphabet S\mathcal{S} consists of two algorithms:

  • Share. A (possibly randomized) function that takes a secret sSs \in \mathcal{S} and produces nn shares s1,,sns_1, \ldots, s_n (one per party).
  • Reconstruct. A deterministic function that takes any subset of tt shares and outputs the secret ss.

The scheme must satisfy two requirements:

  1. Correctness. For every secret ss and every subset T{1,,n}\mathcal{T} \subseteq \{1, \ldots, n\} with T=t|\mathcal{T}| = t, Reconstruct({sk:kT})=s\mathrm{Reconstruct}\bigl(\{s_k : k \in \mathcal{T}\}\bigr) = s.
  2. Perfect Secrecy. For every subset U\mathcal{U} with U<t|\mathcal{U}| < t, the shares {sk:kU}\{s_k : k \in \mathcal{U}\} are statistically independent of ss; equivalently, I(s;{sk:kU})=0I(s; \{s_k : k \in \mathcal{U}\}) = 0.

Any subset of size t\geq t is called authorized; any subset of size t1\leq t-1 is forbidden.

(t,n)(t, n)-Threshold Secret Sharing

A scheme that splits a secret ss among nn parties such that any tt parties can reconstruct ss exactly, but any t1t-1 parties learn absolutely nothing about ss in an information-theoretic sense (I(s;their shares)=0I(s; \text{their shares}) = 0).

Perfect Secrecy

A cryptographic guarantee that the adversary's posterior distribution on the secret equals its prior, regardless of computational power. Equivalent to I(s;view)=0I(s; \text{view}) = 0. Information-theoretic, not computational.

Theorem: Perfect Secrecy Implies shares|\text{share}| \geq |s|

In any (t,n)(t, n)-threshold secret-sharing scheme with perfect secrecy, each share sks_k must have entropy at least as large as the secret itself: H(sk)    H(s),for every k=1,,n.H(s_k) \;\geq\; H(s), \qquad \text{for every } k = 1, \ldots, n. In particular, the total share alphabet has size at least Sn|\mathcal{S}|^n.

Suppose (for contradiction) some share sks_k had entropy less than the secret. Then by a pigeonhole / conditional-entropy argument, an authorized coalition including sks_k would have strictly less information than ss itself — contradicting correctness. The point is that perfect secrecy is expensive: each party must store at least as much data as the secret, no matter how clever the scheme. This is why ramp schemes (Section 3.4) are interesting — they relax perfect secrecy to buy smaller shares.

,

Key Takeaway

Perfect secrecy costs at least one secret-size per share. There is no free lunch: the total storage of a perfectly-secret (t,n)(t, n)-scheme is at least nn times the secret size. Ramp schemes will give up some secrecy to reduce this by a factor of gg — a foundational trade-off we quantify in Section 3.4.

Example: The (n,n)(n, n) Additive Scheme

Describe an (n,n)(n, n)-threshold scheme — where all nn parties must cooperate to reconstruct — and verify both its correctness and perfect secrecy. This scheme is used implicitly in secure aggregation (Chapter 10).

Why We Need t<nt < n

The additive (n,n)(n, n) scheme works only when every party is available. In practice, parties fail — servers crash, users drop out of a federated-learning round, Byzantine workers refuse to respond. The general (t,n)(t, n) problem — any tt of the nn parties suffice — is much harder, because the scheme must be simultaneously correct on every size-tt subset while leaking nothing to every size-(t1)(t-1) subset. Shamir's scheme (Section 3.2) is the canonical solution; its elegance is that a single polynomial simultaneously satisfies all (nt)\binom{n}{t} reconstruction constraints and all (nt1)\binom{n}{t-1} secrecy constraints.

Splitting a Secret Across nn Parties

Conceptual animation: a secret ss is split into nn shares via uniform random noise. Any tt shares reconstruct ss; any t1t-1 shares reveal nothing. The pictorial intuition is that the secret sits at the intersection of tt "curves" (polynomials, hyperplanes, ...), and fewer than tt curves do not determine an intersection.

Common Mistake: XOR Sharing is (n,n)(n, n), Not (t,n)(t, n)

Mistake:

Treat the (n,n)(n, n) XOR / additive scheme as if it supported threshold reconstruction with t<nt < n.

Correction:

The additive scheme of the example above requires all nn shares to reconstruct. Dropping any one share destroys the secret completely (the "missing" share masks everything). For a threshold below nn, one must use a genuinely more sophisticated scheme — Shamir's polynomial construction (Section 3.2) or equivalent. A common implementation bug in federated-learning systems is to use XOR sharing and then discover that the protocol breaks under any user dropout.

Historical Note: Shamir and Blakley: Parallel Discovery in 1979

1979

Adi Shamir and George Blakley independently introduced (t,n)(t, n)-threshold secret sharing in 1979. Shamir's scheme — which we will develop in Section 3.2 — uses polynomial evaluation over a finite field and is the version that dominates modern practice. Blakley's scheme — which we treat in Section 3.3 — uses hyperplanes in a high-dimensional vector space. The two constructions are equivalent up to the field-size overhead (Shamir needs F>n|\mathbb{F}| > n; Blakley uses a more cumbersome geometric encoding), but Blakley's geometric perspective remains valuable for intuition and for certain generalizations. Both schemes originated in the mathematics of polynomial interpolation but crystallized almost simultaneously — a classic example of two independent answers to the same underlying information-theoretic question.

,
⚠️Engineering Note

Secret Sharing in Real Systems

Modern threshold cryptography in the cloud uses secret sharing to split private keys across hardware-security modules (HSMs) run by different providers. AWS KMS with threshold ECDSA, Google Cloud Confidential Computing, and Fireblocks' MPC wallet custody all deploy Shamir-style schemes to guarantee that the loss or compromise of any single HSM does not leak the key. On the blockchain side, threshold-ECDSA wallets in major custodial platforms use (t,n)(t, n)-schemes with t{2,3}t \in \{2, 3\} and n{3,5}n \in \{3, 5\}. The pattern is: never store a cryptographic secret as a single blob; always split.

Practical Constraints
  • AWS KMS threshold ECDSA supports (t,n){(2,3),(3,5)}(t, n) \in \{(2,3), (3,5)\}

  • Fireblocks MPC wallets use a variant of Shamir over F2256\mathbb{F}_{2^{256}}

  • Multi-region HSM deployments typically target t=2n/3t = \lceil 2n/3 \rceil for Byzantine-fault tolerance

📋 Ref: NIST SP 800-60 (threshold cryptography roadmap)

Quick Check

Which of the following statements about a (t,n)(t, n)-threshold secret-sharing scheme with perfect secrecy is TRUE?

A coalition of t1t-1 parties can guess the secret with high probability.

The size of each share can be made arbitrarily small by increasing the field size.

Any tt parties can reconstruct the secret exactly, and any t1t-1 parties have no information about it.

The reconstruction algorithm uses the tt parties' shares and some public randomness shared across the whole system.