Définition du cryptage homomorphe
Que faites-vous lorsque vous devez effectuer des calculs sur de grands ensembles de données tout en préservant leur confidentialité ? En d’autres termes, vous souhaitez rassembler des analyses, par exemple, sur les données des utilisateurs, sans révéler le contenu au moteur de calcul qui va calculer les analyses. Ou encore, vous êtes un fournisseur de services en nuage prenant en charge le stockage crypté de documents, mais vous souhaitez permettre à vos utilisateurs de modifier leurs documents sans les décrypter au préalable.
C’est là que le cryptage homomorphe pourrait venir à votre secours. Le cryptage homomorphique offre la possibilité d' »externaliser » le stockage et le calcul des données vers des environnements cloud en convertissant d’abord les données sous une forme cryptée.
Ce qui est remarquable dans cette technique, c’est que vous obtenez les mêmes résultats (sous forme cryptée) en effectuant les opérations et les calculs souhaités sur les données cryptées que vous l’auriez fait en effectuant les mêmes opérations sur leur forme non cryptée.
« Le cryptage homomorphe diffère des méthodes de cryptage typiques en ce qu’il permet d’effectuer des calculs directement sur les données cryptées sans nécessiter l’accès à une clé secrète. Le résultat d’un tel calcul reste sous forme cryptée et peut, à un moment ultérieur, être révélé par le propriétaire de la clé secrète », selon Homomorphic Encryption Standardization, le consortium de normes industrielles qui maintient les normes « officielles », les conseils et les informations sur les développements dans le domaine. Cela permet d’utiliser les mêmes solutions d’analyse informatique sans compromettre la confidentialité des données à aucun stade.
L’idée de concevoir de telles suites de chiffrement a été largement expérimentale et proposée à la fin des années 1970. Il a fallu trois décennies pour qu’un premier concept pratique soit conçu en 2009, par Craig Gentry.
Ce qui est différent avec le chiffrement homomorphique
Lorsque vous pensez à la cryptographie dans un contexte standard de l’industrie, comme HTTPS (rendu possible par SSL/TLS) ou la messagerie instantanée de bout en bout, vous supposez que toute la cryptographie est intrinsèquement sûre et garantit la confidentialité et l’intégrité. C’est une différence frappante qui distingue le cryptage homomorphe des cryptosystèmes typiques.
Pour que le cryptage homomorphe fonctionne, ses suites de chiffrement sont conçues pour être malléables, ce qui signifie qu’elles ne peuvent pas garantir l’intégrité des données. Il ne s’agit pas d’un défaut, mais d’une caractéristique voulue qui facilite l’exploitation des données cryptées.
La malléabilité est une propriété des algorithmes cryptographiques qui permet la transformation d’un texte crypté en un autre texte crypté valide qui change la signification du texte original. De plus, l’utilisateur qui transforme les données n’aurait même pas besoin de savoir ou de déduire ce qu’étaient les données non chiffrées d’origine.
Plus simplement, si j’ai envoyé un courriel chiffré à l’éditeur de CSO indiquant « CSO est génial », un attaquant de type man-in-the-middle (MitM) qui peut voler ce texte chiffré mais ne sait pas ce qu’il signifie pourrait potentiellement le transformer en une autre chaîne chiffrée qui, lorsque l’éditeur la déchiffre, indique « Je déteste CSO ! »
Bien sûr, les systèmes pratiques de cryptage des courriels ont mis en place des contre-mesures pour protéger l’intégrité des données et rendre ce scénario pratiquement impossible, à condition qu’aucune vulnérabilité ne se trouve dans les algorithmes ou leur mise en œuvre.
Par exemple, le système de cryptage RSA, qui est partiellement homomorphe, utilise ce qu’on appelle une fonction de « rembourrage » pour minimiser l’impact de la malléabilité. De plus, les sommes de contrôle d’authentification des messages (par exemple, les hachages MD5 ou SHA) aident à valider l’intégrité des données.
Ce n’est pas tant un sujet de préoccupation car la confidentialité des données ne serait pas impactée par la malléabilité. L’inquiétude survient lorsque, par exemple, le moteur de calcul travaillant sur des données cryptées introduit une erreur dans les données ou le résultat crypté en raison d’un algorithme défectueux. La nature du cryptage homomorphique pourrait rendre particulièrement difficile la découverte de ces erreurs.
Types de cryptage homomorphique
Toutes les données sont des nombres (les ordinateurs travaillent en binaire). La cryptographie, étant une branche mathématique, travaille directement avec les nombres. Cela signifie que le cryptage et le décryptage ne sont rien d’autre qu’un jeu complexe d’opérations sur les nombres.
Il existe trois types de cryptage homomorphe :
- Le cryptage partiellement homomorphe (PHE) ne permet qu’un seul type d’opération mathématique (comme la multiplication) sur un ensemble de données donné pour un nombre illimité de fois.
- Le chiffrement quelque peu homomorphe (SHE) est plus permissif tout en restant restrictif, permettant à la fois l’addition et la multiplication sur un ensemble de données donné, mais seulement quelques fois.
- Le chiffrement totalement homomorphe (FHE) est le meilleur de tous les mondes, permettant différents types d’opérations sur les données pour un nombre illimité de fois, mais avec un compromis important sur les performances.
Chaque approche penche pour offrir soit des performances, soit une utilité, soit une protection, le FHE étant très intensif et actuellement inefficace (et offrant donc des performances médiocres dans un scénario du monde réel).
Les développements actuels du cryptage homomorphique sont un équilibre constant entre les trois pour atteindre une solution optimale. Une fois débloqué, le potentiel du FHE mettra en avant des possibilités révolutionnaires, comme la possibilité pour un opérateur de cloud d’effectuer diverses opérations mathématiques sur des données cryptées.
Cas d’utilisation du cryptage homomorphe
Industries réglementées et axées sur la vie privée
Le stockage de données et d’informations personnellement identifiables (PII) dans des industries hautement réglementées telles que les soins de santé, la finance, le droit et la banque est un défi. Le stockage crypté est une mesure de sécurité que ces industries mettent en œuvre, mais un autre défi se pose lorsqu’elles doivent d’abord décrypter les données de l’utilisateur pour en tirer des idées.
Par exemple, dériver des analyses prédictives, qui utilisent l’apprentissage automatique, à partir de dossiers de patients peut aider les médecins à identifier des remèdes aux maladies. Avec le cryptage homomorphe, la nécessité de décrypter d’abord les dossiers des patients se dissiperait. Les algorithmes analytiques pourraient être adaptés pour fonctionner sur les données cryptées des patients et produire des résultats également sous une forme cryptée. Ce résultat, une fois décrypté, fournirait les mêmes informations que celles qui auraient été obtenues à partir de fichiers de patients non cryptés.
Ce cas d’utilisation s’étend également à la publicité en ligne. Avec les restrictions croissantes imposées par des législations comme le GDPR, proposer des publicités personnalisées tout en protégeant la vie privée des utilisateurs est un défi. Le cryptage homomorphe vous permet de dériver des analyses et des idées à partir de données utilisateur cryptées sans compromettre la confidentialité des informations de l’utilisateur dans le processus.
Stage cloud externalisé
L’externalisation du stockage des données peut être une stratégie rentable lorsqu’il s’agit de réduire les coûts de personnel et d’éliminer les maux de tête associés à la maintenance d’un centre de données sécurisé à part entière. En outre, il arrive que des projets doivent externaliser des bases de données au-delà des frontières parce que les protections juridiques ne sont pas suffisantes dans leur propre juridiction. Comme exemple concret, considérez WikiLeaks, une organisation activiste à but non lucratif qui héberge ses serveurs principaux en Suède.
Le chiffrement résout le problème du stockage des données, mais ajouter ou modifier des données chiffrées dans leur forme chiffrée est un problème que le chiffrement homomorphe peut résoudre. Pour ajouter de la substance, cela peut écraser la possibilité d’incidents comme lorsqu’un ancien ingénieur de Google avait abusé de ses privilèges pour harceler certains utilisateurs de la plateforme.
Avec le cryptage homomorphe, les données sont stockées en toute sécurité dans le cloud tout en permettant la possibilité de calculer et de rechercher des informations cryptées. Dans un environnement idéal, seul l’utilisateur propriétaire des données dans le cloud aurait la capacité de décrypter les données et les résultats du cryptage homomorphe.
Si vous voulez expérimenter cette technologie, le site Web Homomorphic Encryption Standardization fournit de nombreuses implémentations open-source du cryptage homomorphe. Microsoft SEAL fournit, « des bibliothèques de cryptage qui permettent d’effectuer des calculs directement sur des données cryptées » pour aider les développeurs à construire des services de stockage et de calcul de données cryptées de bout en bout.