Secret Sharing
Secret Splitting
Given a secret s, we would like n parties to share the secret so that the following properties hold:
All n parties can get together and recover
s.Less than n parties cannot recover
s.

We can easily generalize the scheme for cases where there are n parties: we generate n-1 random bit strings (with the same number of bits as the secret) as the first n-1 shares. The last share is the result of bitwise XORing the secret with all the other n-1 shares.
(n,t) Secret Sharing
Given a secret s, to be shared among n parties, that sharing should satisfy the following properties:
Availability: greater than or equal to t parties can recover
s.Confidentiality: less than t parties have no information about
s.

To generalize the scheme even further, we have a construction of an (n, t) secret sharing scheme. Now we use the curve that corresponds to a (t-1) degree polynomial:
We randomly select a curve corresponding to such a polynomial that goes through the secret on the y-axis. And then we select n points on the curve. Using the same arguments, we can show that this scheme satisfies both availability and confidentiality properties. (Note: this scheme was invented by Shamir in 1979. The original scheme was defined on a finite field.)
Online Secret Sharing
How to rely on the servers themselves to do re-sharing in a distributed manner after being compromised. No server can ever reconstruct the secret because otherwise the secret could be exposed if the server was compromised.
Proactive Secret Sharing (PSS)
A scheme that allows servers to generate a new set of shares for the same secret from the old shares without reconstructing the secret. In reality, break-ins to a server are very hard to detect. To strengthen the security of a replicated service, we can invoke our PSS periodically (at regular intervals).

The proactive secret sharing between two servers can be performed in the following steps:
Server 1 generates two subshares and from its share using the same secret sharing scheme as the one used to generate and from
s; that is, server 1 randomly selects two subshares and , so that . Server 2 does the same thing to : It randomly generates two subshares and , so that .Server 1 sends to server 2 through a certain secure channel. Server 2 sends to Server 1.
Server 1 has both and and can add them up to get a new share . Server 2, on the other hand, has both and and can generate a new share . Now we show that and constitute a (2, 2) sharing. The sum of these two shares is the sum of all the four subshares, which is the sum of and , which is
s.
These two shares are independent from the old ones because these subshares are generated randomly. Also, no server knows the secret during the entire process. Server 1 generates and and learns from server 2, but server 1 never knows and thus does not know or s. Server 2, on the other hand, never knows and thus does not know or s.

Proactive (n, t) Secret Sharing
Single Server h(x)
For an (n, t) sharing, the original secret function is:
A server selects a function .
For each , the server computers and sends to server (through secure channel).
The new curve where the new shares are selected corresponds to function . Server i then computes the new share .
Decentralized Manner
However, this extension has a severe security flaw. In cases where , it is not enough to let only one server select : if the server that picks is compromised during PSS, then the adversary may know the relationship between new shares and old shares.
As a countermeasure, we ask servers to select different functions:
Server selects randomly a function .
Sever then computes and sends to server (for each ).
The new curve where the new shares are going to be selected corresponds to the function . Therefore, each server i computes the new share .
References:
https://www.cs.cornell.edu/courses/cs513/2000SP/SecretSharing.html
Last updated