Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

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

Managed、CSP、CNG実装とは?

参考

CSP

CNG

どれを使用すべき?

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

最適な実装を選択可能

アルゴリズムの選択

CngKey?

以下の様な違いがあるが、

RSACngのキーはCngKey?クラスによって管理され、RSACngのコンストラクタに注入できますが、
RSACryptoServiceProvider?は独自のキー操作に結びついています。

どちらでも良さそう。

性能

.NETの暗号化Providerの列挙

ハッシュ

暗号ハッシュ(HashAlgorithm?

https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.hashalgorithm.aspx

キー付きハッシュ(KeyedHashAlgorithm?

https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.keyedhashalgorithm.aspx

暗号化

秘密鍵暗号方式(SymmetricAlgorithm?

https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.symmetricalgorithm.aspx

公開鍵暗号方式(AsymmetricAlgorithm?

AsymmetricAlgorithm?の内、暗号化・復号化が可能な公開鍵暗号方式は、RS256(RSA)のみ。

https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.asymmetricalgorithm.aspx

署名・検証(AsymmetricAlgorithm?

署名・検証は、AsymmetricAlgorithm?の内の、以下のProviderを使用する。
なお、RS256(RSA)は、暗号化・復号化だけでなく、署名・検証にも利用可能である。

https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.asymmetricalgorithm.aspx

乱数生成、キー生成

乱数生成

https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.rngcryptoserviceprovider(v=vs.110).aspx

RNGCryptoServiceProvider?を使用する。
Membership.GeneratePassword?も下位でRNGCryptoServiceProvider?を使用している。

キー生成

https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.rfc2898derivebytes.aspx

Rfc2898DeriveBytes?を使用する。

主に、

のキーを生成する(パスワードをそのまま使用しない)。

参考

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

http://dobon.net/index.html

暗号ハッシュ

秘密鍵暗号方式

公開鍵暗号方式

署名・検証

乱数生成、キー生成

Open棟梁の暗号ラッパー

暗号ハッシュ

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/Util/GetHash.cs#L162

キー付きハッシュ

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/Util/GetKeyedHash.cs#L182

秘密鍵暗号方式

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/IO/SymmetricCryptography.cs#L430

公開鍵暗号方式

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/IO/ASymmetricCryptography.cs

署名・検証

なし。

乱数生成、キー生成

なし。


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


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