マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

暗号化アルゴリズムは、一通り揃っている。

.NET Frameworkの暗号化Providerの列挙

乱数生成、キー生成

乱数生成

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?

HashAlgorithm? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.hashalgorithm.aspx

キー付きハッシュ(KeyedHashAlgorithm?

suffixが無いが、調べると、

KeyedHashAlgorithm? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.keyedhashalgorithm.aspx

秘密鍵暗号方式(SymmetricAlgorithm?

SymmetricAlgorithm?

SymmetricAlgorithm? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.symmetricalgorithm.aspx

公開鍵暗号方式(AsymmetricAlgorithm?

AsymmetricAlgorithm?

AsymmetricAlgorithm? クラス (System.Security.Cryptography)
https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.asymmetricalgorithm

AsymmetricAlgorithm?の内、暗号化・復号化が可能な公開鍵暗号方式は、
RSAとECDiffieHellman?のみ(他のアルゴリズムは、署名のみサポート)。

AsymmetricKeyExchangeFormatter?, Deformatter

非対称キー交換フォーマッタ、デフォーマッタ

署名・検証(AsymmetricAlgorithm?

AsymmetricAlgorithm?

AsymmetricAlgorithm? クラス (System.Security.Cryptography)
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.asymmetricalgorithm.aspx

※ なお、RSAだけは、署名・検証だけでなく、暗号化・復号化にも利用可能。

AsymmetricSignatureFormatter?, Deformatter

非対称署名フォーマッタ、デフォーマッタ

追加のプロバイダ

Security.Cryptography

.NET Standardの暗号化Providerの列挙

.NET Frameworkからの移植

追加のプロバイダ

Managed、CAPI(CSP)、CNG実装とは?

参考

CAPI (CSP)

CNG

どれを使用すべき?

には、以下のようにある。

最適な実装を選択可能

アルゴリズムの選択

CngKey?

以下の様な違いがあるもよう。

どちらでも良さそう。

性能

参考

DOBON.NET: VB.NET, C#, 無料ソフトウェア...

http://dobon.net/index.html

暗号ハッシュ

秘密鍵暗号方式

公開鍵暗号方式

署名・検証

乱数生成、キー生成

ライブラリ

OpenSSL?

BouncyCastle

libsodium

Open 棟梁

参考


Tags: :.NET開発, :セキュリティ, :暗号化, :証明書


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS