3.2.1 HElib
HElib est une bibliothèque logicielle open-source
(Apache License v2.0) qui implémente le chiffrement homomorphe (HE). Les
schémas actuellement disponibles sont les implémentations du
cryp-tosystème Brakerski-Gentry-Vaikuntanathan (BGV) avec bootstrap et
le schéma du nombre approximatif de Cheon-Kim-Kim-Song (CKKS), ainsi que
de nombreuses optimisations pour accélérer l'éva-luation
homomorphique, en se concentrant principalement sur utilisation efficace des
techniques d'emballage de texte chiffré Smart-Vercauteren et des
optimisations Gentry-Halevi-Smart. HElib est écrit en C++17 et utilise
la bibliothèque mathématique NTL.
Depuis la mi-2018, HElib a fait l'objet d'une refactorisation
approfondie pour la fiabilité, la robustesse et la facilité
d'entretien, les performances et, surtout, la convivialité pour les
chercheurs et les développeurs travaillant sur HE et ses
utilisations.
HElib prend en charge un "langage d'assemblage pour HE",
fournissant des routines de bas niveau (définir, ajouter, multiplier,
décaler, etc.), une gestion automatique sophistiquée du bruit, un
démarrage BGV amélioré, le multi-threading et
également la prise en charge des objets Ptxt (texte clair) qui imite la
fonctionnalité des objets Ctxt (texte chiffré).
3.2.2 HEAAN
HEAAN(Homomorphic Encryption for Arithmetic of Approximate
Numbers)[53] est une bibliothèque C++ qui utilise la librairie
NTL(Number Theory Library) et facilite le chiffrement, le déchiffrement
et la génération de clés homomorphes, ainsi que les
évaluations homomorphes fondamentales telles que l'addition, la
multiplication et la rotation. Débutant par une implémentation de
référence du cryptosystème CKKS, HEAAN a
évolué afin d'améliorer ses performances et d'incorporer
les résultats de recherche les plus récents dans la
bibliothèque. Du point de vue des performances, HEAAN prend en charge
une implémentation exquise du CPU, en utilisant de nombreuses
avancées technologiques des CPU telles que Intel(R) AVX2/AVX512. HEAAN
fournit également une version de la bibliothèque
accélérée par le GPU. Ce programme est sous licence
Creative Commons Attribution-NonCommercial 3.0 et est la
propriété CryptoLab inc.
Mémoire de Master 2 Recherche 36 MOUYOUME
DIEUDONNE(c) UYI
3.2.3 Lattigo
Lattigo [1] est un module Go qui implémente des
primitives de chiffrement homomorphe basées sur Ring-Learning With
Errors et des protocoles sécurisés basés sur Multiparty
Homomorphic Encryption. La bibliothèque propose:
-- Une implémentation des systèmes RNS (Residue
Number System) complets BFV, BGV et CKKS et leurs versions multipartites
respectives.
-- Performances comparables aux bibliothèques C++ de
pointe.
-- Procédures d'amorçage efficaces et de haute
précision à clés denses et à clés creuses
pour les CKKS à RNS complet.
|