Prerequisites & Notation

Before You Begin

Shamir's secret sharing is built from finite-field polynomial evaluation and interpolation. The prerequisites are therefore elementary algebra over Fq\mathbb{F}_q. Readers who have not seen finite fields before should spend fifteen minutes with the self-checks below — the subsequent chapters of this book reuse these tools repeatedly.

  • Finite field Fq\mathbb{F}_q with qq a prime or prime power

    Self-check: What is 35mod73 \cdot 5 \bmod 7? What is the multiplicative inverse of 33 in F7\mathbb{F}_7?

  • Polynomial arithmetic in Fq[x]\mathbb{F}_q[x]

    Self-check: Given p(x)=x2+2x+1p(x) = x^2 + 2x + 1 in F7[x]\mathbb{F}_7[x], compute p(3)p(3) and p(5)p(5).

  • Lagrange interpolation of a polynomial from its values

    Self-check: Can you state the Lagrange interpolation formula for a polynomial of degree t1t-1 given its values at tt distinct points?

  • Entropy and conditional entropy of discrete random variables(Review ch01)

    Self-check: If XX is uniform on {0,1,,q1}\{0, 1, \ldots, q-1\}, what is H(X)H(X)? What about H(XY)H(X \mid Y) when YY is independent of XX?

  • Chapter 2 of this book: distributed-computing framework(Review ch02)

    Self-check: Can you state the (μ,Δ,K)(\mu, \Delta, K) characterization of a coded-shuffling scheme?

Notation for This Chapter

Secret-sharing notation. We use nn for the number of parties (to avoid collision with NN = workers in the coded-computing chapters), and tt for the reconstruction threshold.

SymbolMeaningIntroduced
ssThe secret, an element of Fq\mathbb{F}_qs01
nnNumber of parties among whom the secret is shareds01
ttReconstruction threshold (any tt shares recover ss)s01
sks_kShare held by party kks01
p(x)p(x)Shamir polynomial of degree t1t-1 with p(0)=sp(0) = ss02
αk\alpha_kEvaluation point for party kk (distinct nonzero elements)s02
Fq\mathbb{F}_qFinite field of order qq (prime or prime power); need q>nq > ns02
k(x)\ell_k(x)Lagrange basis polynomial for evaluation point αk\alpha_ks02
ggRamp width: secret is split into gg chunks (ramp scheme)s04
Rshareshare/secretR_{\text{share}} \triangleq |\text{share}|/|\text{secret}|Share-size / secret-size ratio; Rshare=1R_{\text{share}} = 1 for Shamir, 1/g1/g for gg-ramps04