Sommaire

Chiffrement asymétrique en C#

Pour rappel, le chiffrement asymétrique est significativement moins rapide que le chiffrement symétrique.

Les algorithmes supportés sont les suivants :

  • DSA (classe DSACryptoServiceProvider)

  • EDD Diffie-Hellman (classe ECDiffieHellmanCng)

  • ECDsa (classe ECDsaCng)

  • RSA (classe RSACryptoServiceProvider)

L’exemple suivant implémente un chiffrement et un déchiffrement basés sur RSA.

La méthode de chiffrement RSA utilisant ici la clé publique :

        static byte[] Chiffrement(string value, RSAParameters rsaKeyInfo) 
        {  
            using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) 
            {  
                // Clé publique  
                rsa.ImportParameters(rsaKeyInfo);  
  
                byte[] encodedData = Encoding.Default.GetBytes(value);  
  
                // Chiffrement  
                byte[] encryptedData = rsa.Encrypt(encodedData, true);  
  
                rsa.Clear();  
  
                return encryptedData;  
            }  
       ...