Partager via


Modèle de chiffrement de .NET Framework

Le .NET Framework fournit des implémentations de plusieurs algorithmes de chiffrement standard. Ces algorithmes sont faciles à utiliser et possèdent les propriétés par défaut les plus sécurisées possibles. En outre, le modèle de chiffrement de .NET Framework d'héritage d'objet, le design de flux et la configuration sont particulièrement extensibles.

Héritage d'objet

Le système de sécurité .NET Framework implémente un modèle extensible d'héritage de classe dérivée. La hiérarchie est la suivante :

À l'aide de ce modèle de classes dérivées, il est facile d'ajouter un nouvel algorithme ou une nouvelle implémentation d'un algorithme existant. Par exemple, pour créer un nouvel algorithme de clé publique, vous héritez à partir de la classe AsymmetricAlgorithm. Pour créer une nouvelle implémentation d'un algorithme spécifique, vous créez une classe dérivée non abstraite de cet algorithme.

Comment les algorithmes sont implémentés dans le .NET Framework

Les algorithmes symétriques font partie des différentes implémentations disponibles pour un algorithme. La base de tous les algorithmes symétriques est SymmetricAlgorithm, qui est héritée par les algorithmes suivants :

  1. Aes

  2. DES

  3. RC2

  4. Rijndael

  5. TripleDES

Aes est hérité par deux classes : AesCryptoServiceProvider et AesManaged. La classe AesCryptoServiceProvider est un wrapper autour de l'implémentation de AES de l'API de chiffrement Windows (CAPI), alors que la classe AesManaged est écrite entièrement en code managé. Il existe également un troisième type d'implémentation, Cryptography Next Generation (CNG), en plus des implémentations managées et CAPI. ECDiffieHellmanCng est un exemple d'algorithme CNG. Les algorithmes CNG sont disponibles sur Windows Vista et les systèmes d'exploitation ultérieurs.

Vous pouvez choisir l'implémentation qui vous convient le mieux. Les implémentations managées sont disponibles sur toutes les plateformes qui prennent en charge le .NET Framework. Les implémentations CAPI sont disponibles sur les systèmes d'exploitation plus anciens et ne sont plus développées. CNG est l'implémentation la plus récente. C'est là qu'aura lieu le développement. Toutefois, les implémentations managées ne sont pas certifiées par la norme FIPS (Federal Information Processing Standards) et peuvent être plus lentes que les classes wrapper.

Design de flux

Le Common Language Runtime utilise un design orienté flux pour implémenter des algorithmes symétriques et des algorithmes de hachage. Le cœur de ce design est la classe CryptoStream, qui dérive de la classe Stream. Les objets de chiffrement à base de flux prennent tous en charge une seule interface standard (CryptoStream) pour le traitement de la portion transfert de données de l'objet. Comme tous les objets sont construits sur une interface standard, vous pouvez enchaîner ensemble de multiples objets (comme un objet de hachage suivi d'un objet de chiffrement), et vous pouvez effectuer de multiples opérations sur les données sans avoir besoin de stockage intermédiaire pour ces données. Le modèle de diffusion en continu vous permet également de construire des objets à partir d'objets plus petits. Par exemple, un algorithme de hachage et de chiffrement combiné peut être considéré comme un objet de flux unique, même si cet objet est formé d'un jeu d'objets de flux.

Configuration de chiffrement

La configuration de chiffrement vous permet de résoudre une implémentation spécifique d'un algorithme en un nom d'algorithme permettant l'extensibilité des classes de chiffrement du .NET Framework. Vous pouvez ajouter votre propre implémentation logicielle ou matérielle d'un algorithme et faire correspondre cette implémentation au nom d'algorithme de votre choix. Si un algorithme n'est pas spécifié dans le fichier de configuration, les paramètres par défaut sont utilisés. Pour plus d'informations sur la configuration de chiffrement, consultez Configuration de classes de chiffrement.

Choix d'un algorithme

Vous pouvez sélectionner un algorithme à différentes fins : par exemple, pour l'intégrité des données, pour la confidentialité des données ou pour générer une clé. Les algorithmes symétriques et les algorithmes de hachage sont prévus pour protéger les données pour des raisons d'intégrité (protection contre les modifications) ou des raisons de confidentialité (protection contre l'affichage). Les algorithmes de hachage sont principalement utilisés pour l'intégrité des données.

Voici une liste d'algorithmes recommandés par application :

Voir aussi

Concepts

Services de chiffrement

Services de chiffrement

Autres ressources

Tâches de chiffrement

Historique des modifications

Date

Historique

Motif

Juillet 2010

Développement de la rubrique.

Améliorations apportées aux informations.