Dans un premier article [1], nous avons rappelé les problèmes de privacy inhérents à l'exécution de fonctions ou de modèles de Machine Learning (ML) sur des serveurs distants, et avons introduit la nouvelle technologie appelée chiffrement homomorphe (Fully Homomorphic Encryption, FHE, en anglais) permettant de résoudre ces problèmes. Dans ce second article, nous allons une étape plus loin, et expliquons comment chacun d’entre nous, développeur ou data scientist, peut utiliser Python pour concevoir ses propres fonctions ou modèles en FHE et les déployer.
1. Chiffrement homomorphe
Un algorithme de chiffrement homomorphe, Fully Homomorphic Encryption (FHE) en anglais, est un système capable d’effectuer des opérations sur des données chiffrées en produisant le même résultat que si les opérations étaient réalisées en clair. Par exemple, une addition en FHE de deux valeurs chiffrées, une fois déchiffrée, donne exactement le même résultat que l’addition en clair de ces deux valeurs d’entrée.
Les chiffrements FHE sont une version plus ambitieuse et souvent plus utile que les chiffrements dits partiellement homomorphes, qui ne peuvent réaliser qu'un seul type d'opération sur les chiffrés : par exemple, le RSA [2] est partiellement homomorphe pour la multiplication (quand on multiplie un chiffré c1 = m1e par un autre chiffré c2 = m2e, on obtient (m1xm2)e, qui est bien un chiffré de m1 x m2) modulaire, et le cryptosystème de Paillier [3] est partiellement homomorphe pour l’addition.
Les chiffrements...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première