Résumé
En utilisant des données dans un service numérique, il est généralement recommandé de trouver un compromis entre l’utilisation de ces données (facilité d’utilisation, performances) et leur sécurité (confidentialité de l’utilisateur, confidentialité des données). Cet article présente des techniques cryptographiques avancées qui apportent une solution pour concilier ces deux objectifs contradictoires. Dans ce contexte, de nombreux cas d’utilisation sont pertinents et deux d’entre eux ont été entièrement mis en œuvre :
- Une classification automatique des dépenses multi-banque permettant de catégoriser les transactions bancaires selon des catégories, tout en reliant le prestataire de services aux transactions ;
- Une classification des signaux d’électrocardiogramme (ECG) permettant d’aider un professionnel de santé à détecter toute arythmie, à l’aide d’un service tiers qui ne recueille aucune information sur l’électrocardiogramme des patients.
Article complet
“Vos données confidentielles sont utiles tandis que votre vie privée est respectée.”
Les données sont des diamants bruts et l’intelligence artificielle (IA) est l’outil qui permet de les tailler avec précision[1][2]. Les algorithmes d’IA sont aujourd’hui mis en œuvre à grande échelle et permettent de gérer des services tels que des moteurs de recherche, des recommandations, la détection de menaces, des publicités ciblées, l’amélioration de services ou encore une aide médicale.
Toutefois, il existe également des contraintes liées à la manipulation de données personnelles et/ou sensibles.
En effet, la réglementation peut constituer un obstacle majeur à la multiplication de ces algorithmes. La réglementation en matière de télécommunications ne permet pas à un opérateur de télécommunications de manipuler des données de communication transitant au sein de ses infrastructures. La réglementation dans le domaine de la santé restreint la manière dont les données médicales peuvent être traitées (et par qui). Plus récemment, le nouveau règlement général sur la protection des données (RGPD) limite la manière dont les données personnelles peuvent être utilisées dans les services mentionnés ci-dessus.
La façon dont certaines parties prenantes peuvent manipuler des données sensibles et personnelles est aussi étroitement liée aux préoccupations éthiques et en matière de responsabilité et doit être gérée en conséquence. Le degré de confiance qu’un utilisateur final accorde à un tiers pouvant manipuler ses données personnelles doit également être pris en compte.
Pour finir, l’ensemble des données nécessaires aux algorithmes d’IA peut être stocké sur certains serveurs susceptibles d’être victimes de cyberattaques. Une fuite de données serait très problématique pour le prestataire de services, d’un point de vue juridique comme de son image de marque.
Des solutions techniques doivent être conçues pour concilier les deux objectifs suivants :
- Autoriser l’exécution standard d’algorithmes d’IA avec un ensemble de données issu des big data ;
- Respecter la réglementation et protéger ces données.
En fait, il existe deux possibilités différentes. La première est l’anonymisation, qui modifie de manière irréversible les données de sorte qu’il soit impossible de trouver directement ou indirectement l’identité d’une personne présente dans l’ensemble de données. Cette technique a l’avantage de supprimer les contraintes du RGPD, mais elle présente également deux inconvénients principaux. Tout d’abord, l’anonymisation peut parfois être très difficile à mettre en œuvre, en particulier lorsque les données sont très complexes (par exemple, la navigation dans les journaux ou les rapports de données d’appel) ou lorsqu’il est possible d’établir un lien entre les données et d’autres sources. Ensuite, comme toutes les données relatives à un individu sont supprimées, il n’est plus possible de fournir un service personnalisé pour chaque individu. L’anonymisation n’est donc pas une solution universelle à notre problème.
Nous allons donc aborder une deuxième solution technique possible : le chiffrement.
En effet, la cryptographie est une solution permettant de créer une IA respectueuse de la confidentialité. L’idée de base est simple : les données sont chiffrées à l’aide d’un schéma de chiffrement et ces données sont manipulables en aveugle, sans avoir accès au schéma de déchiffrement. Ces types de schéma de chiffrement existent déjà : chiffrement homomorphe[3][4], calcul multipartite[5] ou encore chiffrement fonctionnel, pour n’en citer que quelques-uns.
Mais bien sûr, ce n’est pas aussi simple.
Dans un premier temps, si on essaie d’alimenter un algorithme d’IA avec un ensemble de données chiffrées, l’algorithme ne fonctionnera pas. La première étape consiste à réécrire l’algorithme afin qu’il soit compatible avec le chiffrement. Cette étape est cruciale. Si elle est mal réalisée, les résultats seront médiocres et/ou pas assez utiles. Le traitement final des données chiffrées doit être suffisamment rapide et le résultat final doit être aussi précis que si les données n’étaient pas chiffrées.
Concernant le premier point, il est nécessaire de traiter parallèlement les trois aspects suivants :
- La conception des spécifications cryptographiques doit être la plus efficace possible et doit être effectuée de manière appropriée par des experts en chiffrement ;
- La mise en œuvre des opérations cryptographiques doit présenter d’excellentes performances, en utilisant les techniques d’experts pour améliorer les résultats finaux ;
- La description de la compatibilité avec le chiffrement de l’algorithme à exécuter sur les données chiffrées doit être réalisée de manière à ne pas trop réduire la précision du résultat.
Plus important encore, ces trois aspects doivent être traités en parallèle afin d’obtenir le meilleur résultat possible. À ce jour, même si n’importe quel algorithme peut théoriquement être modifié selon ce processus, la réussite de cette technique n’est pas toujours garantie. Cette technique n’est toujours pas réalisable aujourd’hui pour certains algorithmes, car le résultat global serait très faible et absolument inapplicable à un déploiement grandeur nature. Pour d’autres algorithmes, la maturité actuelle est très bonne et un déploiement réel peut dès à présent être envisagé. C’est exactement le cas des deux exemples suivants qui ont été étudiés et mis en œuvre. Plus précisément, dans les deux cas, la phase de formation ne peut pas être effectuée sur des données chiffrées, car elle nécessite beaucoup de calculs trop importants pour les capacités actuelles des techniques cryptographiques. Cependant, la phase d’inférence est véritablement prête pour un déploiement réel.
Tout d’abord, examinons une solution de classification automatique des dépenses multi-banque. Une banque peut créer et utiliser un modèle (par exemple, comme c’est le cas ici, avec un réseau bayésien) pour catégoriser chaque transaction de son client afin de connaître le type de dépense (par exemple, santé, multimédia, nourriture, etc.). Des services de classification dans un environnement multi-banque existent également (par exemple, Bankin’ ou Linxo), mais ces services ont accès à toutes les transactions non chiffrées des utilisateurs finaux, ce qui entraîne de toute évidence des fuites de confidentialité. Notre idée est donc (i) d’agréger localement par utilisateur final l’ensemble des transactions provenant de ses différentes banques, (ii) de chiffrer localement l’ensemble des transactions, (iii) d’envoyer le tout au service de classification qui (iv) effectue la classification en manipulant uniquement des transactions chiffrées à l’aide d’un modèle bayésien préalablement formé. Dans le même temps, l’utilisateur final n’a pas d’information sur le modèle formé par le prestataire de services : chaque partie prenante peut ainsi protéger ses propres entrées sensibles.
L’idée de base du réseau bayésien consiste à calculer la probabilité qu’une transaction tombe dans chaque catégorie potentielle, puis à sélectionner la catégorie la plus probable. La solution développée dans le cadre du projet ANR PerSoCloud[6] est basée sur la technique cryptographique dite de “calcul multipartite” et sur une nouvelle solution brevetée utilisée pour comparer deux valeurs chiffrées. Le réseau bayésien a été développé par Cozy Cloud[7], membre du consortium PerSoCloud. Les performances obtenues permettent de classer une transaction en environ 2 secondes et semblent indiquer que ce service est aujourd’hui prêt pour un déploiement grandeur nature.
Le deuxième cas d’utilisation concerne la classification des signaux d’électrocardiogramme (ECG), une procédure essentielle au diagnostic des maladies cardiaques. Depuis plusieurs années, la communauté des chercheurs qui se consacre au traitement des signaux a étudié et proposé des algorithmes d’IA à la fois efficaces et précis dans ce domaine. Cet algorithme vise à aider les professionnels de santé à détecter les arythmies potentielles en proposant des services de classification externes. Toutefois, la divulgation de données ECG à des tiers pose de sérieux problèmes de confidentialité. Par conséquent, une étude récente, à l’intersection des champs de recherche sur le traitement des signaux et la cryptographie, s’est penchée sur le traitement des données ECG chiffrées. Bien que des solutions efficaces de classification des données ECG ont déjà été mises en œuvre dans le domaine “plaintext” (clair connu), il n’est pas facile de les mettre en œuvre de manière à préserver la confidentialité. Dans le cadre du projet H2020 PAPAYA[8], une solution à ce problème a été proposée. Tout d’abord, un nouveau réseau neuronal dédié à la classification des données ECG a été conçu et est parfaitement compatible avec le chiffrement homomorphe. Le service fonctionne comme suit : (i) le professionnel de santé chiffre le signal ECG et l’envoie au prestataire de services. (ii) Ce dernier déduit la possibilité de détecter un type d’arythmie pour ce signal ECG (dans le domaine crypté) et le renvoie au professionnel de santé qui (vi) déchiffre et affiche le résultat avant de prendre une décision. Le prototype conçu montre des résultats prometteurs en termes de précision et d’efficacité, nécessitant environ 1 200 ms pour traiter 2048 battements de cœur (soit 29 min d’enregistrements environ) avec une précision de 96,24 %.
Conclusion
L’intelligence artificielle est une puissante technologie qui s’appuie énormément sur les données pour fournir une multitude de services. En parallèle, la cryptographie moderne offre des outils extrêmement puissants pour protéger ces données et répondre aux exigences liées à la protection des données, en particulier dans le contexte de l’intelligence artificielle. L’association de ces deux technologies a un avenir très prometteur. Plusieurs cas d’utilisation font déjà leurs preuves, mais cette association nécessite encore du temps pour être universellement mise en œuvre.
[1] Six usages de l’IA au service d’une société plus humaine
[2] Dossier : l’Intelligence Artificielle, entre espoirs et dangers pour l’Homme
[3] Chiffrement homomorphe : la clé de la sécurité
[4] Towards Video Compression in the Encrypted Domain: A Case-Study on the H264 and HEVC Macroblock Processing Pipeline
[5] Cryptology ePrint Archive: Report 2019/427
[6] Projet financé par l’Agence Nationale de la Recherche (ANR)
[7] cozy.io
[8] Projet financé par la Commission européenne : www.papaya-project.eu