Get desktop application:
View/edit binary Protocol Buffers messages
gRPC interface for Private Join and Compute.
Handles a single protocol round.
Named curve id
Ciphertext of ElGamal encryption scheme. For ElGamal over integers, all the fields are serialized BigNums; for ElGamal over an Elliptic Curve, all the fields are serialized ECPoints. For public key (g, y), message m, and randomness r: u = g^r; e = m * y^r. In exponential ElGamal encryption scheme, for public key (g, y), small message m, and randomness r: u = g^r; e = g^m * y^r.
Public key for ElGamal encryption scheme. For ElGamal over integers, all the fields are serialized BigNums; for ElGamal over an Elliptic Curve, g and y are serialized ECPoints, p is not set. g is the generator of a cyclic group. y = g^x for a random x, where x is the secret key. To encrypt a message m: u = g^r for a random r; e = m * y^r; Ciphertext = (u, e). To encrypt a small message m in exponential ElGamal encryption scheme: u = g^r for a random r; e = g^m * y^r; Ciphertext = (u, e). Note: The exponential ElGamal encryption scheme is an additively homomorphic encryption scheme, and it only works for small messages.
modulus of the integer group
Secret key (or secret key share) for ElGamal encryption scheme. x is a serialized BigNum. To decrypt a ciphertext (u, e): m = e * (u^x)^{-1}. To decrypt a ciphertext (u, e) in exponential ElGamal encryption scheme: m = log_g (e * (u^x)^{-1}). In a 2-out-of-2 threshold ElGamal encryption scheme, for secret key shares x_1 and x_2, the ElGamal secret key is x = x_1 + x_2, satisfying y = g^x for public key (g, y). To jointly decrypt a ciphertext (u, e): Each party computes (u^{x_i})^{-1}; m = e * (u^{x_1})^{-1} * (u^{x_2})^{-1}, or m = log_g (e * (u^{x_1})^{-1} * (u^{x_2})^{-1}) in exponential ElGamal.
Holds an encrypted value and possibly encrypted associated data.
Used in:
Holds a set of encrypted values.
Used in:
,p and q contain serialized BigNums, such that the Paillier modulus n=pq.
Contains the Damgard-Jurik exponent corresponding to this key. The Paillier modulus will be n^(s+1), and the message space will be n^s.
Holds a Paillier Public Key.
Contains a serialized BigNum encoding the Paillier modulus n.
Contains the Damgard-Jurik exponent corresponding to this key. The Paillier modulus will be n^(s+1), and the message space will be n^s.
Used in:
Message containing the client's set encrypted under the client's keys, and the server's set re-encrypted with the client's key, and shuffled.
Used in:
For initiating the protocol.
Used in:
(message has no fields)
Used in:
Used in:
Used in: