Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
,How many bits (more than the challenge bits) to add to each dummy opening (aka sigma protocol lambda). This also impacts the sizes of some masks in the protocol.
How many bits the challenge has.
Serialized ECPoint. Base to use for the Signature.
Public key for the associated CamenischShoup keypair.
PedersenParameters for the associated commitment scheme. The batch size for the Pedersen parameters is effectively the max number of messages that can be simultaneously requested. The vector_encryption_length of camenisch_shoup_public_key must divide the pedersen batch size.
A private key for the Boneh-Boyen oblivious signature. To be used by the "Sender" in the scheme. The secret key for the associated Camenisch-Shoup keypair is implicitly part of the Private Key.
Serialized BigNum.
Implicitly linked to commitment-parameters for a Pedersen batch-commitment scheme and a keypair for the Camenisch Shoup encryption scheme. The Pedersen commitment parameters and Camenisch-Shoup public key are implicitly part of the Public Key.
Used in:
,The i'th ciphertext contains an encryption of the secret value in the i'th component of the vector-encryption, and 0 elsewhere.
Used in:
,There will be as many Camenisch-Shoup ciphertexts as needed to fit the messages.
Masks needed in order to recover the signature from the response.
Serialized BigNum corresponding to a Pedersen Commitment.
Serialized BigNum corresponding to a Pedersen Commitment.
Serialized BigNum corresponding to a Pedersen Commitment. Computed as a standard dummy commitment.
Serialized BigNum corresponding to a Pedersen Commitment. Computed as Prod_i commit_as[i]^dummy_bs[i] * Com(0, dummy_alpha_opening_2).
Serialized BigNum corresponding to a Pedersen Commitment. Computed as a standard dummy commitment.
Serialized BigNum corresponding to a Pedersen Commitment. Computed as Prod_i commit_as[i]^dummy_rs[i] * Com(0, dummy_gamma_opening_2).
One dummy ciphertext per ciphertext in the request.
Used in:
Serialized BigNum corresponding to a Pedersen Commitment Opening.
Serialized BigNum corresponding to a Pedersen Commitment Opening.
BigNumVector corresponding to each Pedersen Commitment Opening.
Serialized BigNum corresponding to a Pedersen Commitment Opening.
The Pedersen Commitment opening corresponding to dummy_commit_alphas_1.
The Pedersen Commitment opening corresponding to dummy_commit_alphas_2.
The Pedersen Commitment opening corresponding to dummy_commit_gammas_1.
The Pedersen Commitment opening corresponding to dummy_commit_gammas_2.
One dummy encryption randomness for each ciphertext in the request.
Serialized BigNum, corresponding to the Pedersen Commitment to the messages.
Serialized BigNum, corresponding to the Pedersen Commitment to the rs.
The Pedersen commitments to mask values a. The i'th commitment contains a commitment to as[i] in the i'th batch-position, and 0 elsewhere.
The batch-commitment to mask values b.
The batch commitment to alphas. alphas[i] = messages[i] * as[i]. Computed as (Prod_i Com(as[i])^bs[i]) * Com(0, alpha_opening).
The batch Pedersen commitment to gammas. gammas[i] = rs[i] * as[i]. Computed as (Prod_i Com(as[i])^rs[i]) * Com(0, gamma_opening).
Used in:
Commitment to the values decrypted from the Request. Serialized BigNum.
Message 1 and Statement are used to create the challenge via FiatShamir. Serialized BigNum
Dummy version of the Camenisch Shoup public key ys.
Serialized BigNum corresponding to a dummy Pedersen Commitment.
For each masked_signature_value, we show that masked_signature_value^beta = base_g. Serialized ECPoints.
One dummy_encrypted_masked_messages_es for each ciphertext in the request.
Used in:
Serialized BigNum, corresponding to the Pedersen Commitment to the messages.
Serialized BigNum, corresponding to the Pedersen Commitment to rs.
Commitment to the values decrypted from the Request.
Convenient container for a vector of serialized BigNums.
Used in:
, , , , , , , , , , ,Ciphertext of Camenisch-Shoup encryption scheme. All the fields are serialized BigNums. For public key (n, s, g, ys), messages ms, and randomness r: u = g^r mod n^(s+1); es[i] = (1 + n)^ms[i] * ys[i]^r mod n^(s+1).
Used in:
, ,Secret key for Camenisch-Shoup encryption scheme. All the fields are serialized BigNums. For public key (n, s, g, ys): ys[i] = g^xs[i] mod n^(s+1). To decrypt a ciphertext (u,es): ms[i] = ((es[i]/u^xs[i] - 1) mod n^(s+1)) / n.
Public key for Camenisch-Shoup encryption scheme. All the fields are serialized BigNums. n is a strong RSA modulus: n = p * q where p, q are large safe primes. g is a random n^s-th residue mod n^(s+1): g = r^n mod n^(s+1) for a random r. ys[i] = g^xs[i] mod n^(s+1) for a random x, where x is the secret key. We allow multiple ys, thereby enabling encrypting multiple messages in a single ciphertext. To encrypt a batch of messages ms, where each ms[i] < n^s: u = g^r mod n^(s+1) for a random r; es[i] = (1 + n)^m * ys[i]^r mod n^(s+1); Ciphertext = (u, e).
Used in:
The public key for each component. There will be one secret key in xs for each ys, and one ciphertext component es (though optionally fewer).
n^(s+1) is the modulus for the scheme. n^s is the message space.
The challenge will be generated using the Fiat-Shamir heuristic applied to Statement and Message1.
Message1 and the Statement feed into the Random Oracle to produce the proof challenge.
Used in:
Serialized BigNum.
Serialized ECPoints.
Second message of the ApplyProof.
Used in:
Serialized BigNum
Formalizes the statement being proved. This is defined only in order to be input to the random oracle, to produce the challenge.
Serialized BigNum, corresponding to the Pedersen Commitment to the messages.
The actual PRF evaluations (serialized ECPoints).
Proof that the parameters were generated correctly.
Message 1 and Statement are used to create the challenge via FiatShamir. Serialized BigNum
Dummy commitment to the key in each slot of the Pedersen Commitment.
Used in:
Masked dummy PRF key underlying the masked dummy commitment in each slot. Serialized BigNum.
Opening to the masked dummy commitment to the PRF key.
Used in:
,How many bits (more than the challenge bits) to add to each dummy opening (aka sigma protocol lambda).
How many bits the challenge has.
Prefix to inject into the random oracle.
Serialized ECPoint
Parameters for the associated Pedersen Commitment Scheme. Implicitly determines the max number of messages that can be VRF'ed together in a single proof.
The PRF key. (Serialized BigNum).
An opening to commit_prf_key (serialized BigNum).
A public key for the Dodis-Yampolskiy Verifiable Random Function. Implicitly linked to parameters for a Pedersen batch-commitment scheme.
Used in:
,A commitment to a copy of the PRF key in each slot of the Pedersen Commitment. (Serialized BigNum)
Convenient container for a vector of serialized ECPoints.
Used in:
, , ,Parameters key for Pedersen commitment scheme. All the fields are serialized BigNums. To commit to a set of messages m1, ... , mk < ord(h): c = g1^m1 * ... * gk^mk * * h^r mod n for a random r. n may be a prime or an RSA modulus. For "hiding", each element of gs should be in the subgroup generated by h. For "binding", the discrete log of each element of gs with respect to h should be hidden.
Used in:
,Serialized BigNum.
Serialized BigNum.