Encrypted Sigmoid
encrypted-sigmoid · spec v0.1.0 · 0 implementations · 6 runners
DESCRIPTION
Evaluates the logistic function
sigmoid(x) = 1 / (1 + exp(-x))
on an encrypted value, or on many at once.
The difficulty is that encrypted arithmetic offers additions and multiplications, and the exponential is neither. Every realization therefore approximates — by a polynomial, by a piecewise fit, or by a table lookup — and the interesting question is how much accuracy each approach buys per unit of depth and time. The kernel fixes the function and the accuracy demanded of it, and leaves the approach open.
Accuracy is not uniform across the input range: the curve is steepest near zero and flattest in the tails, so a benchmark case states the range it cares about.
INTERFACE
encrypted_sigmoid( in ct : Ciphertext // an encrypted value — a single number or many out ct : Ciphertext // the encrypted result, sigmoid of each input value ... // anything else the realization needs — keys, context, encoding — is its own concern )
PARAMETER SCHEMA
The schema belongs to the kernel. Each implementation declares which part of it it supports.
CORRECTNESS
The threshold belongs to the benchmark case; the requirement to meet it across the whole range belongs here.
SECURITY PROPERTIES
No secrecy requirement beyond that of the scheme in use. Evaluation never depends on a decrypted value, because it never has one.
ASSUMPTIONS
Inputs are already encrypted under parameters that leave enough depth for the approximation.