Chiffrement homomorphe

Un article de Wikipédia, l'encyclopédie libre.

En cryptographie, un algorithme de chiffrement homomorphe est un système possédant des caractéristiques algébriques qui lui permettent de commuter avec certaines opérations mathématiques, c'est-à-dire qu'il permet d'effectuer lesdites opérations sur des données chiffrées sans avoir à les déchiffrer d'abord.

Le déchiffrement du résultat desdites opérations sur des données chiffrées donnera ainsi le même résultat qu'en ayant effectué ces opérations sur les données non chiffrées ; cette propriété permet de confier des calculs à un agent externe, sans que les données ni les résultats soient accessibles à cet agent.

Un exemple d'application d’un chiffrement homomorphe pour la délégation de calculs pourrait être le cas de figure où un utilisateur souhaiterait faire un calcul coûteux − dont il ne dispose pas nécessairement des ressources nécessaires pour l’exécuter − et aimerait faire appel à un service de cloud computing auquel il ne fait pas nécessairement confiance pour effectuer ses calculs[1].

Le chiffrement homomorphe est un domaine de recherche actif.

Définition[modifier | modifier le code]

Étant donné l’espace des chiffrés, l'espace des messages, et l’espace des fonctions évaluables, on définit un chiffrement homomorphe sur le quadruplet d'algorithmes [2] tel que :

  •  : la fonction de génération des clefs ;
  • est la fonction de chiffrement ;
  • est la fonction de déchiffrement ;
  • est la fonction d'évaluation.

On souhaite avoir les propriétés suivantes :

  • La correction :  ;
  • L’homomorphisme : .

Pour des raisons de simplicité de lecture, on a décrit comme une fonction d'arité 2, mais peut décrire un espace de fonctions d'arité quelconque.

Systèmes partiellement homomorphes[modifier | modifier le code]

On dira d’un cryptosystème qu’il est partiellement homomorphe lorsque son espace de fonctions évaluables est une restriction de l’espace des fonctions calculables.

Par exemple, le cryptosystème à clé publique RSA est partiellement homomorphe vis-à-vis de la multiplication. En effet, si est un couple d'entiers, on a alors l’égalité suivante :

On peut donc dire que le cryptosystème RSA commute avec l’opération de multiplication des entiers dans l’anneau modulaire ℤ/N, où N est un semi-premier.

Systèmes totalement homomorphes[modifier | modifier le code]

Dans la section précédente, les cryptosystèmes décrits ne permettent de réaliser qu’un seul type d'opération homomorphiquement, par exemple pour RSA il s'agit de la multiplication. Dans le cas où l’espace des fonctions évaluables est l’espace des fonctions calculables (définies par exemple sous la forme d’un circuit), on dit alors que le chiffrement est totalement homomorphe[3],[4] (Fully Homomorphic Encryption ou FHE en anglais).

Il existe aussi des constructions dites « presque homomorphes » (somewhat homomorphic en anglais) où les opérations d'additions et de multiplications sont possibles, mais pas nécessairement pour un nombre arbitraire d'opérations. Par exemple le système de Boneh-Goh-Nissim[5], à base de couplages, qui permet d'évaluer au plus une multiplication (pour un nombre arbitraire d'additions).

En 2017, les seuls cryptosystèmes qui supportent les évaluations homomorphes pour tous les circuits reposent sur les réseaux euclidiens[4]. Ces constructions ont d'abord été des systèmes presque homomorphes (la profondeur multiplicative du circuit était bornée) avant que ce problème ne soit résolu par Craig Gentry[3] à l'aide du réamorçage (bootstrap en anglais). Cette méthode repose sur l'idée suivante : puisque la qualité du chiffré se dégrade au fil des multiplications, si l'on est capable de déchiffrer homomorphiquement le chiffré, alors on obtient un nouveau chiffré nettoyé à l'évaluation homomorphe près. Un inconvénient de cette méthode est qu'elle reste encore coûteuse[6]. Une partie de la recherche sur le chiffrement homomorphe en 2017 consiste à limiter l'impact de cette phase de réamorçage, soit en essayant de l'éviter au maximum[7], soit en en améliorant les performances pour le rendre moins rédhibitoire[6].

Applications[modifier | modifier le code]

L'un des intérêts du chiffrement homomorphe est qu'un tiers peut faire des calculs sur les messages chiffrés sans les déchiffrer et que le résultat est utilisable, c'est-à-dire peut être décodé[8].

Histoire[modifier | modifier le code]

L'un des acteurs majeurs du développement des chiffrements homomorphe est Craig Gentry[8],[3].

Notes et références[modifier | modifier le code]

  1. « Focus sur le chiffrement homomorphe », sur Le Monde Informatique,
  2. Gentry 2009, 2.1 Basic Definitions, p. 27.
  3. a b et c Gentry 2009.
  4. a et b Gentry, Sahai et Waters 2013.
  5. Boneh, Goh et Nissim 2005.
  6. a et b Ducas et Micciancio 2015.
  7. Benhamouda et al. 2017.
  8. a et b « Alice and Bob in Cipherspace », American Scientist, vol. 100, no 5,‎ (DOI 10.1511/2012.98.1, lire en ligne).

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

  • [Benhamouda et al. 2017] (en) Fabrice Benhamouda, Tancrède Lepoint, Claire Mathieu et Hang Zhou, « Optimization of Bootstrapping in Circuits », SODA,‎ .
  • [Delahaye 2015] Jean-Paul Delahaye, « Déléguer un calcul sans divulguer ses données », Pour la Science,‎ .
  • [Ducas et Micciancio 2015] (en) Léo Ducas et Daniele Micciancio, « FHEW: Bootstrapping Homomorphic Encryption in less than a second », Eurocrypt,‎ .
  • [Gentry 2009] (en) Craig Gentry, Fully homomorphic encryption using ideal lattices (Thèse de doctorat), , 196 p. (lire en ligne [PDF]).
  • [Gentry, Sahai et Waters 2013] (en) Craig Gentry, Amit Sahai et Brent Waters, « Homomorphic Encryption from Learning with Errors : Conceptually-Simpler, Asymptotically-Faster, Attribute-Based », Crypto,‎ (lire en ligne).
  • [Yi et al. 2014] (en) X. Yi et al., Homomorphic Encryption and Applications, Springer, .
  • [Boneh, Goh et Nissim 2005] (en) Dan Boneh, Eu-Jin Goh et Kobbi Nissim, « Evaluating 2-DNF Formulas on Ciphertexts », TCC,‎ .