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
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…