IA de confiance
17/12/2020

Peut-on confier des calculs sur des données sensibles à un tiers sans lui faire totalement confiance ?


Auteur : Geoffray Brelurut
Temps de lecture : 9 minutes
Quantmetry.com : Peut-on confier des calculs sur des données sensibles à un tiers sans lui faire totalement confiance ?

Peut-on confier des calculs sur des données sensibles à un tiers sans lui faire totalement confiance ?

Problématique :

La Data peut apporter énormément de valeur aux entreprises, mais elles doivent pour cela maîtriser l’énorme volume des données et parfois la vélocité avec laquelle les données sont acquises. Pour ne pas être débordées, il faut disposer de moyens de calculs importants, qui ne sont pas forcément accessibles à toutes les entreprises.

C’est pourquoi des acteurs ont émergé pour vendre de la puissance de calcul et de l’espace de stockage sur le Cloud. Ceci soulève une nouvelle problématique : si les données apportent de la valeur, elles sont stratégiques. Peut-on donc les confier à un tiers sans les crypter ? Mais si elles sont cryptées comment ce tiers pourra-t-il effectuer tous les calculs nécessaires pour en extraire la valeur ? 

Au-delà des données stratégiques, ces questions s’appliquent à toutes les données sensibles, par exemple dans le domaine médicale. Avec ce type de données, même si les variables ne sont pas directement identifiantes, il reste facile d’identifier des dates, une taille, un poids ou un âge, afin de recouper les informations pour identifier les patients. L’anonymisation des données n’est donc pas suffisante. Un autre exemple est celui des données géolocalisées. Des données de latitude et de longitude sont facilement identifiantes et exploitables. En effet, même si le nom des variables n’est pas explicite, une fois leur nature identifiée, il n’y a que deux solutions à tester pour retrouver la localisation des observations. Cette faille peut être problématique les libertés individuelles mais également pour l’activité elle-même, par exemple si le lieu identifié est une base militaire ou un laboratoire d’expérimentation animale.

Cryptage classique et limites :

La solution pour empêcher toute exploitation des données est évidemment de les modifier pour les rendre méconnaissables. C’est ce que réalise le cryptage. Ainsi, dans une approche de cryptage classique, on considère deux interlocuteurs : l’émetteur et le récepteur. L’émetteur applique une transformation sur un message (qui peut être un texte comme un tableau de données). Cette transformation est réalisée par l’algorithme de cryptage et dépend en général d’une paire de clés : la clé publique qui permet le chiffrement des messages, et la clé privée qui permet le déchiffrement des messages.

Lors d’un échange de données cryptées classique, le récepteur a au préalable envoyé à l’émetteur une clé à partir de laquelle le message est chiffré (la clé publique). L’émetteur envoie donc un message crypté grâce à la clé publique fournie par le récepteur. Le récepteur décode le message grâce à un algorithme de décryptage et une clé qui n’est connue que de lui (la clé privée). Si un message doit être renvoyé en réponse à l’émetteur, alors il devient le récepteur, et le schéma s’inverse : le message est crypté grâce à sa clé publique, et il le décrypte avec sa clé privée.

Pour que ce système fonctionne, les deux clés doivent être distinctes, on parle de chiffrement asymétrique. Un exemple de chiffrement asymétrique est le protocole RSA (ici en version simplifiée) :

Le choix de la clé publique et le cryptage des messages suivent le protocole suivant :

  • choisir 2 nombres premiers p  et q 
  • calculer n, tel que n = pq
  • choisir un entier e parmi de façon judicieuse (les concepts mathématiques qui permettent de choisir sont très avancés et dépassent le périmètre de cet article)
  • le message m est crypté, donc transformé en message c : c = me mod(n)

La clé publique est donc le couple (e, n).

Pour décrypter le message, il faut trouver la racine  eme modulo n de c. Ce calcul est facile si p et q sont connus. Mais, il est très difficile de trouver p et q à partir de n. En pratique la clé privée est l’inverse de e modulo n, noté  m = cd mod(n). d conserve donc toute l’information concernant p et q ainsi que le choix de e. n est quant à elle obtenue à partir de la clé publique.

Figure 1 : Echange de données avec un cryptage classique

L’approche classique présente deux défauts : 1) elle implique un partage de clé entre les deux interlocuteurs, qui peut donc être interceptée par un tiers, et 2) le récepteur peut décoder les données qui deviennent donc accessibles par son biais. L’approche permet donc potentiellement d’accéder aux données via le cloud provider. En fait, elle ne sécurise que le transfert de données. En effet, les clés sont un moyen d’identification mutuelle des interlocuteurs, ce qui empêche un troisième acteur d’avoir accès à l’information qu’ils échangent. Mais elle ne résout pas le problème d’un récepteur auquel on ne ferait pas confiance. 

Cryptage homomorphique :

Pour pallier les défauts mentionnés précédemment, il faut pouvoir utiliser les données cryptées pour les calculs et que l’émetteur n’ait plus qu’à appliquer l’algorithme de décryptage sur le résultat renvoyé. Il faut alors que le résultat décrypté soit équivalent à celui qu’on aurait obtenu sur les données avant cryptage. Cela implique que le cryptage doit conserver les caractéristiques mathématiques des données, une propriété appelée homomorphie. C’est pourquoi on parle de cryptage homomorphique.

Figure 2 : Echange de données avec un cryptage homomorphique

Types de cryptages homomorphiques :

Le cryptage peut être caractérisé par les opérations pour lesquelles il est homomorphique. On distingue ainsi du moins complet au plus complet :

  • le cryptage homomorphique partiel (PHE, Partial Homomorphic Encryption) qui ne permet qu’un type d’opération : addition ou multiplication
  • le cryptage un peu homomorphique (SHE, Somewhat Homomorphic Encryption) qui permet les deux types d’opérations, mais seulement dans des séquences bien définies
  • le cryptage complètement homomorphique nivelé (LFHE, Leveled Fully Homomorphic Encryption) : qui permet tout type d’opération mais seulement pour des séquences de longueur définie
  • le cryptage complètement homomorphique (FHE, Fully Homomorphic Encryption) : qui permet tout type d’opération quelque soit la longueur de la séquence.

Un exemple de cryptage homomorphique partiel  multiplicatif est le protocole RSA, dont le cryptage prend la forme : ε(m) = me mod(n). Considérant le produit de deux messages m1 et m2 :

ε(m1(m2) = m1em