Distributed Key Generation (DKG)
We give an overview of Distributed Key Generation (DKG) and describe the DKG protocol used in the paper GJKR99. This, along with the ECVRF, will be two main components for the Distributed Verifiable Random Function (DVRF) protocol used for generating pseudorandom values. First, we give an overview of DKG. Then, we mention Verifiable Secret Sharing (VSS), the main building block for a DKG protocol. Finally, we describe the DKG protocol of GJKR99.
Author(s): phamnhatminh1292001
Overview of DKG
Distributed key generation is a main component of threshold cryptosystems. It allows participants to take part and generate a pair of public key and secret key required for the threshold cryptosystem without having to rely on a trusted party (dealer). Each participant in additional receive a partial secret key and a partial public key. While the public key and partial public keys is seen by everyone, the private key is maintained as a (virtual) secret of a secret sharing scheme, where each share is the partial secret key of a participant GJKR99. No adversary with limited computational power can learn any information of the secret key unless it control the required amount of participants.
DKG Security Properties
As in GJKR99, we wish a DKG protocol to have the following properties:
Correctness:
- There is an efficient algorithm that, given any shares provided by honest parties, output the same unique secret key .
- All honest parties agree on the same value of the public key .
- is uniformly distributed in .
Secrecy:: For any adversary who controls at most participants, he cannot learn any additional information except the value .
Applications
DKG has been used in numerous aspects:
-
Threshold Encryption and Signatures: In threshold cryptosytems, one problem arises: single point of failure. If a single participant fails to follow the protocol, then the entire system will abort. When applied as a component of a threshold cryptosystem, DKG solves this problem by ensuring that any participants who behave honestly will allow the protocol to execute successfully.
-
Identity based Cryptography (IBC): In IBC, a private-key generator (PKG) is required to generate a secret, called the master key and provide private keys to clients using it. Since he know the private key of the client, he can decrypt the messages of the client. A DKG solve this by distributing the PKG into many participants where any adversary who control at most parties cannot compute the master key, and the client receive his secret key by collecting partial private keys from the participants.
-
Distriuted Pseudo-random Functions: Pseudo-random Functions (PRF) and Verifiable Random Functions (VRF) is used to produce values that looks indistinguishable from random. Both require a secret key to compute the output. However, the secret key holder can select the value of the secret key to manipulate the output, or share the secret key with others to benefit himself. This can be prevented by applying a distributed version of PRF or VRF, thus no adversary can learn or affect the value of the secret key.
Verifiable Secret Sharing (VSS)
In this chapter, we discuss about Verifiable Secret Sharing (VSS), the main building block for a DKG protocol. We state the syntax and security properties of a VSS, then describe the VSS construction due to Pedersen.
Introduction
Secret Sharing was first introducted by Shamir in 1979 Shamir79. It allows a person to share a secret among parties such that any subset of parties can use all their shares to reconstruct the secret, while any other (non-authorized) subset learns nothing about the secret from their shares. Shamir proposed a secret sharing scheme in his paper Shamir79. However, in Shamir's scheme, parties can commit wrong shares, leading the protocol to reconstruct the wrong secret, thus a verification process of the shares is required. To solve this problem, Chor et al. CGMA85 introduced Verifiable Secret Sharing.
Syntax and Properties
Syntax
A Verifiable Secret Sharing consists of two phases: Share and Reconstruct as follow:
Share: The dealer has a secret value . Initially, there are parties . The sharing phase may consist of several rounds of interaction between parties. At the end of the phase, each party holds a share that will be required to reconstruct the secret of the dealer later.
Reconstruct: In this phase, each party publishes its share from the sharing phase. Then, from these shares, a reconstruction function will be applied to output the original secret.
Properties
As in BKP11, a VSS need to have the following properties:
Correctness: If is honest, then the reconstruction function outputs at the end of the Reconstruct phase and all honest parties agree on the value .
Secrecy: If is honest, then any adversary that control at most parties does not learn any information about during the Share phase.
Commitment: If is dishonest, then at the end of the sharing phase there exists a value such that at the end of the Reconstruct phase all honest parties agree on .
Pedersen's Construction
We describe a VSS protocol from Pedersen Ped91. This scheme provides perfect information theoretic security against any adversary with unbounded computational power.
Share The dealer chooses two polynomials and such that . Then he compute and . The dealer then broadcasts . Then he gives the party the tuple . This allows to check if is a valid share by checking that
If a party receives a share that does not satisfy , he will complains against the dealer. The dealer must reveal the share that satisfies for each complaining party . If any of the revealed shares does not satisfy the equation, the dealer is marked invalid.
Reconstruct Each participant submits . Everyone can verify if submitted the correct shares by checking if is satisfied. If receives more than complaints, then he is disqualified. Given valid shares, from parties , the secret can be computed as:
The security proof of the protocol can be found in Ped91.
DKG Construction
In this chapter, we describe the DKG protocol in the paper Gennaro et al GJKR99. The protocol can withstand up to dishonest participants, where is the number of participants. Despite the high communication cost, the protocol only need to be executed once in the first round of many threshold cryptosystems, making the DKG communication cost is not a serious matter in these cryptosystems.
Why Gennaro et al's Construction?
Despite there are numerous constructions for DKG, namely GJKR99, there is a reason we choose the DKG protocol of Gennaro et al.
Previously, Pedersen was the first to propose a DKG construction Ped91a. However, Gennaro et al. proved that in Pedersen's DKG, an attacker can manipulate the result of the secret key, making it not uniformly distributed GJKR99.
Canetti et al. CGJKR99 give a construction of a DKG that is secure against an adaptive adversary. However, his construction has worse performance than Gennaro's, since each participant has to use Pedersen's VSS two times. In addition, no adaptive adversary has been able to successfully attack the construction of Gennato et al.
Numerous attempts have been made to reduce the communication cost for a DKG KG09,CS04,CZAPGD20. However, all these schemes require a trusted party. This quite contradict the goal of a DKG.
This make the DKG construction of Gennaro et al. remains a simple, efficient and secure DKG protocol.
Gennaro et al's Construction
The DKG protocol consists of two phases, namely, generating and extracting, working as follows:
Public Parameters: Let be a prime number. Let be a cyclic group of order with generators and . The public parameters of the system are .
Generating: This process works as follows:
- Each participant chooses two random polynomials and and broadcasts for .
- The participant then sends and to .
- Each participant verifies the shares he received from each by checking whether