Modello di crittografia di .NET Framework

Aggiornamento: novembre 2007

.NET Framework fornisce le implementazioni di molti algoritmi di crittografia standard. Essi sono semplici da utilizzare e hanno le proprietà predefinite più sicure possibile. Inoltre il modello di crittografia dell'ereditarietà degli oggetti, la progettazione dei flussi e la configurazione di .NET Framework sono estremamente estendibili.

Ereditarietà degli oggetti

Il sistema di protezione di .NET Framework implementa un modello estendibile di ereditarietà delle classi derivate. La gerarchia è la seguente:

  • Classe del tipo di algoritmi. Ad esempio SymmetricAlgorithm o HashAlgorithm. Questo livello è astratto.

  • Classe degli algoritmi che eredita da una classe del tipo di algoritmi. Ad esempio RC2 o SHA1. Questo livello è astratto.

  • Implementazione di una classe degli algoritmi che eredita da una classe degli algoritmi. Ad esempio RC2CryptoServiceProvider o SHA1Managed. Questo livello è implementato completamente.

Utilizzando questo modello di classi derivate, è facile aggiungere un nuovo algoritmo o una nuova implementazione di un algoritmo esistente. Per creare ad esempio un nuovo algoritmo a chiave pubblica, si eredita dalla classe AsymmetricAlgorithm. Per creare una nuova implementazione di un algoritmo specifico, creare una classe derivata non astratta di tale algoritmo.

Progettazione del flusso

Common Language Runtime utilizza una progettazione orientata al flusso per l'implementazione di algoritmi simmetrici e algoritmi hash. Alla base di questa progettazione c'è la classe CryptoStream, derivata dalla classe Stream. Gli oggetti di crittografia basati sul flusso supportano tutti una singola interfaccia standard, CryptoStream, per la gestione della porzione di trasferimento dei dati dell'oggetto. Dal momento che tutti gli oggetti sono generati su un'interfaccia standard, è possibile concatenare insieme più oggetti, quali un oggetto hash seguito da un oggetto di crittografia, ed è possibile eseguire più operazioni sui dati senza la necessità di alcuna archiviazione intermedia. Il modello di flusso consente anche di generare oggetti da oggetti più piccoli. Un algoritmo combinato di crittografia e hash, ad esempio, può essere visualizzato con un singolo oggetto flusso anche se questo oggetto può essere generato da una serie di oggetti flusso.

Configurazione di crittografia

La configurazione di crittografia consente di risolvere un'implementazione specifica di un algoritmo in un nome di algoritmo, consentendo l'estendibilità delle classi di crittografia di .NET Framework. È possibile aggiungere la propria implementazione hardware o software di un algoritmo e associarla al nome di algoritmo scelto. Se un algoritmo non è specificato nel file di configurazione, verranno utilizzate le configurazioni predefinite. Per ulteriori informazioni sulla configurazione di crittografia, vedere Configurazione delle classi di crittografia.

Vedere anche

Concetti

Cenni preliminari sulla crittografia

Altre risorse

Attività di crittografia

Servizi di crittografia