HOME

TheInfoList



OR:

Proactive secret sharing is an underlying technique in Proactive Security Protocols. It is a method to update distributed
keys Key or The Key may refer to: Common meanings * Key (cryptography), a piece of information that controls the operation of a cryptography algorithm * Key (lock), device used to control access to places or facilities restricted by a lock * Key (ma ...
(
shares In financial markets, a share is a unit of equity ownership in the capital stock of a corporation, and can refer to units of mutual funds, limited partnerships, and real estate investment trusts. Share capital refers to all of the shares of an ...
) in a
secret sharing Secret sharing (also called secret splitting) refers to methods for distributing a secret among a group, in such a way that no individual holds any intelligible information about the secret, but when a sufficient number of individuals combine th ...
scheme periodically such that an attacker has less time to compromise shares and as long as the attacker visits less than a threshold or a quorum group, the system remains secure. This contrasts to a non-proactive scheme where if the threshold number of shares are compromised during the lifetime of the secret, the
secret Secrecy is the practice of hiding information from certain individuals or groups who do not have the "need to know", perhaps while sharing it with other individuals. That which is kept hidden is known as the secret. Secrecy is often controvers ...
is compromised. The model which takes time constraints into account was originally suggested as an extension of the notion of
Byzantine fault tolerance A Byzantine fault (also Byzantine generals problem, interactive consistency, source congruency, error avalanche, Byzantine agreement problem, and Byzantine failure) is a condition of a computer system, particularly distributed computing systems, ...
where redundancy of sharing allows robustness into the time domain (periods) and was proposed by
Rafail Ostrovsky Rafail Ostrovsky is a distinguished professor of computer science and mathematics at UCLA and a well-known researcher in algorithms and cryptography. Biography Rafail Ostrovsky received his Ph.D. from MIT in 1992. He is a member of the editor ...
and
Moti Yung Mordechai M. "Moti" Yung is a cryptographer and computer scientist known for his work on cryptovirology and kleptography. Career Yung earned his PhD from Columbia University in 1988 under the supervision of Zvi Galil. In the past, he worked at t ...
in 1991. The method has been used in the areas of cryptographic protocols in
secure multi-party computation Secure multi-party computation (also known as secure computation, multi-party computation (MPC) or privacy-preserving computation) is a subfield of cryptography with the goal of creating methods for parties to jointly compute a function over their ...
and in
threshold cryptosystem A threshold cryptosystem, the basis for the field of threshold cryptography, is a cryptosystem that protects information by encrypting it and distributing it among a cluster of fault-tolerant computers. The message is encrypted using a public key, ...
s.


Motivation

If the players (holders of the shared secret) store their shares on insecure computer servers, an
attacker In some team sports, an attacker is a specific type of player, usually involved in aggressive play. Heavy attackers are, usually, placed up front: their goal is to score the most possible points for the team. In association football Assoc ...
could crack in and steal/learn the shares. Since it is not often practical to change the secret, the un-compromised (honest) ( Shamir-style)
shares In financial markets, a share is a unit of equity ownership in the capital stock of a corporation, and can refer to units of mutual funds, limited partnerships, and real estate investment trusts. Share capital refers to all of the shares of an ...
should be updated in a way that they generate the same secret, yet the old shares are invalidated. There is also a need to recover shares of previously corrupted servers, and the community of honest server is needed to perform the recovery. This assures the longevity of the secure and recoverable sharing, or secure and correct secure computation protocols. If one needs to maintain sharing while changing the number of servers or the threshold, then proactive method with share recovery enables this, as was originally shown by Frankel and others. The ability of distributing the secret (codeword) and then recovering the distributed shares as the proactive secret sharing method does, was recognized as much needed in storage systems around 2010, and in reaction, coding theorists renamed the method, further refined it, and formalized is as `regenerating codes' and `locally recoverable codes.'


Mathematics

This follows somewhat the work in. In order to update the shares, the dealers (i.e., the persons who gives out the shares; and in a distributed system it is all participants one at a time) generates a new random polynomial with constant term zero and calculates for each remaining player a new ordered pair, where the x-coordinates of the old and new pairs are the same. Each player then adds the old and new y-coordinates to each other and keeps the result as the new y-coordinate of the secret. * The dealer constructs a random polynomial over a field of degree k - 1 where k is the threshold * Each player gets the share x_^ = f^(i) where i \in \, n is the number of players, and x_^ is the share for player i at time interval 0 * The secret can be reconstructed via interpolation of k shares * To update the shares, all parties need to construct a random polynomial of the form \delta_(z) = \delta_z^ + \delta_z^ + ... + \delta_z^ * Each player i sends all other players u_ = \delta_(j) * Each player updates their share by x_^ = x_^ + u_^ + ... + u_^ where t is the time interval in which the shares are valid All of the non-updated shares the attacker accumulated become useless. An attacker can only recover the secret if he can find enough other non-updated shares to reach the threshold. This situation should not happen because the players deleted their old shares. Additionally, an attacker cannot recover any information about the original secret from the update process because it only contains random information. The dealer can change the threshold number while distributing updates, but must always remain vigilant of players keeping expired shares as in. However this is a somewhat limited view since the original methods gives the community of server the ability to be the re-sharing dealer and the regenerator of lost shares.


Example

The following example has 2 shares and a threshold of 2 with 2 players and 1 dealer. Since shares and polynomials are only valid for a certain time period, the time period they are valid is denoted with a superscript. * All parties agree on a finite field: Z_ * The dealer establishes a secret: s = 6 \in Z_ * The dealer constructs a random polynomial over Z_ of degree 2 - 1 (threshold of 2) ** f^(x) = 6 + 2 \times x ** note f^(0) = s = 6 * Player 1 gets share x_^ = f^(1) = 6 + 2 \times 1 = 8 and player 2 gets share x_^ = f^(2) = 6 + 2 \times 2 = 10 * To reconstruct the secret, use x_^ and x_^ ** Since f^(x) is a line, we can use point slope form to interpolate ** m = (f^(2) - f^(1)) / (2 - 1) = (x_^ - x_^) / (2 - 1) = (10 - 8) / (2 - 1) = 2 / 1 = 2 ** b = f^(1) - m = x_^ - 2 = 8 - 2 = 6 ** f^(x) = b + m \times x = 6 + 2 \times x ** f^(0) = 6 + 2 \times 0 = 6 = s * To update the shares, all parties need to construct random polynomials of degree 1 such that the free coefficient is zero ** Player 1 constructs \delta_^(z) = \delta_^ \times z^ = 2 \times z^ ** Player 2 constructs \delta_^(z) = \delta_^ \times z^ = 3 \times z^ * Each player evaluates their polynomial and shares some information with other players ** Player 1 computes u_^ = \delta_^(1) = 2 and u_^ = \delta_^(2) = 4 in Z_ ** Player 1 sends Player 2 u_^ ** Player 2 computes u_^ = \delta_^(1) = 3 and u_^ = \delta_^(2) = 6 in Z_ ** Player 2 sends Player 1 u_^ * Each player updates their share by x_^ = x_^ + u_^ + u_^ ** Player 1 computes x_^ = x_^ + u_^ + u_^ = 8 + 2 + 3 = 2 \in Z_ ** Player 2 computes x_^ = x_^ + u_^ + u_^ = 10 + 4 + 6 = 9 \in Z_ * Confirm updated shares generate same original secret ** Use x_^ and x_^ to reconstruct the polynomial f^(x) ** Since f^(x) is a line, we can use point slope ** m = (f^(2) - f^(1)) / (2 - 1) = (x_^ - x_) / (2 - 1) = (9 - 2) / (2 - 1) = 7 / 1 = 7 ** b = f^(1) - m = x_^ - 7 = 2 - 7 = -5 = 6 ** f^(x) = b + m \times x = 6 + 7 \times x ** f^(0) = 6 + 7 \times 0 = 6 = s


See also

*
Key (cryptography) A key in cryptography is a piece of information, usually a string of numbers or letters that are stored in a file, which, when processed through a cryptographic algorithm, can encode or decode cryptographic data. Based on the used method, the key ...
*
Key generation Key generation is the process of generating keys in cryptography. A key is used to encrypt and decrypt whatever data is being encrypted/decrypted. A device or program used to generate keys is called a key generator or keygen. Generation in crypt ...
*
Key distribution In symmetric key cryptography, both parties must possess a secret key which they must exchange prior to using any encryption. Distribution of secret keys has been problematic until recently, because it involved face-to-face meeting, use of a trust ...
*
Key management Key management refers to management of cryptographic keys in a cryptosystem. This includes dealing with the generation, exchange, storage, use, crypto-shredding (destruction) and replacement of keys. It includes cryptographic protocol design, ...
*
Shamir's Secret Sharing Shamir's Secret Sharing (SSS) is an efficient secret sharing algorithm for distributing private information (the "secret") in such a way that no individual holds intelligible information about the secret. To achieve this, the secret is converted ...


References

{{crypto navbox Secret sharing