|
myl7/fss 1.1.0
Function secret sharing (FSS) primitives including distributed point/comparison function (DPF/DCF)
|
2-party distributed point function (DPF). More...
#include <cuda_runtime.h>#include <type_traits>#include <cstddef>#include <cassert>#include <omp.h>#include <fss/group.cuh>#include <fss/prg.cuh>#include <fss/util.cuh>Go to the source code of this file.
Classes | |
| class | fss::Dpf< in_bits, Group, Prg, In, par_depth > |
| 2-party DPF scheme. More... | |
| struct | fss::Dpf< in_bits, Group, Prg, In, par_depth >::Cw |
| Correction word. More... | |
2-party distributed point function (DPF).
The scheme is from the paper, Function Secret Sharing: Improvements and Extensions (1: the published version).
Point function: for the input domain \(\sG_{in} = \{0, 1\}^n\), the output domain \((\sG_{out}, +)\) that is a group, \(a \in \sG_{in}\), and \(b \in \sG_{out}\), a point function \(f_{a, b}\) is a function that for any input \(x\), the output \(y\) has \(y = b\) only when \(x = a\), otherwise \(y = 0\).
DPF: for the input domain \(\sG_{in} = \{0, 1\}^n\), the output domain \((\sG_{out}, +)\) that is a group, \(a \in \sG_{in}\), \(b \in \sG_{out}\), and a security parameter \(\lambda\), 2-party DPF is a scheme consisting of the methods:
That satisfies:
We fix the output domain size at 16B and always set the last word's LSB to 0, corresponding to \(\lambda = 127\). See Groupable for more details.
We limit the max input domain bit size to 128. This is enough for most applications and allows us to represent the input as an integer.