Quadratic FE¶
Quadratic functional encryption schemes.
- class pyfe4ai.schemes.quadratic.QuadraticQuad(config, **kwargs)[source]¶
Bases:
IPFEAbsCryptoCrypto operations for public-key quadratic FE (Quad construction).
- Parameters:
config (
dict)
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
- class pyfe4ai.schemes.quadratic.QuadraticQuadKeyGenerator(config, **kwargs)[source]¶
Bases:
IPFEAbsKeyGenerator,ParameterCacheMixinKey generator for public-key quadratic FE (Quad construction).
- Parameters:
config (
dict)
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
- class pyfe4ai.schemes.quadratic.QuadraticSGP(config, **kwargs)[source]¶
Bases:
IPFEAbsCryptoCrypto operations for secret-key quadratic FE (SGP construction).
- Parameters:
config (
dict)
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
- class pyfe4ai.schemes.quadratic.QuadraticSGPKeyGenerator(config, **kwargs)[source]¶
Bases:
IPFEAbsKeyGenerator,ParameterCacheMixinKey generator for secret-key quadratic FE (SGP construction).
- Parameters:
config (
dict)
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
- class pyfe4ai.schemes.quadratic.MultiInputQuadraticSGP(config, **kwargs)[source]¶
Bases:
IPFEAbsCryptoMulti-input secret-key quadratic FE.
Each client independently encrypts (x_i, y_i). The decryptor combines ciphertexts from all clients and recovers sum_i x_i^T F_i y_i.
- Parameters:
config (
dict)
- scheme_type = 'MI_QUADRATIC_SGP'¶
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
- encrypt(payload)[source]¶
Encrypt a single client’s (x, y) pair.
payload: dict with keysxandy(list[int] of length d).
- class pyfe4ai.schemes.quadratic.MultiInputQuadraticSGPKeyGenerator(config, **kwargs)[source]¶
Bases:
IPFEAbsKeyGenerator,ParameterCacheMixinKey generator for multi-input secret-key quadratic FE (MI-SGP).
- Parameters:
config (
dict)
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
SGP (Single-Input)¶
Secret-Key Quadratic Functional Encryption (SGP) | Based on | “Reading in the Dark: Classifying Encrypted Digits with Functional Encryption” | By Dufour Sans, Gay, Pointcheval | See ePrint 2018/206 | | This prototype follows the GoFE quadratic/sgp.go structure and adapts it | to the repository’s key-generator / crypto split.
type: secret-key encryption
setting: Pairing based
note: research prototype aligned with the existing crypto-ipfe API
- class pyfe4ai.schemes.quadratic.sgp.QuadraticSGPKeyGenerator(config, **kwargs)[source]¶
Bases:
IPFEAbsKeyGenerator,ParameterCacheMixinKey generator for secret-key quadratic FE (SGP construction).
- Parameters:
config (
dict)
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
- class pyfe4ai.schemes.quadratic.sgp.QuadraticSGP(config, **kwargs)[source]¶
Bases:
IPFEAbsCryptoCrypto operations for secret-key quadratic FE (SGP construction).
- Parameters:
config (
dict)
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
Multi-Input SGP¶
Multi-Input Secret-Key Quadratic Functional Encryption (MI-SGP) | Based on the single-input SGP construction from | “Reading in the Dark: Classifying Encrypted Digits with Functional Encryption” | By Dufour Sans, Gay, Pointcheval (ePrint 2018/206) | | Extended to multi-input: each client i independently encrypts its own | pair (x_i, y_i), and decryption recovers the aggregated quadratic form | sum_i x_i^T F_i y_i where F_i is the per-client function matrix. | | The multi-input composition follows the per-client secret key approach: | each client holds independent (s_i, t_i) secrets and encrypts using | independent randomness (gamma_i, W_i). Decryption combines pairing | results across all clients.
type: secret-key encryption
setting: Pairing based
note: research prototype aligned with the existing crypto-ipfe API
- class pyfe4ai.schemes.quadratic.multi_input_sgp.MultiInputQuadraticSGPKeyGenerator(config, **kwargs)[source]¶
Bases:
IPFEAbsKeyGenerator,ParameterCacheMixinKey generator for multi-input secret-key quadratic FE (MI-SGP).
- Parameters:
config (
dict)
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
- class pyfe4ai.schemes.quadratic.multi_input_sgp.MultiInputQuadraticSGP(config, **kwargs)[source]¶
Bases:
IPFEAbsCryptoMulti-input secret-key quadratic FE.
Each client independently encrypts (x_i, y_i). The decryptor combines ciphertexts from all clients and recovers sum_i x_i^T F_i y_i.
- Parameters:
config (
dict)
- scheme_type = 'MI_QUADRATIC_SGP'¶
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
- encrypt(payload)[source]¶
Encrypt a single client’s (x, y) pair.
payload: dict with keysxandy(list[int] of length d).
Quad¶
Public-Key Quadratic Functional Encryption (Quad) | Based on | “A New Paradigm for Public-Key Functional Encryption for Degree-2 Polynomials” | By Romain Gay | | This repository prototype realizes quadratic FE through tensor encoding over | the repository’s partially function-hiding IPE building block. The overall | organization is aligned with GoFE’s quadratic/quad.go, while the Python | implementation favors a simpler composition over a line-by-line port.
type: public-key encryption
setting: Pairing based
note: research prototype aligned with the existing crypto-ipfe API
- class pyfe4ai.schemes.quadratic.quad.QuadraticQuadKeyGenerator(config, **kwargs)[source]¶
Bases:
IPFEAbsKeyGenerator,ParameterCacheMixinKey generator for public-key quadratic FE (Quad construction).
- Parameters:
config (
dict)
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None
- class pyfe4ai.schemes.quadratic.quad.QuadraticQuad(config, **kwargs)[source]¶
Bases:
IPFEAbsCryptoCrypto operations for public-key quadratic FE (Quad construction).
- Parameters:
config (
dict)
- __init__(config, **kwargs)[source]¶
Perform the __init__ operation.
- Parameters:
config (
dict) – Scheme configuration dict.- Return type:
None