Documentation ¶
Index ¶
- func ProveAffG(group curve.Curve, h *hash.Hash, senderSecretShare *saferith.Int, ...) (Beta *saferith.Int, D, F *paillier.Ciphertext, Proof *zkaffg.Proof)
- func ProveAffP(group curve.Curve, h *hash.Hash, senderSecretShare *saferith.Int, ...) (Beta *saferith.Int, D, F *paillier.Ciphertext, Proof *zkaffp.Proof)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ProveAffG ¶
func ProveAffG(group curve.Curve, h *hash.Hash, senderSecretShare *saferith.Int, senderSecretSharePoint curve.Point, receiverEncryptedShare *paillier.Ciphertext, sender *paillier.SecretKey, receiver *paillier.PublicKey, verifier *pedersen.Parameters) (Beta *saferith.Int, D, F *paillier.Ciphertext, Proof *zkaffg.Proof)
ProveAffG returns the necessary messages for the receiver of the h is a hash function initialized with the sender's ID. - senderSecretShare = aᵢ - senderSecretSharePoint = Aᵢ = aᵢ⋅G - receiverEncryptedShare = Encⱼ(bⱼ) The elements returned are : - Beta = β - D = (aⱼ ⊙ Bᵢ) ⊕ encᵢ(- β, s) - F = encⱼ(-β, r) - Proof = zkaffg proof of correct encryption.
func ProveAffP ¶
func ProveAffP(group curve.Curve, h *hash.Hash, senderSecretShare *saferith.Int, senderEncryptedShare *paillier.Ciphertext, senderEncryptedShareNonce *saferith.Nat, receiverEncryptedShare *paillier.Ciphertext, sender *paillier.SecretKey, receiver *paillier.PublicKey, verifier *pedersen.Parameters) (Beta *saferith.Int, D, F *paillier.Ciphertext, Proof *zkaffp.Proof)
ProveAffP generates a proof for the a specified verifier. This function is specified as to make clear which parameters must be input to zkaffg. h is a hash function initialized with the sender's ID. - senderSecretShare = aᵢ - senderSecretSharePoint = Aᵢ = Encᵢ(aᵢ) - receiverEncryptedShare = Encⱼ(bⱼ) The elements returned are : - Beta = β - D = (aⱼ ⊙ Bᵢ) ⊕ encᵢ(-β, s) - F = encⱼ(-β, r) - Proof = zkaffp proof of correct encryption.
Types ¶
This section is empty.