ECDSA Signing Process

The Process of ECDSA Signing in a Two-Party System

The Elliptic Curve Digital Signature Algorithm (ECDSA) involves a two-party process where neither party knows the private key xx, yet they can jointly create a signature on a message mm. Here's an overview of the ECDSA signing function:

  1. Nonce Generation and Computation:

    • A random nonce kk is chosen, and R=kGR=k⋅G is computed.

    • The "x-coordinate" of the elliptic-curve point RR is denoted as rr.

  2. Signature Computation:

    • The signature component ss is calculated as s=k1(H(m)+rx)modqs=k−1⋅(H(m)+r⋅x)modq.

  3. Signature Output:

    • The signature is output as a pair (r,s)(r,s).

Additively Homomorphic Encryption in ECDSA

  • Encryption Type: The process uses additively homomorphic encryption, which allows for encrypted values to be efficiently added or multiplied by a scalar without decryption. Paillier encryption, a common form of this encryption, is often used.

Two-Party Computation Steps

  • Key Generation:

    • Parties choose random 1x11x1 and 2x22x2 and exchange Q1=x1GQ1=x1⋅G and Q2=x2GQ2=x2⋅G. Commitment schemes are used for security.

    • 1P11P1 generates a Paillier key-pair (pk,sk)(pk,sk) and sends ckey=Encpk(x1)ckey​=Encpk​(x1) to 2P22P2, along with a zero-knowledge proof.

  • Signature Generation on Message mm:

    • Parties independently generate 1k11k1 and 2k22k2, and exchange R1=k1GR1=k1⋅G and R2=k2GR2=k2⋅G.

    • The nonce kk and RR are set as k=k1k2k=k1⋅k2 and R=k1R2=k2R1R=k1⋅R2=k2⋅R1.

    • 2P22P2 computes a "partial signature" using the homomorphic properties of the encryption, performing a series of encrypted operations.

    • 1P11P1 decrypts the received ciphertext, multiplies it by 11k111−1k1−1​ to obtain ss, and verifies the signature (r,s)(r,s).

Security Considerations

  • Protection Against Private Key Exposure: The protocol ensures neither party knows kk or the private key xx.

  • Handling Corrupt Parties: If 2P22P2 is corrupt, it can provide incorrect encryption, but since 1P11P1 verifies the signature first, no advantage is gained by 2P22P2 from this.

Last updated