INNER CODE UNIT · Go
newMta
taurushq-io/multi-party-sig · internal/mta/mta.go:84
func newMta(senderSecretShare *saferith.Int, receiverEncryptedShare *paillier.Ciphertext,
sender *paillier.SecretKey, receiver *paillier.PublicKey) (D, F *paillier.Ciphertext, S, R *saferith.Nat, BetaNeg *saferith.Int) {
BetaNeg = sample.IntervalLPrime(rand.Reader)
F, R = sender.Enc(BetaNeg) // F = encᵢ(-β, r)
D, S = receiver.Enc(BetaNeg)
tmp := receiverEncryptedShare.Clone().Mul(receiver, senderSecretShare) // tmp = aᵢ ⊙ Bⱼ
D.Add(receiver, tmp) // D = encⱼ(-β;s) ⊕ (aᵢ ⊙ Bⱼ) = encⱼ(aᵢ•bⱼ-β)
return
}