Esempio di tecnologia di crittografia a chiave pubblica
Aggiornamento: novembre 2007
In questo esempio viene illustrato come utilizzare la crittografia a chiave pubblica per lo scambio di messaggi. Per questo esempio è necessario Microsoft Windows 2000 High Encryption Pack. Per ulteriori informazioni e per il download del software High Encryption Pack, visitare il sito Web all'indirizzo https://www.microsoft.com/WINDOWS2000/downloads/recommended/encryption/.
Per informazioni sull'utilizzo degli esempi, vedere i seguenti argomenti:
Per compilare l'esempio utilizzando il prompt dei comandi
Spostarsi in una delle sottodirectory specifiche del linguaggio della directory PublicKeyCryptography, utilizzando il prompt dei comandi. Per informazioni sulle impostazioni necessarie e sul prompt dei comandi dell'SDK, vedere Procedura: definire impostazioni di esempio.
Digitare msbuild PublicKeyCryptographyCS.sln o msbuild PublicKeyCryptographyVB.sln, a seconda del linguaggio di programmazione che si desidera utilizzare. L'eseguibile verrà compilato nella directory predefinita \bin o \bin\Debug.
Per compilare l'esempio utilizzando Visual Studio
Aprire Esplora risorse, quindi spostarsi in una delle sottodirectory specifiche del linguaggio della directory PublicKeyCryptography.
Aprire il file di soluzione di Visual Studio PublicKeyCS.sln o PublicKeyVB.sln, a seconda del linguaggio di programmazione che si desidera utilizzare.
Scegliere Compila soluzione dal menu Compila.
Per eseguire l'esempio
Spostarsi nella directory contenente il file eseguibile compilato, utilizzando il prompt dei comandi.
Digitare PublicKey.exe.
Nota: |
---|
L'esempio compila un'applicazione console. Per visualizzare l'output dell'applicazione, è necessario eseguirla in una finestra del prompt dei comandi. |
Osservazioni
I messaggi vengono crittografati utilizzando un algoritmo simmetrico (RC2), quindi la chiave RC2 viene crittografata utilizzando un algoritmo asimmetrico (RSA). Gli algoritmi crittografici asimmetrici, detti anche algoritmi a chiave pubblica, richiedono che a ciascuna entità sia assegnata una coppia di chiavi correlate: una chiave pubblica e una chiave privata. Entrambe le chiavi devono essere univoche per l'entità. La chiave pubblica, utilizzata per la codifica dei dati da inviare a un destinatario, può essere resa disponibile a chiunque. La chiave privata del destinatario, utilizzata per la decodifica dei messaggi codificati mediante la chiave pubblica associata, deve essere invece conosciuta soltanto dal destinatario.
In questo esempio vengono utilizzate le seguenti classi:
RSACryptoServiceProvider - Fornisce un'implementazione gestita di un algoritmo asimmetrico (a chiave pubblica) che verrà utilizzato per crittografare la chiave RC2 da inviare con il messaggio crittografato.
RC2CryptoServiceProvider - Fornisce un algoritmo simmetrico che verrà utilizzato per la crittografia del testo del messaggio.
ICryptoTransform- Fornisce l'interfaccia che definisce le operazioni di base delle trasformazioni crittografiche.
CryptoStream- Fornisce un flusso per crittografare i data inseriti in un oggetto MemoryStream.
Encoding - Consente di convertire delle stringhe in matrici di byte e viceversa.
Per ulteriori informazioni sulla crittografia basata sull'utilizzo di una coppia di chiavi, vedere i commenti nei file di codice sorgente.