pyfe4ai — Python Functional Encryption for AI

PyFE4AI is a research-oriented Python library of functional encryption (FE) schemes for AI security and privacy. It covers single-input (SIFE), multi-input (MIFE), multi-client (MCFE), decentralized, threshold, function-hiding, and quadratic constructions across DDH, Damgård-DDH, Paillier, LWE, Ring-LWE, and pairing backends — all under one consistent setup / keygen / encrypt / decrypt API.

Project homepage · GitHub · Issues

Installation

git clone https://github.com/spire-studio/pyfe4ai.git
cd pyfe4ai
conda env create -f environment.yml
conda activate pyfe4ai
pip install -e ".[test]"

For pairing-based FE families, additionally install pip install -e ".[test,pairing]" (requires the PBC library; see the repository README for platform notes).

Minimal example

from pyfe4ai import SIFE, SIFEKeyGenerator

x, y = [2, 1, 3], [4, 5, 6]

kg = SIFEKeyGenerator({"sec_param": 128, "eta": len(x)})
kg.setup()
pp, sk = kg.get_public_parameters(), kg.get_private_keys()
dk = kg.get_decryption_keys("sid_0", credentials={"fusion_weight": y})

ct = SIFE({"precision": 3, "keys": {"pp": pp, "sk": sk}}).encrypt(x)
result = SIFE({"precision": 3, "keys": {"pp": pp}}).decrypt(ct, dk, y)
print(result)  # <x, y> = 31

API Reference

Indices and tables