「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
暗号化アルゴリズムは、一通り揃っている。
には、以下のようにある。
以下の様な違いがあるが、
「RSACngのキーはCngKey?クラスによって管理され、RSACngのコンストラクタに注入できますが、
RSACryptoServiceProvider?は独自のキー操作に結びついています。」
RNGCryptoServiceProvider? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.rngcryptoserviceprovider.aspx
RNGCryptoServiceProvider?を使用して、暗号乱数を生成する。
Membership.GeneratePassword?も下位でRNGCryptoServiceProvider?を使用している。
Rfc2898DeriveBytes? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.rfc2898derivebytes.aspx
Rfc2898DeriveBytes?を使用して、パスワード ベースのキーを生成する。
主に、
のキーを生成する(パスワードをそのまま使用しない)。
HashAlgorithm? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.hashalgorithm.aspx
Managedのsuffixが無いが、MSDNではmscorlib.dllとなっているためManaged実装と思われる。
KeyedHashAlgorithm? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.keyedhashalgorithm.aspx
SymmetricAlgorithm? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.symmetricalgorithm.aspx
AsymmetricAlgorithm? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.asymmetricalgorithm.aspx
※ AsymmetricAlgorithm?の内、暗号化・復号化が可能な公開鍵暗号方式は、
RSAとECDiffieHellman?のみ(他のアルゴリズムは、署名のみサポート)。
AsymmetricAlgorithm? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.asymmetricalgorithm.aspx
※ なお、RSAだけは、署名・検証だけでなく、暗号化・復号化にも利用可能。