Function secret sharing (FSS) primitives including distributed point functions (DPF) and distributed comparison functions (DCF)
For a function
-
Correctness: For any input
$x \in \mathbb{G}^{in}$ ,$f(x) = \sum_{b = 1}^{M} f_b(x)$ -
Privacy: For any strict subset of parties
$B \subset [M]$ ,$\{f_b | b \in B\}$ reveals no information about$f(x)$
More formal definitions can be found in the following papers:
- Function Secret Sharing for Mixed-Mode and Fixed-Point Secure Computation
- Secure Computation with Preprocessing via Function Secret Sharing
- Function Secret Sharing: Improvements and Extensions
- Function Secret Sharing
Assume that the cardinal (size) of the input domain
- We use
$b \in \{0\} \cup [M - 1]$ other than$b \in [M]$ that is used by the papers, because computer science counts from 0 - Currently, this library only implements 2-party DPF and DCF, fixing
$M = 2$ and$b \in \{0, 1\}$ - We fix input to be bits and output to be bytes.
$\lambda$ is fixed to be a multiple of 8. However, users can still customize how output bytes as group elements should be computed, e.g., added.
Copyright (C) 2025 Yulong Ming (myl7)
Apache License, Version 2.0