Giter Club home page Giter Club logo

openfhe-development's Introduction

OpenFHE - Open-Source Fully Homomorphic Encryption Library

Fully Homomorphic Encryption (FHE) is a powerful cryptographic primitive that enables performing computations over encrypted data without having access to the secret key. OpenFHE is an open-source FHE library that includes efficient implementations of all common FHE schemes:

  • Brakerski/Fan-Vercauteren (BFV) scheme for integer arithmetic
  • Brakerski-Gentry-Vaikuntanathan (BGV) scheme for integer arithmetic
  • Cheon-Kim-Kim-Song (CKKS) scheme for real-number arithmetic (includes approximate bootstrapping)
  • Ducas-Micciancio (DM) and Chillotti-Gama-Georgieva-Izabachene (CGGI) schemes for evaluating Boolean circuits and arbitrary functions over larger plaintext spaces using lookup tables

OpenFHE also includes the following multiparty extensions of FHE:

  • Threshold FHE for BGV, BFV, and CKKS schemes
  • Proxy Re-Encryption for BGV, BFV, and CKKS schemes

Links and Resources

Installation

Refer to our General Installation Information: readthedocs for more information

Or refer to the following for your specific operating system:

Code Examples

To get familiar with the main API of OpenFHE, we recommend looking at the code of the following examples:

  1. FHE for arithmetic over integers (BFV):
    1. Simple Code Example
    2. Simple Code Example with Serialization
  2. FHE for arithmetic over integers (BGV):
    1. Simple Code Example
    2. Simple Code Example with Serialization
  3. FHE for arithmetic over real numbers (CKKS):
    1. Simple Code Example
    2. Advanced Code Example
    3. Advanced Code Example for High-Precision CKKS
    4. Arbitrary Smooth Function Evaluation
    5. Simple CKKS Bootstrapping Example
    6. Advanced CKKS Bootstrapping Example
    7. Double-Precision (Iterative) Bootstrapping Example
  4. FHE for Boolean circuits and larger plaintext spaces (FHEW/TFHE):
    1. Simple Code Example
    2. Code with JSON serialization
    3. Code with Binary Serialization
    4. Large-Precision Comparison
    5. Small-Precison Arbitrary Function Evaluation
  5. Threshold FHE:
    1. Code Example for BGV, BFV, and CKKS

Code of Conduct

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

OpenFHE is a community-driven open source project developed by a diverse group of contributors. The OpenFHE leadership has made a strong commitment to creating an open, inclusive, and positive community. Please read our Code of Conduct for guidance on how to interact with others in a way that makes our community thrive.

Call for Contributions

We welcome all contributions including but not limited to:

  • reporting issues
  • addressing bugs big or small. We label issues to help you filter them to your skill level.
  • documentation changes
  • talks and seminars using OpenFHE

How to Cite OpenFHE

To cite OpenFHE in academic papers, please use the following BibTeX entry.

@misc{OpenFHE,
      author = {Ahmad Al Badawi and Jack Bates and Flavio Bergamaschi and David Bruce Cousins and Saroja Erabelli and Nicholas Genise and Shai Halevi and Hamish Hunt and Andrey Kim and Yongwoo Lee and Zeyu Liu and Daniele Micciancio and Ian Quah and Yuriy Polyakov and Saraswathy R.V. and Kurt Rohloff and Jonathan Saylor and Dmitriy Suponitsky and Matthew Triplett and Vinod Vaikuntanathan and Vincent Zucca},
      title = {OpenFHE: Open-Source Fully Homomorphic Encryption Library},
      howpublished = {Cryptology ePrint Archive, Paper 2022/915},
      year = {2022},
      note = {\url{https://eprint.iacr.org/2022/915}},
      url = {https://eprint.iacr.org/2022/915}
}

Acknowledgments

Distribution Statement "A" (Approved for Public Release, Distribution Unlimited). This work is supported in part by DARPA through HR0011-21-9-0003 and HR0011-20-9-0102. The views, opinions, and/or findings expressed are those of the author(s) and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government.

openfhe-development's People

Contributors

anbestephen avatar bquast avatar caesaretos avatar davidbrucecousins avatar dsuponitskiy avatar dsuponitskiy-duality avatar ericastor avatar fboemer avatar iquah1 avatar jbates-duality avatar jsaylor-dualitytech avatar kimandrik avatar mctriplett avatar raindropfamily avatar reneroliveira avatar sararv22 avatar sarojaduality avatar yspolyakov avatar yuriy-polyakov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.