Back to all stories
Technical Blogs
Technical Insights

Threshold Cryptography IV: Multiplicative-to-Additive (MtA) Protocol and Paillier Encryption Scheme

8/10/2025
Threshold Cryptography IV: Multiplicative-to-Additive (MtA) Protocol and Paillier Encryption Scheme

In our recent post, Threshold Cryptography III, we discussed how the challenge of constructing a threshold variant of ECDSA was addressed in the GG18 [3] through the use of the Multiplicative-to-Additive (MtA) protocol. This MtA protocol is employed in the initial 3 rounds of the 9-round threshold ECDSA protocol implemented in Binance tss-lib [1].

In this post, we provide a detailed examination of the MtA protocol, which utilizes the additively homomorphic properties of the Paillier encryption scheme to facilitate the exchange of encrypted secret shares among the participating parties.

Paillier Encryption Scheme

The Paillier additive homomorphic encryption scheme is employed in the MtA protocol to encrypt and decrypt exchanged secret shares. It supports additive homomorphism over a large modulus (typically of 2048 bits in size), which is substantially larger than the scalar field of the Secp256k1 elliptic curve. Homomorphic encryption is a term that simply means we are able to perform the operations on the encrypted message without requiring decryption, thereby preserving the confidentiality of the original message during computation.

Paillier Key Generation

Generate two large primes

KaTeX can only parse string typed expression
,
KaTeX can only parse string typed expression
(called safe primes, for example, of 1024 bits), where
KaTeX can only parse string typed expression
,
KaTeX can only parse string typed expression
and both
KaTeX can only parse string typed expression
,
KaTeX can only parse string typed expression
are primes. The Paillier public key is
KaTeX can only parse string typed expression
(i.e., an RSA modulus) and an additional public value
KaTeX can only parse string typed expression
, the private key is the Carmichael function of
KaTeX can only parse string typed expression
,
KaTeX can only parse string typed expression
, where
KaTeX can only parse string typed expression
is the function to compute the least common multiple of two integers.

Encryption

Given a message (plaintext)

KaTeX can only parse string typed expression
, the encryption
KaTeX can only parse string typed expression
of the message
KaTeX can only parse string typed expression
is called a ciphertext
KaTeX can only parse string typed expression
KaTeX can only parse string typed expression
, where
KaTeX can only parse string typed expression
is a randomly generated integer that is coprime with
KaTeX can only parse string typed expression
.

Decryption

Given a ciphertext

KaTeX can only parse string typed expression
in the multiplicative group
KaTeX can only parse string typed expression
(elements in
KaTeX can only parse string typed expression
that has inverse), the decryption
KaTeX can only parse string typed expression
of
KaTeX can only parse string typed expression
is
KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
, where
KaTeX can only parse string typed expression
is a function defined as
KaTeX can only parse string typed expression
over
KaTeX can only parse string typed expression
such that
KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
.

Correctness of Encryption and Decryption

Decryption in the Paillier encryption scheme is the inverse of encryption, which means that applying the decryption function

KaTeX can only parse string typed expression
to a ciphertext
KaTeX can only parse string typed expression
yields the original message:
KaTeX can only parse string typed expression
Given the Paillier encryption function:

KaTeX can only parse string typed expression

, using the binomial expansion of

KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
, and eliminating the terms divisible by
KaTeX can only parse string typed expression
gives us
KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
KaTeX can only parse string typed expression
, the ciphertext becomes
KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
.

For decryption,

KaTeX can only parse string typed expression

applying the binomial expansion on the numerator and the denominator with modulus

KaTeX can only parse string typed expression
, then the numerator is

KaTeX can only parse string typed expression

and the denominator is

KaTeX can only parse string typed expression

By Carmichael's theorems, for any

KaTeX can only parse string typed expression
, it holds that
KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
. Applying this result within the numerator and leveraging the binomial expansion, we obtain
KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
.

As a result, the exponentiated ciphertext

KaTeX can only parse string typed expression
simplifies such that the numerator in the decryption function becomes
KaTeX can only parse string typed expression
.

Therefore, the decryption function evaluates as:

KaTeX can only parse string typed expression
which correctly recovers the original message
KaTeX can only parse string typed expression
.

Additive Homomorphism

The Paillier encryption scheme supports additive homomorphism over the message space

KaTeX can only parse string typed expression
. Specifically, given any two messages
KaTeX can only parse string typed expression
, and two ciphertexts
KaTeX can only parse string typed expression
such that
KaTeX can only parse string typed expression
,
KaTeX can only parse string typed expression
, the Paillier encryption satisfies:

KaTeX can only parse string typed expression

where the multiplication

KaTeX can only parse string typed expression
is performed in the multiplicative group
KaTeX can only parse string typed expression
. For two messages
KaTeX can only parse string typed expression
and
KaTeX can only parse string typed expression
, the ciphertexts are
KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
,
KaTeX can only parse string typed expression
mod
KaTeX can only parse string typed expression
. Then
KaTeX can only parse string typed expression
which is
KaTeX can only parse string typed expression
.

MtA Protocol

While the 3-round MtA protocol was briefly introduced in the previous post, we now provide a more detailed description in the context of the Paillier cryptosystem, including the associated range proofs over encrypted secret shares. In addition to the previously defined RSA modulus used in the Paillier encryption scheme, each party

