Présentation du projet HEIR
HEIR est un compilateur qui transforme un programme source en une version capable d’opérer directement sur des données chiffrées grâce au chiffrement homomorphe (HE). Le principe du HE garantit qu’aucune information claire n’est accessible pendant l’exécution, tant que la cryptographie n’est pas compromise. Le projet se concentre sur la compilation de modèles d’apprentissage automatique pré‑entraînés, offrant ainsi la possibilité d’inférer de façon totalement privée.
Performances sur CPU monothread
Le démonstrateur le plus simple est un détecteur de fraude par carte bancaire, réseau à trois couches avec des activations sigmoïdes. La compilation se lance avec la commande suivante :
bazel run -c opt //demos/cc_fraud/lattigo:evaluate_fheLe temps total d’inférence sur des entrées chiffrées est d’environ 2 s. En comparaison, l’exécution en clair sur le même CPU nécessite 0,5 ms, soit un facteur de ralentissement d’environ 4 000. Le profil montre que la première couche linéaire consomme près de 1,2 s, soit plus de la moitié du temps total.
Le modèle tient dans un seul ciphertext CKKS, ce qui évite le bootstrapping, la phase la plus coûteuse du HE. Lorsque le nombre d’éléments dépasse ~32 k, plusieurs ciphertexts sont requis et le coût augmente proportionnellement.
Optimisations GPU et charges plus lourdes
Des modèles plus volumineux ont été testés :
- network_anomaly (ensemble d’auto‑encodeurs) : 30 s d’inférence.
- criteo (recommandation) : 5 min d’inférence.
- hotword (réseau convolutionnel 10 couches) : 20 min d’inférence.
Ces charges demandent 60‑90 GiB de mémoire. Une version GPU, réalisée avec un H100, réduit le temps d’inférence du modèle criteo à ≈ 500 ms, contre 10 ms en clair, soit un ralentissement d’environ 50×. Cette amélioration montre que le parallélisme matériel compense partiellement la surcharge inhérente au HE.
Limitations et contraintes techniques
Plusieurs facteurs limitent l’adoption immédiate :
- Le besoin d’un environnement Bazel hermétique, qui complique le déploiement.
- Un pré‑traitement spécifique au modèle, effectué une fois avant l’inférence, qui n’est pas comptabilisé dans les mesures de latence.
- Une perte de précision d’environ 2 bits observée à la fin du calcul, liée à la quantification du schéma CKKS. Cette perte peut être ajustée via les paramètres de compilation, mais elle reste un compromis entre précision et performance.
- Le coût initial de génération et de distribution des clés cryptographiques, qui n’est pas inclus dans les benchmarks.
Malgré ces contraintes, les temps d’exécution s’améliorent continuellement, notamment grâce aux travaux sur les accélérateurs FPGA et ASIC, qui promettent des gains supplémentaires. Le projet HEIR démontre ainsi la faisabilité technique de l’inférence privée sur des modèles réels, tout en soulignant les marges de progression nécessaires pour atteindre des performances comparables à l’exécution en clair.