Key Generation

Generating Secure Elliptic-Curve Keys Without Exposing the Private Key

A two-party method can be used to generate a public key for elliptic-curve signing (such as ECDSA or EdDSA). This two-party approach can be used to generate a public key QQ without either party knowing the private key xx. Here's how it works:

  • Concept of Elliptic-Curve Keys: The private key xx corresponds to a public key QQ, defined as Q=xGQ=x⋅G, where GG is the generator of the elliptic-curve group.

  • Objective: The goal is for party 1P11P1 to hold a share 1x11x1, and party 2P22P2 to hold a share 2x22x2, with the condition 2x=x1+x22x=x1+x2.

The Process of Two-Party Key Generation

  • Initial Step: Each party independently selects a random value: 1P11P1 chooses 1x11x1 and computes Q1=x1GQ1=x1⋅G, and 2P22P2 chooses 2x22x2 and computes Q2=x2GQ2=x2⋅G.

  • Exchange and Calculation: 1P11P1 and 2P22P2 exchange 1Q11Q1 and 2Q22Q2 respectively, and each then defines 2Q=Q1+Q22Q=Q1+Q2. By elliptic-curve properties, Q=(x1+x2)G=xGQ=(x1+x2)⋅G=x⋅G, thus generating the public key without exposing xx.

Addressing Security Concerns

  • Problem with Initial Approach: If 2P22P2 is corrupt, it could bias QQ by waiting for 1Q11Q1 from 1P11P1 and then choosing 2Q22Q2 to manipulate QQ.

  • Solution - Commitment Scheme: To prevent this, 1P11P1 sends a commitment to 1Q11Q1, essentially a cryptographic "envelope" that hides 1Q11Q1 but binds 1P11P1 to it. After 2P22P2 sends 2Q22Q2, 1P11P1 reveals 1Q11Q1.

  • Ensuring Randomness and Security: This method ensures that 1Q11Q1 and 2Q22Q2 are chosen independently. If one party is honest, the result is random and secure. Neither party knows xx, as it's only additively shared between them.

Last updated