Compartir a través de


Modelo de criptografía de .NET Framework

.NET Framework proporciona implementaciones de numerosos algoritmos criptográficos estándar. Estos algoritmos son fáciles de utilizar y disponen de las propiedades predeterminadas más seguras. Además, el modelo de criptografía de .NET Framework de la herencia de objetos, el diseño de las secuencias y la configuración es muy extensible.

Herencia de objetos

El sistema de seguridad de .NET Framework implementa un modelo extensible de herencia de clases derivadas. La jerarquía es la siguiente:

Con este modelo de clases derivadas, resulta fácil agregar un nuevo algoritmo o una nueva implementación de un algoritmo existente. Por ejemplo, para crear un nuevo algoritmo de clave pública, heredaría de la clase AsymmetricAlgorithm. Para crear una nueva implementación de un algoritmo específico, crearía una clase derivada no abstracta de ese algoritmo.

Cómo se implementan los algoritmos en .NET Framework

Como ejemplo de las distintas implementaciones disponibles para un algoritmo, considere los algoritmos simétricos. La base de todos los algoritmos simétricos es SymmetricAlgorithm, que heredan los siguientes algoritmos:

  1. Aes

  2. DES

  3. RC2

  4. Rijndael

  5. TripleDES

Las dos clases AesCryptoServiceProvider y AesManaged heredan Aes. La clase AesCryptoServiceProvider es un contenedor alrededor de la implementación de la API de criptografía de Windows (CAPI) Aes, mientras que la clase AesManaged está escrita completamente en código administrado. Hay también un tercer tipo de implementación, Cryptography Next Generation (CNG), además de las implementaciones administradas y CAPI. Un ejemplo de algoritmo CNG es ECDiffieHellmanCng. Los algoritmos CNG están disponibles en Windows vista y posteriores.

Puede elegir qué implementación es más adecuada para su caso. Las implementaciones administradas están disponibles en todas las plataformas que admiten .NET Framework. Las implementaciones CAPI están disponibles en sistemas operativos más antiguos y ya no se desarrollan. CNG es la implementación más reciente donde se realizarán los trabajos de desarrollo nuevos. Sin embargo, las implementaciones administradas no están certificadas por el Estándar federal de procesamiento de información (FIPS) y pueden ser más lentas que las clases contenedoras.

Diseño de secuencias

Common Language Runtime utiliza un diseño basado en secuencias para implementar algoritmos simétricos y algoritmos hash. El núcleo de este diseño es la clase CryptoStream, que se deriva de la clase Stream. Los objetos criptográficos basados en secuencias admiten una interfaz estándar única (CryptoStream) para controlar la parte de transferencia de datos del objeto. Como todos los objetos se integran en una interfaz estándar, puede encadenar varios objetos (como un objeto hash seguido de un objeto de cifrado) y puede realizar diversas operaciones en los datos sin necesidad de disponer de almacenamiento intermedio. El modelo de transmisión por secuencias también permite compilar objetos a partir de objetos más pequeños. Por ejemplo, un algoritmo combinado de cifrado y hash puede verse como un único objeto de secuencia, aunque este objeto podría compilarse a partir de un conjunto de objetos de secuencia.

Configuración criptográfica

La configuración criptográfica permite resolver una implementación específica de un algoritmo en un nombre de algoritmo, permitiendo la extensibilidad de las clases de criptografía de .NET Framework. Puede agregar su propia implementación de hardware o software de un algoritmo y asignarle el nombre del algoritmo que elija. Si no se especifica un algoritmo en el archivo de configuración, se utilizará la configuración predeterminada. Para obtener más información acerca de la configuración criptográfica, vea Configurar clases de criptografía.

Elegir un algoritmo

Puede seleccionar un algoritmo por razones diferentes: por ejemplo, para la integridad de datos, para la privacidad de datos o para generar una clave. Los algoritmos simétricos y hash están pensados para proteger los datos por motivos de integridad (protección frente a cambios) o por razones de privacidad (protección frente a vista). Los algoritmos hash se usan principalmente para la integridad de datos.

A continuación se muestra una lista de algoritmos recomendados por aplicación:

Vea también

Conceptos

Servicios criptográficos

Servicios criptográficos

Otros recursos

Tareas criptográficas

Historial de cambios

Fecha

Historial

Motivo

Julio de 2010

Tema ampliado.

Mejora de la información.