Modifier

Partager via


Chiffrement homomorphes avec SEAL

.NET

Cet article explique comment et quand utiliser le chiffrement homomorphe, et comment implémenter le chiffrement homomorphe avec la bibliothèque open source Microsoft Simple Encrypted Arithmetic Library (SEAL).

Architecture

Diagramme montrant le chiffrement traditionnel et SEAL.

Téléchargez un fichier Visio de cette architecture.

Workflow

Les schémas de chiffrement traditionnels sont constitués de trois fonctionnalités : la génération, le chiffrement et le déchiffrement de clés. Les schémas de chiffrement à clé symétrique utilisent la même clé secrète pour le chiffrement et le déchiffrement. Cela permet un chiffrement efficace des grandes quantités de données pour un stockage cloud externalisé sécurisé. Les schémas de chiffrement à clé publique utilisent une clé publique pour le chiffrement et une clé secrète distincte pour le déchiffrement. Toute personne connaissant la clé publique peut chiffrer les données, mais seule celle qui connaît la clé secrète peut déchiffrer et lire les données. Le chiffrement à clé publique permet une communication sécurisée en ligne, mais est généralement moins efficace que le chiffrement à clé symétrique.

Vous pouvez utiliser le chiffrement traditionnel pour le stockage et la communication sécurisés, mais le calcul externalisé nécessite la suppression des couches de chiffrement. Les services cloud qui fournissent un calcul externalisé doivent implémenter des stratégies d’accès pour empêcher tout accès non autorisé aux données et aux clés. La confidentialité des données repose sur les stratégies de contrôle d’accès qui sont imposées par le fournisseur de services cloud et approuvées par le client.

Avec le chiffrement homomorphe Microsoft SEAL, les fournisseurs de services cloud n’ont jamais d’accès non chiffré aux données qu’ils stockent et calculent. Les calculs peuvent être effectués directement sur les données chiffrées. Les résultats de ces calculs chiffrés restent chiffrés et peuvent être déchiffrés uniquement par le propriétaire des données à l’aide de la clé secrète. La plupart des chiffrements homomorphes utilisent des schémas de chiffrement à clé publique, bien que la fonction de clé publique ne soit pas toujours nécessaire.

Détails du scénario

Les entreprises envoient, reçoivent et stockent souvent leurs données cloud sous une forme chiffrée. Mais pour tirer parti du cloud computing, les entreprises doivent fournir des données non chiffrées ou les clés pour les déchiffrer. Cette pratique expose les données des entreprises à un risque accru. Le chiffrement homomorphe permet le calcul directement sur les données chiffrées, ce qui facilite l’application du potentiel du cloud pour les données critiques en matière de confidentialité.

Cas d’usage potentiels

  • Calculs légers tels que l’addition et la multiplication sur les données et parties de programmes critiques en matière de confidentialité.
  • Le cloud computing externalisé, où un seul propriétaire détient toutes les données et le seul accès aux clés de déchiffrement.

Considérations

  • Seuls certains calculs sont possibles sur les données chiffrées. La bibliothèque de chiffrement homomorphe Microsoft SEAL autorise les ajouts et les multiplications sur les entiers chiffrés ou les nombres réels. Les comparaisons chiffrées, les tris ou les expressions régulières ne sont pas souvent réalisables pour évaluer des données chiffrées à l’aide de cette technologie. Ainsi, seuls des calculs de cloud critiques en matière de confidentialité spécifiques sur des parties de programmes peuvent être implémentés à l’aide de Microsoft SEAL.

  • Microsoft SEAL est fourni avec deux schémas de chiffrement homomorphe aux propriétés différentes. Le schéma BFV permet l’exécution d’opérations arithmétiques modulaires sur des entiers chiffrés. Le schéma CKKS permet des ajouts et des multiplications sur des nombres réels ou complexes chiffrés, mais produit uniquement des résultats approximatifs. CKKS est le meilleur choix pour la réalisation de la somme de nombres réels chiffrés, l’évaluation de modèles de Machine Learning sur des données chiffrées ou le calcul de distances d’emplacements chiffrés. Pour les applications où des valeurs exactes sont nécessaires, le schéma BFV est le seul choix possible.

  • Le chiffrement homomorphe n’est pas efficace. Étant donné que le chiffrement homomorphe est associé à une grande surcharge de performances, les calculs déjà coûteux à effectuer sur les données non chiffrées ne sont probablement pas réalisables sur les données chiffrées.

  • Les données chiffrées avec le chiffrement homomorphe sont beaucoup plus volumineuses que les données non chiffrées. Il peut donc être inutile de chiffrer des bases de données volumineuses entières, par exemple, avec cette technologie. Au lieu de cela, les scénarios dans lesquels des exigences strictes en matière de confidentialité interdisent le calcul non chiffré du cloud, mais les calculs eux-mêmes sont relativement légers, les cas d’usage sont significatifs.

  • En règle générale, les schémas de chiffrement homomorphe ont une clé secrète unique, qui est conservée par le propriétaire des données. Le chiffrement homomorphe n’est pas raisonnable dans les scénarios où plusieurs propriétaires de données privées différents souhaitent s’impliquer dans le calcul collaboratif.

  • Il n’est pas toujours aisé de traduire un calcul non chiffré en calcul sur les données chiffrées. Même si de nouveaux utilisateurs peuvent programmer et exécuter un calcul à l’aide de Microsoft SEAL, il peut y avoir une grande différence entre une implémentation efficace et une implémentation inefficace. Il peut être difficile de savoir comment améliorer les performances.

  • Alors que le chiffrement homomorphe primitif est lui-même sécurisé, il ne garantit pas que les applications et les protocoles qui l’utilisent sont sécurisés.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Étapes suivantes

Pour en savoir plus sur le chiffrement homomorphe et la bibliothèque Microsoft SEAL, consultez Microsoft SEAL depuis Microsoft Research et le projet de code SEAL sur GitHub.

Consultez les ressources suivantes sur la sécurité dans Azure :