Secret Sharing

From
Revision as of 10:51, 1 December 2004 by Henryk (talk | contribs) (→Example)
Jump to navigation Jump to search

Secret Sharing is used to split a secret (usually a key) into several pieces which are then given to distinct persons so that some of these persons must cooperate to reconstruct the secret.

A Simple Approach

One simple approach to split a secret number D into n pieces D1,D2,…,Dn such that any k pieces are sufficient (and necessary) to reconstruct D is using a k−1 polynomial.

When splitting the secret a random polynomial f(x)=a0+a1x+a2x+…+ak−1xk−1 with a0=D is generated. The Di are calculated as Di=f(i) for i=1,…,n.

Given any k Di it is possible to interpolate the polynomial and calculate f(0) which gives the original secret D.

Example

Let D=4, k=3, n=5, that is: The secret is split into 5 parts of which at least 3 are necessary to reconstruct the secret.

Now generate 2 random numbers a1 and a2, let's say: a1=3,a2=−1 which give the polynomial f(x)=4+3x−1x2. Obviously that's a quadratic function and any 3 points on the function are sufficient to interpolate the function.