KaTeX can only parse string typed expression
is also instantiated with an auxiliary RSA module
KaTeX can only parse string typed expression
along with two values
KaTeX can only parse string typed expression
,
KaTeX can only parse string typed expression
in
KaTeX can only parse string typed expression
, which are required for creating range proofs based on commitment schemes.

Assume that each party possesses the Paillier public key and corresponding RSA modulus, with all public parameters securely generated, publicly disclosed, and verified by other parties. The MtA protocol executes between any two parties, typically denoted Alice and Bob. Recall that the goal of MtA protocol is to redistribute the multiplicative shares

KaTeX can only parse string typed expression
into additive shares
KaTeX can only parse string typed expression
such that
KaTeX can only parse string typed expression
, where
KaTeX can only parse string typed expression
is the scalar field of the Secp256k1 curve.

The following steps are based on the interactive algorithms defined in GG18 [3], where the sender (Prover) and receiver (Verifier) engage in a sequence of message exchanges. In practical implementations, these interactive protocols are typically converted into non-interactive counterparts using the Fiat–Shamir transformation, thereby removing the need for back-and-forth communication while preserving soundness in the random oracle model.

Round 1

The initiator (i.e., Alice) of MtA(MtAwc) protocol performs the following operations.

  1. Encrypts the secret share
    KaTeX can only parse string typed expression
    with its Paillier public key
    KaTeX can only parse string typed expression
    using the Paillier encryption scheme.
  2. Creates a range proof of
    KaTeX can only parse string typed expression
    to prove she knows
    KaTeX can only parse string typed expression
    .
  3. Sends the encrypted share
    KaTeX can only parse string typed expression
    and the range proof of
    KaTeX can only parse string typed expression
    to Bob via p2p.

Refer to GG18 [3], Page 9:

Code 1

The range proof proceeds as follows on Page 28 of GG18 [3]:

Code 2

Round 2

Upon receiving the encrypted share

KaTeX can only parse string typed expression
and the range proof,

  1. Bob verifies the range proof as in the above algorithm.
  2. If the verification succeeds, Bob then randomly generates
    KaTeX can only parse string typed expression
    .
  3. Computes
    KaTeX can only parse string typed expression
    (in a different notation) and sets its secret share as
    KaTeX can only parse string typed expression
    mod
    KaTeX can only parse string typed expression
    .
  4. Creates a Bob proof for MtA to prove
    KaTeX can only parse string typed expression
    ,
    KaTeX can only parse string typed expression
    , or a Bob proof for MtAwc (MtA with check) to prove
    KaTeX can only parse string typed expression
    ,
    KaTeX can only parse string typed expression
    and he also knows
    KaTeX can only parse string typed expression
    , as shown in the following algorithm.
  5. Sends encrypted share
    KaTeX can only parse string typed expression
    and the Bob proof to Alice via p2p.

Refer to GG18 [3], Page 9:

Code 3

Refer to GG18 [3], Page 31 for range proof in MtA:

Code 4

Refer to GG18 [3], Page 30 for range proof in MtAwc:

Code 5

Round 3

Upon receiving the encrypted share

KaTeX can only parse string typed expression
and the Bob proof,

  1. Alice verifies the Bob proof as in the above algorithms.
  2. If the verification succeeds, Alice decrypts
    KaTeX can only parse string typed expression
    to obtain
    KaTeX can only parse string typed expression
    with its Paillier private key and sets
    KaTeX can only parse string typed expression
    mod
    KaTeX can only parse string typed expression
    as its additive share.

Refer to GG18 [3], Page 9:

Code 6

At the conclusion of the MtA(MtAwc) protocols, Alice and Bob collaboratively converts the multiplicative share

KaTeX can only parse string typed expression
into additive shares
KaTeX can only parse string typed expression
and
KaTeX can only parse string typed expression
such that:

KaTeX can only parse string typed expression
where:

  • KaTeX can only parse string typed expression
    is known only to Alice;
  • KaTeX can only parse string typed expression
    is known only to Bob;
  • and
    KaTeX can only parse string typed expression
    is the scalar field of the Secp256k1 curve.

The resulting additive sharing ensures that neither party learns the value of

KaTeX can only parse string typed expression
directly, preserving the secrecy of their respective inputs.

Conclusion

This post reviewed the MtA(MtAwc) protocols instantiated using the Paillier additively homomorphic encryption scheme, under the assumption that all participants possess securely generated, publicly known, and mutually verified Paillier public keys and RSA modulus. The verification of these parameters is a non-trivial task, requiring a series of zero-knowledge proofs to ensure their correctness and compliance with cryptographic security requirements. The details of these verification procedures will be discussed in the next post.

References

  1. Binance: https://github.com/bnb-chain/tss-lib
  2. Binance: Binance Open-Sources Threshold Signature Scheme Library
  3. Rosario Gennaro, Steven Goldfeder, 2018: Fast Multiparty Threshold ECDSA with Fast Trustless Setup (GG18)
  4. Ran Canetti, Rosario Gennaro, Steven Goldfeder, Nikolaos Makriyannis, Udi Peled, 2021: UC Non-Interactive, Proactive, Threshold ECDSA with Identifiable Aborts (CGGMP21)