3.2.6 NFLlib
NFLlib [23] est une bibliothèque C++ performante et
open source dédiée à la cryptographie sur réseau
idéal. Elle est spécialisée dans les anneaux de
polynômes quotientés par un polynôme cyclo-tomique de
degré puissance deux.
La bibliothèque combine des optimisations
algorithmiques (théorème des restes chinois, transformée
de la théorie des nombres optimisée) et des techniques
d'optimisation de programmation (spécialisations SSE et AVX2,
modèles d'expressions C++, etc.).
Elle est sous licence MIT et nécéssite le cmake,
GMP et Mpfr, ainsi que d'un compilateur C++11.
3.2.7 cuHE
La bibliothèque de chiffrement homomorphe CUDA (cuHE)
[31] est une bibliothèque accélérée par GPU pour
les schémas et algorithmes de chiffrement homomorphe (HE) définis
sur des anneaux polynomiaux. cuHE offre des performances exceptionnelles tout
en offrant une interface simple qui améliore considérablement la
productivité des programmeurs. Elle intègre des techniques
algébriques pour l'évaluation homomorphe des circuits et un code
hautement optimisé pour les machines mono-GPU ou multi-GPU.
La bibliothèque cuHE est distribuée sous licence
MIT (MIT). Elle est actuellement destinée à la recherche
uniquement. Plusieurs algorithmes sont implémentés à titre
d'exemple et d'autres suivront.
3.2 Bibliothèques FHE 38
Mémoire de Master 2 Recherche 38 MOUYOUME
DIEUDONNE(c) UYI
La bibliothèque repousse les limites des performances.
Plusieurs optimisations, telles que des techniques algébriques pour une
évaluation efficace, des techniques de minimisation de la
mémoire, l'ordonnancement de la mémoire et des flux, ainsi que
des optimisations d'assemblage CUDA de bas niveau, sont incluses pour tirer
pleinement parti du parallélisme massif et de la bande passante
mémoire élevée des GPU. Les fonctions arithmétiques
conçues pour gérer de très grands opérandes
polynomiaux adoptent le théorème des restes chinois (CRT), la
transformée de la théorie des nombres (NTT) et les
méthodes basées sur la réduction de Barrett.
Les configurations requises sont:
-- GPU NVIDIA CUDA avec compatibilité de calcul 3.0 ou
supérieure
-- NTL : Bibliothèque pour la
théorie des nombres 9.3.0 (nécessite C++11).
-- API OpenMP
3.2.8 TFHE
TFHE [19] est une bibliothèque open source pour le
chiffrement entièrement homomorphe, distribuée sous licence
Apache 2.0. Le schéma sous-jacent est le TFHE
TFHE est une bibliothèque C/C++ qui implémente
un amorçage porte par porte très rapide, basé sur et .
Cette bibliothèque permet d'évaluer un circuit booléen
arbitraire composé de portes binaires, sur des données
chiffrées, sans révéler aucune information sur les
données.
La bibliothèque prend en charge l'évaluation
homomorphe des 10 portes binaires (And, Or, Xor, Nand, Nor,
etc.), ainsi que la négation et la porte Mux. Chaque porte binaire prend
environ 13ms en temps monocoeur pour être évaluée, ce qui
améliore d'un facteur 53, et la porte Mux prend environ 26ms CPU.
Contrairement à d'autres bibliothèques, le mode
d'amorçage de portes de TFHE n'impose aucune restriction quant au nombre
de portes ni à leur composition. Cela permet d'effectuer n'importe quel
calcul sur des données chiffrées, même si la fonction
appliquée n'est pas encore connue au moment du chiffrement. La
bibliothèque est facile à utiliser, que ce soit avec des circuits
créés manuellement ou avec les résultats d'outils de
génération de circuits automatisés.
Du point de vue de l'utilisateur, la bibliothèque peut:
-- Générer un jeu de clés secrètes
et un jeu de clés cloud. Le jeu de clés secrètes est
privé et offre des capacités de chiffrement/déchiffrement.
Le jeu de clés cloud peut être exporté vers le cloud et
permet d'opérer sur des données chiffrées.
-- Grâce au jeu de clés secrètes, la
bibliothèque permet de chiffrer et de déchiffrer des
données. Les données chiffrées peuvent être
externalisées vers le cloud en toute sécurité afin
d'effectuer des calculs homomorphes sécurisés.
-- Grâce au jeu de clés cloud, la
bibliothèque peut évaluer une liste de portes binaires de
manière homomorphe à une cadence d'environ 76 portes par seconde
et par coeur, sans déchiffrer ses entrées. Il suffit de fournir
la séquence de portes, ainsi que les textes chiffrés des bits
d'entrée. La bibliothèque calcule ensuite les textes
chiffrés des bits de sortie.
3.2 Bibliothèques FHE 39
Mémoire de Master 2 Recherche 39 MOUYOUME
DIEUDONNE(c) UYI
|