3.2.9 pyFHE
pyFHE [27] est une bibliothèque Python 3 pour le
chiffrement entièrement homomorphe. Cette bibliothèque inclut
actuellement une implémentation des schémas
Brakerski-Fan-Vercauteren (BFV), Cheon-Kim-Kim-Song (CKKS) et l'amorçage
pour CKKS.
pyFHE est conçu pour disposer d'un ensemble commun de
classes pour chaque schéma de chiffrement entièrement homomorphe.
Les couches sont organisées comme suit:
-- 1. Schéma de chiffrement : Les
schémas existants dans pyFHE sont BFV et CKKS.
-- 12. Méthodes de chiffrement : Elles
incluent tous les protocoles cryptographiques d'un schéma.
3. Objets cryptographiques : Ces objets sont
communs à tous les schémas cryptographiques.
4. Couche Anneau polynomial : Elle permet
d'effectuer des opérations telles que l'addition et la multiplication
dans l'anneau
Z[x]/(xn
+ 1).
5. Couche Mathématiques et FFT :
Elle inclut toutes les opérations mathématiques et de
théorie des nombres de base, y compris la FFT, la NTT, la CRT et
l'échantillonnage aléatoire.
3.2.10 TenSEAL
TenSEAL [10] est une bibliothèque permettant d'effectuer
des opérations de chiffrement homo-
morphique sur des tenseurs, construite au-dessus de Microsoft
SEAL. Elle offre une facilité d'uti-
lisation grâce à une API Python, tout en
préservant l'efficacité en implémentant la plupart de
ses
opérations en C++. Elle permet de :
-- Chiffrement/déchiffrement de vecteurs d'entiers
à l'aide de BFV
-- Chiffrement/déchiffrement de vecteurs de nombres
réels à l'aide de CKKS
Les plates formes prises en charge et leurs exigences:
-- Linux: Une version moderne de GNU G++ (>=
6.0) ou Clang++ (>= 5.0).
-- MacOS : Xcode toolchain (>= 9.3)
-- Windows : Microsoft Visual Studio (>=
10.0.40219.1, Visual Studio 2010 SP1 ou plus ré-
cent).
3.2.11 Concrete
Concrete [54] est un compilateur FHE open source qui simplifie
l'utilisation du chiffrement entièrement homomorphe (FHE). Basé
sur la technologie TFHE et exploitant LLVM, Concrete rend l'écriture de
programmes FHE accessible aux développeurs sans expertise approfondie en
cryptographie.
Les configurations requises sont:
-- Python 3.9 - 3.12
-- 8 Go de RAM minimum (16 Go recommandés)
-- Processeur x86_64 ou ARM64
3.2 Bibliothèques FHE 40
Mémoire de Master 2 Recherche 40 MOUYOUME
DIEUDONNE(c) UYI
3.2.12 Microsoft SEAL
Microsoft SEAL [38][47] est une bibliothèque de
chiffrement homomorphe open source (sous licence MIT) facile à utiliser
développée par le groupe de recherche sur la cryptographie et la
confidentialité de Microsoft. Microsoft SEAL est écrit en C++
standard moderne et est facile à compiler et à exécuter
dans de nombreux environnements différents. Microsoft SEAL est fourni au
départ avec deux cryptosystèmes de chiffrement homomorphe BFV et
CKKS et depuis sa version 4.1le crypto-système BGV a été
ajouté.
La bibliothèque FHE Microsoft SEAL est multiplateforme,
elle peut être utilisée sur:
Tabl 3.1 - Plateformes d'utilisation de SEAL
|
Système
|
Chaîne d'outils
|
|
Windows
|
Visual studio 2022 avec C++ et les outils CMake pour Windows
|
|
linux
|
Clang++ (>= 5.0) or GNU G++ (>= 6.0), CMake (>= 3.13)
|
|
macOS/iOS
|
Xcode chaîne d'outils(>= 9.3), CMake (>= 3.13)
|
|
Android
|
Android studio
|
|
FreeBSD
|
CMake (>= 3.13)
|
Il faut noter que Microsoft SEAL compilé avec Clang++
offre de bien meilleures performances d'exécution que celui
compilé avec GNU G++.
Les dépendances facultatives de Microsoft SEAL sont les
suivantes:
-- Intel HEXL
Intel HEXL(Homomorphic Encryption Acceleration Library)[13]
est une bibliothèque fournissant des implémentations efficaces de
primitives cryptographiques courantes dans le chiffrement homomorphe.
L'accélération est particulièrement évidente sur
les processeurs Intel dotés du jeu d'instructions Intel
AVX512-IFMA52.
-- Microsoft GSL (Guidelines Support Library)
Microsoft GSL est une bibliothèque d'en-tête
uniquement qui implémente un type de vue qui fournit un accès
sécurisé (avec limites vérifiées) à la
mémoire.
-- ZLIB et Zstandard
ZLIB et Zstandard sont des bibliothèques de compression
largement utilisées. Microsoft SEAL peut utiliser ces
bibliothèques pour compresser les données
sérialisées. Zstandard est beaucoup plus rapide que ZLIB.
|