Secret Sharing: Difference between revisions

From
Jump to navigation Jump to search
Content deleted Content added
Henryk (talk | contribs)
Henryk (talk | contribs)
 
Line 17: Line 17:
The image shows the resultant function (in red), the original secret (in green, at <math>x=0</math>) and the 5 new secret parts (in blue).
The image shows the resultant function (in red), the original secret (in green, at <math>x=0</math>) and the 5 new secret parts (in blue).


To reconstruct the original secret any 3 secret parts (let's say <math>D_2, D_3</math> and <math>D_5</math> are merged together:
To reconstruct the original secret any 3 secret parts (let's say <math>D_2, D_3</math> and <math>D_5</math>) are merged together:
[[Image:Secret-Sharing-merging.png]]
[[Image:Secret-Sharing-merging.png]]


Line 30: Line 30:
The image shows five of them (for <math>a_2 = -3</math>, <math>a_2 = -2</math>, <math>a_2 = -1</math>, <math>a_2 = 0</math> and <math>a_2 = 1</math>):
The image shows five of them (for <math>a_2 = -3</math>, <math>a_2 = -2</math>, <math>a_2 = -1</math>, <math>a_2 = 0</math> and <math>a_2 = 1</math>):
[[Image:Secret-Sharing-security.png]]
[[Image:Secret-Sharing-security.png]]
<table border="1" style="text-align: right">
<tr><th><math>a_0</math></th><th><math>a_1</math></th><th><math>a_2</math></th></tr>
<tr><td>16</td><td>-7</td><td>1</td></tr>
<tr><td>10</td><td>-2</td><td>0</td></tr>
<tr><td>4</td><td>3</td><td>-1</td></tr>
<tr><td>-2</td><td>8</td><td>-2</td></tr>
<tr><td>-8</td><td>13</td><td>-3</td></tr>
</table>

Latest revision as of 13:15, 1 December 2004

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 k1 polynomial.

When splitting the secret a random polynomial f(x)=a0+a1x+a2x++ak1xk1 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+3x1x2. Obviously that's a quadratic function and any 3 points on the function are sufficient to interpolate the function.

The image shows the resultant function (in red), the original secret (in green, at x=0) and the 5 new secret parts (in blue).

To reconstruct the original secret any 3 secret parts (let's say D2,D3 and D5) are merged together:

Then the polynomial is interpolated and f(0) computed:

Let's suppose we wanted to reconstruct the shared secret but only had two of the parts: D2 and D3. This gives two equations:

  • 6=a0+2a1+4a2
  • 4=a0+3a1+9a2

with three unknown variables thus allowing for infinitely many solutions which are all equally likely.

The image shows five of them (for a2=3, a2=2, a2=1, a2=0 and a2=1):

a0a1a2
16-71
10-20
43-1
-28-2
-813-3