
HElib is an open-source software library that implements homomorphic encryption. It supports the BGV scheme with bootstrapping and the Approximate Number CKKS scheme. HElib also includes optimizations for efficient homomorphic evaluation, focusing on effective use of ciphertext packing techniques and on the Gentry-Halevi-Smart optimizations.
HElib est une bibliothèque logicielle open source (licence Apache v2.0) qui implémente le chiffrement homomorphe (CH). Les schémas actuellement disponibles sont les implémentations du schéma Brakerski-Gentry-Vaikuntanathan (BGV) avec bootstrapping et du schéma à nombres approximatifs de Cheon-Kim-Kim-Song (CKKS), ainsi que de nombreuses optimisations pour accélérer l'évaluation homomorphe, en se concentrant principalement sur l'utilisation efficace des techniques d'empaquetage de textes chiffrés de Smart-Vercauteren et des optimisations de Gentry-Halevi-Smart. Voir ce rapport pour une description de quelques algorithmes utilisés dans cette bibliothèque.
Veuillez vous référer à CKKS-security.md pour la discussion la plus récente sur la sécurité de l'implémentation du schéma CKKS dans HElib.
Depuis mi-2018, HElib fait l'objet d'une vaste refonte pour la Fiabilité, la Robustesse et la Maintenabilité, la Performance, et surtout l'Utilisabilité pour les chercheurs et développeurs travaillant sur le CH et ses usages.
HElib prend en charge un « langage d'assemblage pour le CH », fournissant des routines de bas niveau (set, add, multiply, shift, etc.), une gestion sophistiquée et automatique du bruit, un bootstrapping BGV amélioré, le multi-threading, ainsi qu'un support pour les objets Ptxt (texte clair) qui imite la fonctionnalité des objets Ctxt (texte chiffré). Le rapport Design and implementation of HElib contient des détails supplémentaires. Voir aussi CHANGES.md pour plus d'informations sur les versions de HElib.
Les instructions complètes d'installation et la liste des dépendances requises peuvent être trouvées dans INSTALL.md.
Pour vous guider dans la programmation avec HElib, jetez un œil aux
programmes d'exemple et à nos tutoriels CKKS situés dans le répertoire examples. Voir
examples/README.md.
Si vous souhaitez contribuer à HElib, veuillez lire nos Instructions pour contribuer.
HElib est écrit en C++17 et utilise la bibliothèque mathématique NTL.
HElib est distribué sous les termes de la licence Apache v2.0.