Leçon 2

Schémas cryptographiques et bases techniques

Ce texte présente les principaux schémas FHE, tels que BFV, BGV, CKKS et TFHE. Il détaille leurs usages pour le calcul sur les entiers, l'arithmétique approximative et les opérations au niveau du bit. Les concepts de bootstrapping, de gestion du bruit et d'accélération matérielle qui rendent le FHE opérationnel en pratique sont également expliqués. Les principales bibliothèques du domaine, dont Microsoft SEAL, OpenFHE et TFHE‑rs, sont analysées, et il est montré comment celles-ci offrent aux développeurs les moyens d'intégrer le FHE dans des systèmes concrets.

Introduction aux schémas FHE

Le chiffrement entièrement homomorphe (Fully Homomorphic Encryption, FHE) regroupe un ensemble de constructions cryptographiques, et non pas un unique algorithme, permettant d’effectuer des calculs directement sur des données chiffrées. Chaque schéma s’appuie sur des problèmes mathématiques réputés difficiles, notamment les hypothèses basées sur les réseaux comme Learning With Errors (LWE) et Ring-LWE, considérées robustes face aux ordinateurs quantiques. L’efficacité, les opérations supportées et la gestion du bruit généré lors des calculs distinguent ces différents schémas. Maîtriser les principaux modèles est indispensable pour comprendre comment le FHE s’intègre aux environnements de smart contracts et pourquoi certains choix technologiques sont privilégiés selon les usages visés.

Les quatre schémas les plus couramment évoqués sont BFV, BGV, CKKS et TFHE/FHEW. Chacun répond à des besoins de calcul spécifiques et repose sur des cadres mathématiques légèrement distincts. Leur adoption dans la blockchain varie selon qu’il s’agisse de calculs entiers exacts, d’arithmétique approchée pour l’apprentissage automatique, ou d’opérations logiques rapides indispensables à la logique des smart contracts.

BFV et BGV : Schémas dédiés aux entiers

BFV (Brakerski–Fan–Vercauteren) et BGV (Brakerski–Gentry–Vaikuntanathan) sont parmi les premières constructions FHE pratiques à s’être imposées. Toutes deux reposent sur la cryptographie sur réseaux et sont conçues pour les opérations sur les entiers ou l’arithmétique modulaire. Elles autorisent des opérations d’addition et de multiplication exactes, ce qui les rend idéales pour des calculs financiers, des systèmes de vote ou toute application où la précision est primordiale.

BFV se distingue par sa gestion efficace des calculs entiers modulaires, essentielle lorsque l’application nécessite des résultats déterministes sans erreurs d’arrondi. BGV, bien qu’analogue sur le plan des principes, apporte des optimisations pour le traitement groupé des textes chiffrés, appelé batching, permettant le traitement simultané de plusieurs valeurs. Cette capacité de traitement en lots est précieuse pour la blockchain, où débit transactionnel et coûts dépendent directement de l’efficacité computationnelle.

Les deux schémas reposent sur le chiffrement homomorphe par paliers : seuls un nombre limité d’opérations est possible avant que le bruit du texte chiffré ne devienne trop important. Le bootstrapping — une procédure de « rafraîchissement » du texte chiffré par rechiffrement homomorphe — transforme ces schémas en solutions pleinement homomorphes. Si cette opération était autrefois un obstacle en raison de sa lenteur, les implémentations récentes ont drastiquement réduit son coût, rendant le calcul chiffré continu désormais opérationnel.

CKKS : Arithmétique approchée pour l’apprentissage automatique

CKKS (Cheon–Kim–Kim–Song) introduit une nouvelle approche dans le chiffrement homomorphe en supportant l’arithmétique approchée, et non les opérations entières exactes. Ce schéma convient parfaitement aux besoins en intelligence artificielle et machine learning, où la précision absolue n’est pas indispensable et où l’on accepte des approximations à virgule flottante. CKKS encode des nombres réels ou complexes dans les textes chiffrés et permet des calculs vectorisés, accélérant ainsi l’inférence de modèles chiffrés ou l’analyse sécurisée de données.

Le compromis du CKKS réside dans son caractère approximatif : les résultats, soumis à l’échelle et à l’arrondi lors du chiffrement et du calcul, peuvent comporter de légères erreurs. Pour de nombreuses applications en IA ou science des données, cela reste admissible car les modèles tolèrent de petites fluctuations numériques. Dans l’écosystème blockchain, CKKS ouvre la voie à des agents d’IA confidentiels exécutant des prédictions ou évaluations de risque sur la chaîne, sans exposer le modèle ou les données utilisateurs.

Cependant, CKKS est moins approprié pour les smart contracts financiers ou les systèmes de vote qui exigent des résultats parfaitement exacts, où des schémas entiers comme BFV ou TFHE sont préférés. Néanmoins, la possibilité de traiter efficacement des opérations vectorielles de grande dimension fait du CKKS un atout pour les futurs marchés décentralisés de l’IA et l’apprentissage fédéré confidentiel sur blockchain.

TFHE et FHEW : Schémas pour le calcul binaire

TFHE (Fast Fully Homomorphic Encryption over the Torus) et son prédécesseur FHEW sont conçus pour l’efficacité sur les calculs binaires. Contrairement à BFV, BGV ou CKKS, qui travaillent sur des vecteurs ou polynômes, TFHE chiffre chaque bit séparément et effectue rapidement des opérations booléennes. Cette approche est idéale pour les applications recourant à des portes logiques et non à l’arithmétique traditionnelle, telles que comparaisons, branchements conditionnels ou transitions d’états chiffrés de contrats intelligents.

