Simple Science

La science de pointe expliquée simplement

# Informatique# Cryptographie et sécurité# Intelligence artificielle# Informatique distribuée, parallèle et en grappes# Apprentissage automatique

Avancées dans le chiffrement homomorphe complet avec les GPU

De nouvelles techniques améliorent la vitesse et l'efficacité des calculs chiffrés avec les GPU.

― 8 min lire


Accélération FHE avec desAccélération FHE avec desGPUsapplis sécurisées.Améliorer les calculs chiffrés pour des
Table des matières

Dans le monde d'aujourd'hui, la vie privée et la sécurité sont super importantes, surtout quand on traite des infos sensibles. Le Chiffrement Homomorphe Complet (FHE) est une méthode qui permet de faire des calculs sur des Données chiffrées sans avoir besoin de les déchiffrer d'abord. Ça veut dire que les infos privées restent sécurisées, même quand elles sont traitées par des systèmes peu fiables.

Notre travail se concentre sur l'amélioration de l'efficacité et de la rapidité du FHE, surtout pour des applis générales. On présente de nouvelles techniques qui augmentent la performance des calculs chiffrés sur des unités de traitement graphique (GPU) puissantes.

C'est quoi le chiffrement homomorphe complet (FHE) ?

Le FHE est un type de chiffrement qui permet aux utilisateurs de travailler avec leurs données sans renoncer à leur vie privée. Les utilisateurs peuvent chiffrer leurs données et les envoyer sur le cloud, où elles peuvent être traitées sans exposer l'info originale. Le cloud fait des calculs sur les données chiffrées et renvoie les résultats, que l'utilisateur peut ensuite déchiffrer.

Ce genre de chiffrement est vital pour des tâches comme l'apprentissage automatique et la reconnaissance faciale, où la vie privée est cruciale. Cependant, les premières versions du FHE étaient lentes et prenaient beaucoup de mémoire, rendant leur utilisation efficace difficile.

Le besoin de rapidité

Un des principaux défis avec le FHE, c'est qu'il peut être très lent. Par exemple, faire des calculs de base sur des données chiffrées peut prendre beaucoup de temps, rendant le processus inefficace pour des applis réelles. Pour rendre le FHE pratique, on doit l'accélérer.

Des améliorations récentes ont été faites dans deux domaines clés : de meilleurs schémas de FHE et l'accélération matérielle. En utilisant des GPU avancés, on peut accélérer considérablement les calculs chiffrés.

Utiliser des GPU pour le calcul chiffré

Les GPU sont des outils puissants pour traiter de grandes quantités de données rapidement. Ils peuvent faire beaucoup de calculs en même temps, ce qui les rend parfaits pour les tâches FHE, où il faut faire plein d'opérations sur des données chiffrées.

Notre recherche montre qu'utiliser des GPU peut conduire à des améliorations de Performances significatives pour diverses applications, comme les réseaux neuronaux et les tâches d'algèbre linéaire. Avec notre cadre novateur, les développeurs n'ont pas besoin d'une connaissance approfondie des bibliothèques FHE ; ils peuvent simplement écrire leur code en langage C.

Contributions clés

  1. Algorithme personnalisé : On a développé un algorithme spécialisé qui convertit du code de haut niveau en programmes FHE optimisés pour GPU. Ce processus ne permet pas seulement d'accélérer les choses, mais réduit aussi la taille du circuit nécessaire pour le calcul.

  2. Nouvelle méthodologie de planification : On a introduit une nouvelle façon de planifier les tâches qui permet une meilleure efficacité lors de l'utilisation de plusieurs GPU. Ça aide à répartir la charge de travail et à obtenir des résultats plus rapides.

  3. Backend optimisé : Notre backend pour le système cryptographique CGGI est conçu pour une évaluation rapide de différents algorithmes. Il surpasse les implémentations précédentes, rendant possibles les applis chiffrées à grande échelle.

Comment fonctionne notre système ?

Notre système a trois couches conçues pour travailler ensemble afin de rendre le calcul chiffré plus rapide et plus efficace.

  • Frontend : Cette couche convertit les programmes de haut niveau en un format adapté au FHE. Elle simplifie le processus pour les utilisateurs, afin qu'ils n'aient pas à se soucier de la complexité sous-jacente.

  • Couche intermédiaire : Cette partie gère la répartition des tâches sur plusieurs GPU. Elle découpe la charge de travail pour s'assurer que tous les appareils sont utilisés efficacement.

  • Backend : Cette couche se concentre sur l'exécution des calculs réels. Elle gère le gros du travail nécessaire pour traiter les données chiffrées.

Caractéristiques du circuit

Pour que le FHE soit efficace, la conception des circuits qui effectuent les calculs est cruciale. Optimiser ces circuits aide à accélérer le traitement.

