Secret Sharing: Difference between revisions

From
Jump to navigation Jump to search
Content deleted Content added
Henryk (talk | contribs)
Henryk (talk | contribs)
 
(One intermediate revision by the same user not shown)
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 26: Line 26:
* <math>6 = a_0 + 2 a_1 + 4 a_2</math>
* <math>6 = a_0 + 2 a_1 + 4 a_2</math>
* <math>4 = a_0 + 3 a_1 + 9 a_2</math>
* <math>4 = a_0 + 3 a_1 + 9 a_2</math>
with three unknown variables thus allowing for infinitely many solutions.
with three unknown variables thus allowing for infinitely many solutions which are all equally likely.

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]]
<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