TFHE se distingue par une capacité de bootstrapping extrêmement rapide. Dans les premiers schémas FHE, le bootstrapping constituait le principal frein en nécessitant plusieurs secondes par opération ; TFHE a ramené ce délai à la milliseconde en repensant la procédure de rafraîchissement des textes chiffrés. Cela rend possible l’exécution continue de calculs chiffrés dans des applications interactives. Cette avancée positionne TFHE comme le choix de référence sur blockchain, notamment dans l’environnement fhEVM de Zama, où des smart contracts doivent traiter des logiques chiffrées complexes de façon optimale.

Le principal compromis avec TFHE concerne la focalisation sur les opérations binaires, rendant les calculs arithmétiques lourds moins efficaces face à un CKKS ou un BFV. Toutefois, des solutions hybrides émergent, où TFHE gère la logique de contrôle et CKKS l’arithmétique approchée, exploitant ainsi les points forts de chaque paradigme dans des applications décentralisées préservant la confidentialité.

Bootstrapping et gestion du bruit

Le bruit constitue un élément intrinsèque des schémas de chiffrement homomorphe fondés sur les réseaux. À chaque opération sur les données chiffrées, ce bruit augmente, et au-delà d’un certain seuil, le texte chiffré devient indéchiffrable. Le bootstrapping consiste à déchiffrer puis rechiffrer homomorphiquement le texte chiffré pour réinitialiser le bruit, permettant ainsi des calculs illimités.

Les premières solutions de bootstrapping étaient lentes et gourmandes en ressources, rendant le FHE peu pratique en dehors de la recherche. Ces dix dernières années, des avancées majeures ont permis de passer de temps de bootstrapping de plusieurs minutes à quelques millisecondes. TFHE et FHEW ont été pionnières dans le bootstrapping à faible latence pour des applications temps réel, tandis que CKKS et BFV ont aussi bénéficié d’améliorations via des optimisations algorithmiques et l’accélération matérielle.

La gestion du bruit ne se limite pas au bootstrapping. Des techniques telles que le changement de module (modulus switching), le changement de clé (key switching) ou le « packing » permettent de maîtriser la croissance du bruit et d’optimiser la performance. Le changement de module réduit la taille des textes chiffrés durant les calculs, le changement de clé facilite le transfert de données chiffrées entre différentes clés sans déchiffrement, et le packing permet de traiter plusieurs valeurs en parallèle dans un unique texte chiffré. Ces techniques constituent la colonne vertébrale des implémentations FHE avancées.

Accélération matérielle et évolution des performances

En dépit des optimisations algorithmiques, le FHE reste nettement plus exigeant que la cryptographie conventionnelle. L’accélération matérielle devient par conséquent un axe stratégique majeur. Les GPU ont d’abord été mis à profit grâce à leur capacité de calcul parallèle, offrant des accélérations notables pour l’arithmétique polynomiale et les traitements vectorisés au cœur des schémas FHE. Plus récemment, les circuits FPGA (Field-Programmable Gate Arrays) et les ASIC (circuits intégrés dédiés) sont explorés afin d’aller encore plus loin en matière d’efficacité.

L’arrivée d’un prototype d’Unité de Traitement Homomorphe (Homomorphic Processing Unit – HPU) par Zama témoigne de l’orientation de l’industrie vers des matériels spécialisés pour le calcul chiffré. Ces équipements sont conçus pour gérer nativement les charges FHE, réduisant significativement la latence et la consommation énergétique. Alors que les applications blockchain exigent des coûts de transaction bas et un débit élevé, l’accélération matérielle sera un levier décisif pour développer des smart contracts FHE économiquement viables.

Bibliothèques et frameworks de développement

De nombreuses bibliothèques open source sont devenues des références pour les développeurs FHE. Microsoft SEAL, l’une des plus répandues, prend en charge les schémas BFV et CKKS, avec une interface accessible et une large compatibilité multiplateforme. OpenFHE (anciennement PALISADE) propose un ensemble de fonctionnalités étendu, avec la gestion de plusieurs schémas et des optimisations avancées. HElib, développé par IBM et centré sur BGV, demeure une plateforme de référence notamment dans la recherche académique.

Pour les solutions fondées sur TFHE, la bibliothèque TFHE-rs de Zama s’est imposée, offrant un bootstrapping performant et une intégration avec le framework fhEVM. Concrete, également développé par Zama, met à disposition des outils efficaces pour concevoir des applications FHE en Rust, conciliant ergonomie et performance. Fhenix, spécialisé dans les smart contracts confidentiels sur Ethereum, propose un SDK Solidity qui simplifie la complexité cryptographique, permettant aux développeurs blockchain de concevoir aisément des contrats chiffrés avec leurs outils habituels.

La montée en maturité de ces bibliothèques a nettement réduit la barrière d’entrée pour les développeurs. Alors que le domaine exigeait autrefois une expertise pointue en cryptographie, il est aujourd’hui accessible aux ingénieurs smart contract familiers de langages comme Solidity ou Rust. Ce mouvement de démocratisation du développement FHE stimule l’innovation et accélère l’adoption dans la finance décentralisée, la santé et l’intelligence artificielle sur blockchain.

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.