package private_join_and_compute

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

service PrivateJoinAndComputeRpc

private_join_and_compute.proto:37

gRPC interface for Private Join and Compute.

message EcKeyProto

ec_key.proto:26

message ElGamalCiphertext

elgamal.proto:82

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.

message ElGamalPublicKey

elgamal.proto:43

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.

message ElGamalSecretKey

elgamal.proto:66

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.

message EncryptedElement

match.proto:26

Holds an encrypted value and possibly encrypted associated data.

Used in: EncryptedSet

message EncryptedSet

match.proto:21

Holds a set of encrypted values.

Used in: PrivateIntersectionSumClientMessage.ClientRoundOne, PrivateIntersectionSumServerMessage.ServerRoundOne

message PaillierPrivateKey

paillier.proto:30

message PaillierPublicKey

paillier.proto:21

Holds a Paillier Public Key.

message PrivateIntersectionSumClientMessage

private_intersection_sum.proto:24

Used in: ClientMessage

message PrivateIntersectionSumClientMessage.ClientRoundOne

private_intersection_sum.proto:35

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: PrivateIntersectionSumClientMessage

message PrivateIntersectionSumClientMessage.StartProtocolRequest

private_intersection_sum.proto:31

For initiating the protocol.

Used in: PrivateIntersectionSumClientMessage

(message has no fields)

message PrivateIntersectionSumServerMessage

private_intersection_sum.proto:44

Used in: ServerMessage

message PrivateIntersectionSumServerMessage.ServerRoundOne

private_intersection_sum.proto:50

Used in: PrivateIntersectionSumServerMessage

message PrivateIntersectionSumServerMessage.ServerRoundTwo

private_intersection_sum.proto:54

Used in: PrivateIntersectionSumServerMessage