Secret sharing

Problem:

  • nn persons want to share a secret.

  • Any group of tt persons can recover the secret.

  • Obviously, n1n \ge 1 and 1tn1 \le t \le n.

  • On a computer program, the secret will ultimately be an integer.

How to do it:

  • A trusted central entity prepares and distributes part of the secret (a secret share) to each person.

Hurdles to overcome:

  • Knowing t1t - 1 shares of the secret must not give any information about the secret.

Resilience to tampering:

  • To destroy the secret nt+1n - t + 1 secret shares have to be corrupted.

Idea 1 - n = t

Let the secret be the integer SS, and let it have kk bits.

Let the first n1n-1 shares of the secret, s1s_1to sn1s_{n-1}, be random integers with kk bits.

Let the last share of the secret be the exclusive-or of the secret with all the other shares of the secret (\oplus donates here the bit-wise exclusive-or binar operator)

sn=Ss1s2...sn1s_n = S \oplus s_1 \oplus s_2 \oplus ... \oplus s_{n-1}

To recover the secret it is only necessary to perform an exclusive-or of all secret shares.

sn=s1s2...sns_n = s_1 \oplus s_2 \oplus ... \oplus s_{n}

Knowledge of n1n-1 secret shares does not give any information about the secret.

It is possible to replace the bit-wise exclusive-or operations with additions and subtractions modulo mm. In this case, the first n1n-1 secret shares are random integers from 0 to m1m-1, and the last secret share is (Ss1s2...sn1)modm(S-s_1-s_2-...-s_{n-1})mod m. To recover the secret it is only necessary to add all secret shares (modulo mm, of course). If mm is a prime number, we can replace addition by multiplication.

Idea 2

Blakley's secret sharing scheme:

  • The secret is a point a PP in a tt-dimensional space.

  • Each share of the secret is a linear equation (with tt unkowns) that has PP has one of its solutions.

  • Putting together tt equations allows us to find PP.

  • It is necessary to ensure that the system of equations has a unique solution for all possible Ctn=n!t!(nt)!C^n_t= \frac{n!}{t!(n-t)!} possible combinations of tt equations chosen from the nn equations, and that is cumbersome.

  • Each share of the secret is composed by t+1t + 1 numbers.

  • Improved security: the secret is kept only in one of the coordinates of the point PP.

  • Modular arithmetic should be used.

Idea 3

Shamir’s secret sharing scheme:

  • The secret in the independent coefficient a0a_0 of a polynomial of degree t1t − 1,

  • A(x)=k=0t1=akxkA(x) = \sum^{t-1}_{k=0}= a_kx^k

  • Each secret share in the pair (xk,A(xk))(x_k, A(x-k)).

  • Again, modular arithmetic should be used.

  • Each share of the secret is composed by only 2 numbers.

Things to think about:

  • Can we do it using square matrices for the aka^k coefficients?

  • And how about for the ak coefficients and the xkx_k values?

Polynomial Interpolation

Given points (xk,yk)(x_k,y_k), for k=0,1,...,nk = 0, 1, ... , n, with xixjx_i \ne x_j for iji \ne j , compute the unique polynomial of degree nn that passes through these points.

  • Newton’s interpolation formula:

    • P0(x)=y0P_0(x) = y_0, and for k=1,2,...,nk = 1, 2, ..., n

  • Lagrange’s interpolation formula:

If arithmetic modulo pp is used we must have xixj(modp)x_i \ne x_j (mod p) for iji \ne j . If so, all modular inverses needed by Newton’s or Lagrange’s interpolation formulas exist.

Last updated