On a découvert que les circuits avec des niveaux larges et des chemins critiques courts (la plus longue séquence d'opérations dépendantes) fonctionnent mieux. Par exemple, des tâches comme la multiplication de matrices ont des caractéristiques qui les rendent idéales pour un calcul chiffré rapide.

Génération de circuits efficaces

Quand on convertit un programme en C en un format pour le FHE, on utilise deux étapes principales : la synthèse de haut niveau et la synthèse logique. Ces étapes aident à s'assurer que le circuit final est optimisé à la fois pour la vitesse et la taille.

On utilise un outil appelé Google XLS, qui génère rapidement du code et décrit efficacement la fonctionnalité du circuit. On utilise ensuite un autre outil, Yosys, pour peaufiner ça.

En se concentrant sur la taille du circuit et l'efficacité des portes, on réduit le temps nécessaire pour créer ces circuits. Par exemple, on peut diminuer la taille du circuit pour un calcul de produit scalaire de 40%, ce qui accélère l'ensemble du process.

Traitement parallèle avec des GPU

Un de nos principaux objectifs est d'utiliser les capacités des GPU au maximum. Grâce au haut degré de parallélisme qu'ils offrent, on peut exécuter plusieurs portes en même temps.

On a développé un planificateur qui permet à nos applications FHE de fonctionner en parallèle sur plusieurs GPU. Ce planificateur s'assure que les tâches sont réparties équitablement entre les appareils, maximisant la performance.

Gestion de la mémoire

Une partie essentielle du travail avec les GPU est de gérer la mémoire efficacement. On utilise des stratégies de mémoire spécialisées pour optimiser l'accès aux données et les vitesses de traitement. En stockant certains types de données dans une mémoire à accès rapide, on peut réduire les goulets d'étranglement et améliorer l'efficacité globale.

Notre approche inclut l'utilisation d'une mémoire d'hôte fixée pour stocker les textes chiffrés. Cette mémoire est plus rapide d'accès et nous permet de garder les transferts de données efficaces.

Le rôle du Bootstrapping

Un aspect critique du FHE est le processus de bootstrapping, qui aide à maintenir l'intégrité des données chiffrées pendant les calculs. Le bootstrapping est nécessaire pour réduire le bruit – une partie inévitable des opérations sur des données chiffrées.

En utilisant notre système cryptographique CGGI, on peut implémenter le bootstrapping de manière à minimiser son impact sur la performance. C'est essentiel pour s'assurer que les calculs peuvent être effectués sans interruptions ou erreurs.

Évaluation des performances

On a testé notre système à l'aide de divers benchmarks pour mesurer sa performance dans différents scénarios.

  • Benchmarks d'algèbre linéaire : Des tâches comme les produits scalaires et les multiplications de matrices ont montré des accélérations significatives en utilisant notre approche sur des GPU.

  • Inférence en apprentissage automatique : On a évalué des scénarios comme la régression logistique et les réseaux neuronaux. Nos résultats ont montré qu'utiliser des GPU a entraîné des temps de traitement beaucoup plus rapides comparés aux méthodes CPU traditionnelles.

  • Récupération d'informations privées : On a exploré l'application du FHE pour rechercher dans des bases de données chiffrées. Notre système s'est avéré efficace pour gérer les requêtes avec précision et rapidement.

Applications dans le monde réel

Notre cadre a une large gamme d'applications potentielles. Voici quelques exemples :

  1. Apprentissage automatique préservant la vie privée : Les organisations peuvent utiliser notre système pour réaliser de l'apprentissage automatique sur des données chiffrées sans exposer d'infos sensibles.

  2. Gestion des données de santé : Protéger les dossiers des patients tout en permettant des analyses est crucial. Notre approche permet des opérations sécurisées sur des infos de santé sensibles.

  3. Cloud computing sécurisé : En permettant des calculs sur des données chiffrées dans le cloud, les entreprises peuvent réduire leurs risques tout en profitant des ressources cloud.

Conclusion

Notre travail sur l'accélération de l'exécution chiffrée pour des applications générales montre des avancées significatives dans le domaine du FHE. En tirant parti des GPU et en concevant un cadre efficace, on a amélioré la rapidité et la praticité de travailler avec des données chiffrées.

Les futures recherches exploreront d'autres optimisations et pourraient étendre notre cadre pour supporter des schémas de chiffrement supplémentaires. Avec ces efforts continus, on espère améliorer l'utilisabilité et la performance des solutions de calcul sécurisé.

Source originale

Titre: ArctyrEX : Accelerated Encrypted Execution of General-Purpose Applications

Résumé: Fully Homomorphic Encryption (FHE) is a cryptographic method that guarantees the privacy and security of user data during computation. FHE algorithms can perform unlimited arithmetic computations directly on encrypted data without decrypting it. Thus, even when processed by untrusted systems, confidential data is never exposed. In this work, we develop new techniques for accelerated encrypted execution and demonstrate the significant performance advantages of our approach. Our current focus is the Fully Homomorphic Encryption over the Torus (CGGI) scheme, which is a current state-of-the-art method for evaluating arbitrary functions in the encrypted domain. CGGI represents a computation as a graph of homomorphic logic gates and each individual bit of the plaintext is transformed into a polynomial in the encrypted domain. Arithmetic on such data becomes very expensive: operations on bits become operations on entire polynomials. Therefore, evaluating even relatively simple nonlinear functions, such as a sigmoid, can take thousands of seconds on a single CPU thread. Using our novel framework for end-to-end accelerated encrypted execution called ArctyrEX, developers with no knowledge of complex FHE libraries can simply describe their computation as a C program that is evaluated over $40\times$ faster on an NVIDIA DGX A100 and $6\times$ faster with a single A100 relative to a 256-threaded CPU baseline.

Auteurs: Charles Gouert, Vinu Joseph, Steven Dalton, Cedric Augonnet, Michael Garland, Nektarios Georgios Tsoutsos

Dernière mise à jour: 2023-06-19 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2306.11006

Source PDF: https://arxiv.org/pdf/2306.11006

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires