Boolean FHE (BinFHE) documentation

Page Contents

Github Source: Implements the following Boolean circuit evaluation schemes:

Github Source PKE: Implements the public key encryption (pke) version of the boolean examples.

File Listings

Boolean FHE CryptoContext Serialization (binfhecontext-ser.h)

  • Adds serialization support to Boolean Circuit FHE

Boolean FHE CryptoContext (binfhecontext.h)

  • CryptoContext for the boolean circuit FHE scheme.

  • A CryptoContext is the primary object through which we interact with the various OpenFHE capabilities

Note

various parameter enum are also provided

  • BINFHEPARAMSET that defines the security level and parameters

  • BINFHE_METHOD to choose the bootstrapping method: AP (DM/FHEW scheme) or GINX (CGGI/TFHE scheme)

  • BINFHE_OUTPUT specifies whether fresh ciphertext should be bootstrapped. The FRESH and BOOTSTRAPPED are now obsolete but kept for backward compatibility. This option is now used to specify LARGE_DIM (ciphertext of dimension N) or SMALL_DIM (ciphertext of dimension n after modswitch and keyswitch)

  • KEYGEN_MODE specifies if a public key along with the bootstrapping keys are generated

DM/CGGI Cryptosystem (binfhe-base-scheme)

  • The main cryptosystem implementation used for DM/CGGI schemes

  • The scheme is described in Bootstrapping in FHEW-like Cryptosystems from Daniele Micciancio and Yuriy Polyakov as published in Cryptology ePrint Archive, Report 2020/086

Parameters for DM/CGGI Cryptosystem (binfhe-base-params)

  • Stores the parameters for all cryptographic schemes, including LWE, RLWE, and RGSW

Constants for DM/CGGI Cryptosystem (binfhe-base-params)

  • Defines all options for BINFHEPARAMSET, BINFHE_METHOD, and BINFHE_OUTPUT enums

LWE Ciphertext (lwe-ciphertext)

LWE Crypto Parameters (lwe-cryptoparameters)

LWE Switching Key (lwe-keyswitchkey)

LWE Scheme (lwe-pke)

LWE Private Key (lwe-privatekey)

LWE Public Key (lwe-publickey)

LWE Key Pair (lwe-keypair)

Parent RGSW Accumulator Scheme (rgsw-acc)

CGGI RGSW Accumulator Scheme (rgsw-acc-cggi)

DM RGSW Accumulator Scheme (rgsw-acc-dm)

RGSW Refreshing Key (rgsw-acckey)

RGSW Crypto Parameters (rgsw-cryptoparameters)

RGSW Evaluation Key/Ciphertext (rgsw-evalkey)

RLWE Ciphertext (rlwe-ciphertext)