Modèle cryptographique de .NET Framework

Le .NET Framework fournit des implémentations de plusieurs algorithmes cryptographiques 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 cryptographique 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 :

  • Classe de type algorithme, telle que SymmetricAlgorithm ou HashAlgorithm. Ce niveau est abstrait.
  • Classe d'algorithme qui hérite d'une classe de type algorithme ; par exemple RC2 ou SHA1. Ce niveau est abstrait.
  • Implémentation d'une classe d'algorithme qui hérite d'une classe d'algorithme ; par exemple RC2CryptoServiceProvider ou SHA1Managed. Ce niveau est totalement implémenté.

À 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.

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 cryptographiques à 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 cryptage), 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 cryptage combiné peut être considéré comme un unique objet de flux même si cet objet est formé d'un jeu d'objets de flux.

Configuration cryptographique

La configuration cryptographique vous permet de résoudre une implémentation spécifique d'un algorithme en un nom d'algorithme permettant l'extensibilité des classes cryptographiques 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 cryptographique, consultez Configuration de classes cryptographiques.

Voir aussi

Vue d'ensemble de la cryptographie Tâches cryptographiques Services cryptographiques