ECDSA Signing Process
The Process of ECDSA Signing in a Two-Party System
Last updated
The Process of ECDSA Signing in a Two-Party System
Last updated
The Elliptic Curve Digital Signature Algorithm (ECDSA) involves a two-party process where neither party knows the private key , yet they can jointly create a signature on a message . Here's an overview of the ECDSA signing function:
Nonce Generation and Computation:
A random nonce is chosen, and is computed.
The "x-coordinate" of the elliptic-curve point is denoted as .
Signature Computation:
The signature component is calculated as .
Signature Output:
The signature is output as a pair .
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 and and exchange and . Commitment schemes are used for security.
generates a Paillier key-pair and sends to , along with a zero-knowledge proof.
Signature Generation on Message :
Parties independently generate and , and exchange and .
The nonce and are set as and .
computes a "partial signature" using the homomorphic properties of the encryption, performing a series of encrypted operations.
decrypts the received ciphertext, multiplies it by to obtain , and verifies the signature .
Security Considerations
Protection Against Private Key Exposure: The protocol ensures neither party knows or the private key .
Handling Corrupt Parties: If is corrupt, it can provide incorrect encryption, but since verifies the signature first, no advantage is gained by from this.