Files
zeekayandHanzo Dev 019248c82a protocols/tfhe: threshold FHE
A committee of n members at threshold t decrypts without any member holding
the key. Keygen is dealerless: each member samples its own contribution and
publishes a share of the collective public key. Decrypt combines masked
partial decryptions, bound by digest to the ciphertext, and never
reconstructs the key.

Recombination uses the integer Lagrange coefficients directly and clears no
denominator, so quorums whose coefficients are not integers are refused
rather than answered wrongly. Decrypt searches the contributions on hand for
one that recombines exactly; the largest positions always do.

Custody and correctness are proved in lux/proofs/fhe/threshold-custody.tex.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-17 13:34:52 -07:00

16 lines
719 B
Go

// Copyright (C) 2025-2026, Lux Industries Inc. All rights reserved.
// SPDX-License-Identifier: BSD-3-Clause
// Package tfhe is threshold fully-homomorphic encryption: a committee of n
// members at threshold t decrypts without any member holding the key.
//
// pub, shares := Keygen(params, t, n, seed)
// ct := Encrypt(params, pub, v, fhe.FheUint8)
// d := member.Decrypt(ct, prng)
// bits := Decrypt(ct, []Decryption{d, ...}, params, t)
//
// Key generation is in keygen.go, the decryption kernel in partial.go, and the
// committee layer a networked caller needs in committee.go and decrypt.go.
// Custody and correctness are proved in lux/proofs/fhe/threshold-custody.tex.
package tfhe