暗号・復号化 部品
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-[[戻る>機能一覧 - 共通部品群]]
* 目次 [#adce8a06]
#contents
*概要 [#s9dee55e]
Open棟梁で提供される、暗号・復号化 部品。
**ポリシー [#wa7cbe87]
-Managed優先(.NET Standard対応を考慮)
-Managedが無ければCSPを使用というポリシーで実装。
-必要に応じて、下記の[[CNG対応>#n3ba7de2]]を行う(CNGサポ...
※ CSP = Crypto Service Provider~
※ Cng = Crypto Next Genaration
**CNG対応 [#n3ba7de2]
***方針 [#kc0b6ea9]
-CNGでしか提供されないアルゴリズムは、CNGで実装する。
-必要に応じて、CNGサポートを追加(後方互換維持のため、置...
***調査結果 [#d97d6080]
-Managedが無く、CSPとCNGがサポートされるプロバイダは以下。
--MD5
--SHA1
--TripleDES
--RSA
--DSA
-CNGでしか提供されないアルゴリズム。
--ECDsaCng
--ECDiffieHellmanCng
-なお、調査を進めてみたトコロ、~
.NET Standard 2.0でも以下のようなクラスの存在を確認。
--System.Security.Cryptography.Csp~
https://www.nuget.org/packages/System.Security.Cryptograp...
---RSA
---RSACryptoServiceProvider
---, etc.
--System.Security.Cryptography.Cng~
https://www.nuget.org/packages/System.Security.Cryptograp...
---RSACng
---ECDsaCng
---CngKey
>予想外に、CSPもCNGラッパーも確認できる~
(CNGはLinux上ではどうなる?→ OpenSSLプロバイダが追加され...
*暗号ハッシュ [#la4e1baf]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
通常のハッシュを取得
**対応プロバイダ(アルゴリズム) [#u59462a2]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***CSP (CryptoServiceProvider) [#pf93ff90]
-MD5_CSP
-SHA1_CSP
-SHA256_CSP
-SHA384_CSP
-SHA512_CSP
***CNG (CryptographyNextGeneration) [#f65054b6]
-MD5_CNG
-SHA1_CNG
-SHA256_CNG
-SHA384_CNG
-SHA512_CNG
***Managed [#e04f8c92]
-RIPEMD160_M
-SHA1_M
-SHA256_M
-SHA384_M
-SHA512_M
**メソッド [#u774fb4b]
***ハッシュ取得(バイト) [#k0169748]
GetHashBytesメソッド
***ハッシュ取得(文字列) [#p8159d22]
GetHashStringメソッド
*キー付きハッシュ [#o0ef5dab]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
キーを使用してハッシュを取得
**対応プロバイダ(アルゴリズム) [#sa4cd7ae]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***CSP [#qe49d1a6]
-HMACMD5
-HMACSHA1
-HMACSHA256
-HMACSHA384
-HMACSHA512
***Managed [#efc3240c]
-HMACRIPEMD160,
-MACTripleDES,
**メソッド [#a533e308]
***ハッシュ取得(バイト) [#a4af2098]
GetHashBytesメソッド
***ハッシュ取得(文字列) [#u9fc47df]
GetHashStringメソッド
*秘密鍵暗号方式 [#m1c66e75]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
対称アルゴリズムによる暗号化・復号化
**アルゴリズム [#r89df60e]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***対応プロバイダ [#x0f4b62d]
-CSP (CryptoServiceProvider)
--AES_CSP
--DES_CSP
--RC2_CSP
--TDES_CSP
-CNG (CryptographyNextGeneration)
--AES_CNG
--TDES_CNG
-Managed
--AES_M
--Rijndael_M
***CipherMode, PaddingMode指定 [#j92ca0bd]
-CipherMode
--CBC
--CFB
--CTS
--ECB
--OFB
-PaddingMode
--None
--Zeros
--ANSIX923
--ISO10126
--PKCS7
**メソッド [#r00874df]
***暗号化 [#a41c1ded]
-EncryptStringメソッド
-EncryptBytesメソッド
***復号化 [#i45d996c]
-DecryptStringメソッド
-DecryptBytesメソッド
*公開鍵暗号方式 [#r9036717]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
非対称アルゴリズムによる暗号化・復号化
**アルゴリズム [#i583744e]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***対応プロバイダ [#x8c48a97]
-CSP
--RsaCsp,
-CNG
--RsaCng,
-OpenSsl
--RsaOpenSsl
-自動選択
--X509
***PaddingMode指定 [#j51f3424]
padding指定可能
-NET45以前
bool fOAEP = true or false;
-NET45以前
RSAEncryptionPadding padding = ...;
**メソッド [#b9d36712]
***秘密鍵と公開鍵を取得 [#q909f850]
***暗号化 [#v609ffab]
-EncryptStringメソッド
-EncryptBytesメソッド
***復号化 [#e2769d54]
-DecryptStringメソッド
-DecryptBytesメソッド
*ハイブリッド・暗号化(キー交換) [#s81d8323]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
**アルゴリズム [#c766c571]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
-RSAPKCS1KeyExchange
-RSAOAEPKeyExchange
-ECDiffieHellmanCryptographyNextGeneration,
***RSA [#a0ff386a]
-基底~
RsaKeyExchange
--RsaAlice : RsaKeyExchange
--RsaBob : RsaKeyExchange
-RsaOaep
--RsaOaepAlice : RsaAlice
--RsaOaepBob : RsaBob
-RsaPkcs1
--RsaPkcs1Alice : RsaAlice
--RsaPkcs1Bob : RsaBob
***ECDH [#v73e2a11]
-基底~
EcdhKeyExchange : BaseKeyExchange
-EcdhCng
--EcdhCngAlice : EcdhKeyExchange
--EcdhCngBob : EcdhKeyExchange
--AesCryptoServiceProvider
**メソッド [#l87c5968]
***暗号化 [#s8a67339]
-Encryptメソッド
***復号化 [#i45d996c]
-Decryptメソッド
*署名・検証 [#s1ca647e]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
**RSA/DSA [#l59a8ae6]
***クラス [#a9c80715]
-DigitalSignX509.cs
-DigitalSignXML.cs
-DigitalSignParam.cs
***アルゴリズム [#dd745415]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
-On Windows
--RsaCSP_MD5
--RsaCSP_SHA1
--RsaCSP_SHA256
--RsaCSP_SHA384
--RsaCSP_SHA512
--DsaCSP_SHA1(SHA256以降はエラーになるため、現状サポート...
-On Linux
--RsaOpenSsl_MD5
--RsaOpenSsl_SHA1
--RsaOpenSsl_SHA256
--RsaOpenSsl_SHA384
--RsaOpenSsl_SHA512
--DsaOpenSsl_SHA1
**ECDsa [#f307cd5a]
***クラス [#o081d775]
-DigitalSignECDsaCng.cs
-DigitalSignECDsaOpenSsl.cs
-DigitalSignECDsaX509.cs
***アルゴリズム [#qfb9718e]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
-On Windows
--ECDsaCng_P256
--ECDsaCng_P384
--ECDsaCng_P521
-On Linux
--ECDsaOpenSsl_P256
--ECDsaOpenSsl_P384
--ECDsaOpenSsl_P521
**メソッド [#nb4bfdec]
***署名 [#q2209377]
Signメソッド
***検証 [#ded746e2]
Verifyメソッド
*パスワード関連 [#h545187d]
**乱数生成 [#q715ba2e]
-パスワード生成クラス~
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***対応プロバイダ [#bb7f5eb5]
RNGCryptoServiceProvider
***メソッド [#f498508d]
-RandomByte
-RandomByte
-Base64Secret
-Base64UrlSecret
-Generate
**キー生成 [#lf7d7f7e]
***対応プロバイダ [#m33069ab]
Rfc2898DeriveBytesを使用したキー生成
***メソッド [#v8bbd7bf]
なし。内部利用のみ。
-[[パスワード・ハッシュ化>#fe30a033]]
>パスワード、ソルト、ストレッチ回数から、キーを生成する。
-[[秘密鍵暗号方式(SymmetricCryptography)>#m1c66e75]]
>パスワードから共有キーと初期化ベクタを生成する。
**パスワード・ハッシュ化 [#fe30a033]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
-GetPasswordHashV1.cs
-GetPasswordHashV2.cs
*その他 [#lad644dd]
**[[JWTの生成と検証]] [#b2349dd5]
**部品の検証ツール [#q103f322]
***暗号化プロバイダ・テスト・ツール [#ta7aa2d3]
以下のツールで、.NETの各種の暗号化プロバイダをテストでき...
-https://github.com/OpenTouryoProject/SampleProgram/tree/...
***暗号化・復号化ツール [#x1172e19]
以下のツールで、各種、暗号・復号化 部品を検証できる。
-https://github.com/OpenTouryoProject/OpenTouryo/tree/dev...
#ref(tool.png,left,nowrap,ツール)
このツールの使用前に、「[[ココ>汎用認証サイトのファースト...
このツールの使用する証明書のパスは、
-C:\root\files\resource\X509
--RSA
---SHA256RSA.cer
---SHA256RSA.pfx
--DSA
---SHA256DSA.cer
---SHA256DSA.pfx
--ECDSA
---SHA256ECDSA.cer
---SHA256ECDSA.pfx
---SHA384ECDSA.cer
---SHA384ECDSA.pfx
---SHA512ECDSA.cer
---SHA512ECDSA.pfx
--以下は汎用認証サイトで利用
---SHA256RSA_Server.cer
---SHA256RSA_Server.pfx
---SHA256ECDSA_Server.cer
---SHA256ECDSA_Server.pfx
---SHA256RSA_Client.cer
---SHA256RSA_Client.pfx
---SHA256RSAClientCert.pfx
*参考 [#ra83834a]
**マイクロソフト系技術情報 Wiki [#ec900b2b]
***[[暗号化アルゴリズム>https://techinfoofmicrosofttech.o...
***[[.NETの署名・暗号化アルゴリズム>https://techinfoofmic...
**.NET 開発基盤部会 Wiki [#o286d0de]
***[[高度午前 - 技術要素 - セキュリティ - 暗号・認証>http...
***[[SC:対策技術 - 暗号>https://dotnetdevelopmentinfrast...
終了行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-[[戻る>機能一覧 - 共通部品群]]
* 目次 [#adce8a06]
#contents
*概要 [#s9dee55e]
Open棟梁で提供される、暗号・復号化 部品。
**ポリシー [#wa7cbe87]
-Managed優先(.NET Standard対応を考慮)
-Managedが無ければCSPを使用というポリシーで実装。
-必要に応じて、下記の[[CNG対応>#n3ba7de2]]を行う(CNGサポ...
※ CSP = Crypto Service Provider~
※ Cng = Crypto Next Genaration
**CNG対応 [#n3ba7de2]
***方針 [#kc0b6ea9]
-CNGでしか提供されないアルゴリズムは、CNGで実装する。
-必要に応じて、CNGサポートを追加(後方互換維持のため、置...
***調査結果 [#d97d6080]
-Managedが無く、CSPとCNGがサポートされるプロバイダは以下。
--MD5
--SHA1
--TripleDES
--RSA
--DSA
-CNGでしか提供されないアルゴリズム。
--ECDsaCng
--ECDiffieHellmanCng
-なお、調査を進めてみたトコロ、~
.NET Standard 2.0でも以下のようなクラスの存在を確認。
--System.Security.Cryptography.Csp~
https://www.nuget.org/packages/System.Security.Cryptograp...
---RSA
---RSACryptoServiceProvider
---, etc.
--System.Security.Cryptography.Cng~
https://www.nuget.org/packages/System.Security.Cryptograp...
---RSACng
---ECDsaCng
---CngKey
>予想外に、CSPもCNGラッパーも確認できる~
(CNGはLinux上ではどうなる?→ OpenSSLプロバイダが追加され...
*暗号ハッシュ [#la4e1baf]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
通常のハッシュを取得
**対応プロバイダ(アルゴリズム) [#u59462a2]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***CSP (CryptoServiceProvider) [#pf93ff90]
-MD5_CSP
-SHA1_CSP
-SHA256_CSP
-SHA384_CSP
-SHA512_CSP
***CNG (CryptographyNextGeneration) [#f65054b6]
-MD5_CNG
-SHA1_CNG
-SHA256_CNG
-SHA384_CNG
-SHA512_CNG
***Managed [#e04f8c92]
-RIPEMD160_M
-SHA1_M
-SHA256_M
-SHA384_M
-SHA512_M
**メソッド [#u774fb4b]
***ハッシュ取得(バイト) [#k0169748]
GetHashBytesメソッド
***ハッシュ取得(文字列) [#p8159d22]
GetHashStringメソッド
*キー付きハッシュ [#o0ef5dab]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
キーを使用してハッシュを取得
**対応プロバイダ(アルゴリズム) [#sa4cd7ae]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***CSP [#qe49d1a6]
-HMACMD5
-HMACSHA1
-HMACSHA256
-HMACSHA384
-HMACSHA512
***Managed [#efc3240c]
-HMACRIPEMD160,
-MACTripleDES,
**メソッド [#a533e308]
***ハッシュ取得(バイト) [#a4af2098]
GetHashBytesメソッド
***ハッシュ取得(文字列) [#u9fc47df]
GetHashStringメソッド
*秘密鍵暗号方式 [#m1c66e75]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
対称アルゴリズムによる暗号化・復号化
**アルゴリズム [#r89df60e]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***対応プロバイダ [#x0f4b62d]
-CSP (CryptoServiceProvider)
--AES_CSP
--DES_CSP
--RC2_CSP
--TDES_CSP
-CNG (CryptographyNextGeneration)
--AES_CNG
--TDES_CNG
-Managed
--AES_M
--Rijndael_M
***CipherMode, PaddingMode指定 [#j92ca0bd]
-CipherMode
--CBC
--CFB
--CTS
--ECB
--OFB
-PaddingMode
--None
--Zeros
--ANSIX923
--ISO10126
--PKCS7
**メソッド [#r00874df]
***暗号化 [#a41c1ded]
-EncryptStringメソッド
-EncryptBytesメソッド
***復号化 [#i45d996c]
-DecryptStringメソッド
-DecryptBytesメソッド
*公開鍵暗号方式 [#r9036717]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
非対称アルゴリズムによる暗号化・復号化
**アルゴリズム [#i583744e]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***対応プロバイダ [#x8c48a97]
-CSP
--RsaCsp,
-CNG
--RsaCng,
-OpenSsl
--RsaOpenSsl
-自動選択
--X509
***PaddingMode指定 [#j51f3424]
padding指定可能
-NET45以前
bool fOAEP = true or false;
-NET45以前
RSAEncryptionPadding padding = ...;
**メソッド [#b9d36712]
***秘密鍵と公開鍵を取得 [#q909f850]
***暗号化 [#v609ffab]
-EncryptStringメソッド
-EncryptBytesメソッド
***復号化 [#e2769d54]
-DecryptStringメソッド
-DecryptBytesメソッド
*ハイブリッド・暗号化(キー交換) [#s81d8323]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
**アルゴリズム [#c766c571]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
-RSAPKCS1KeyExchange
-RSAOAEPKeyExchange
-ECDiffieHellmanCryptographyNextGeneration,
***RSA [#a0ff386a]
-基底~
RsaKeyExchange
--RsaAlice : RsaKeyExchange
--RsaBob : RsaKeyExchange
-RsaOaep
--RsaOaepAlice : RsaAlice
--RsaOaepBob : RsaBob
-RsaPkcs1
--RsaPkcs1Alice : RsaAlice
--RsaPkcs1Bob : RsaBob
***ECDH [#v73e2a11]
-基底~
EcdhKeyExchange : BaseKeyExchange
-EcdhCng
--EcdhCngAlice : EcdhKeyExchange
--EcdhCngBob : EcdhKeyExchange
--AesCryptoServiceProvider
**メソッド [#l87c5968]
***暗号化 [#s8a67339]
-Encryptメソッド
***復号化 [#i45d996c]
-Decryptメソッド
*署名・検証 [#s1ca647e]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
**RSA/DSA [#l59a8ae6]
***クラス [#a9c80715]
-DigitalSignX509.cs
-DigitalSignXML.cs
-DigitalSignParam.cs
***アルゴリズム [#dd745415]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
-On Windows
--RsaCSP_MD5
--RsaCSP_SHA1
--RsaCSP_SHA256
--RsaCSP_SHA384
--RsaCSP_SHA512
--DsaCSP_SHA1(SHA256以降はエラーになるため、現状サポート...
-On Linux
--RsaOpenSsl_MD5
--RsaOpenSsl_SHA1
--RsaOpenSsl_SHA256
--RsaOpenSsl_SHA384
--RsaOpenSsl_SHA512
--DsaOpenSsl_SHA1
**ECDsa [#f307cd5a]
***クラス [#o081d775]
-DigitalSignECDsaCng.cs
-DigitalSignECDsaOpenSsl.cs
-DigitalSignECDsaX509.cs
***アルゴリズム [#qfb9718e]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
-On Windows
--ECDsaCng_P256
--ECDsaCng_P384
--ECDsaCng_P521
-On Linux
--ECDsaOpenSsl_P256
--ECDsaOpenSsl_P384
--ECDsaOpenSsl_P521
**メソッド [#nb4bfdec]
***署名 [#q2209377]
Signメソッド
***検証 [#ded746e2]
Verifyメソッド
*パスワード関連 [#h545187d]
**乱数生成 [#q715ba2e]
-パスワード生成クラス~
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***対応プロバイダ [#bb7f5eb5]
RNGCryptoServiceProvider
***メソッド [#f498508d]
-RandomByte
-RandomByte
-Base64Secret
-Base64UrlSecret
-Generate
**キー生成 [#lf7d7f7e]
***対応プロバイダ [#m33069ab]
Rfc2898DeriveBytesを使用したキー生成
***メソッド [#v8bbd7bf]
なし。内部利用のみ。
-[[パスワード・ハッシュ化>#fe30a033]]
>パスワード、ソルト、ストレッチ回数から、キーを生成する。
-[[秘密鍵暗号方式(SymmetricCryptography)>#m1c66e75]]
>パスワードから共有キーと初期化ベクタを生成する。
**パスワード・ハッシュ化 [#fe30a033]
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
-GetPasswordHashV1.cs
-GetPasswordHashV2.cs
*その他 [#lad644dd]
**[[JWTの生成と検証]] [#b2349dd5]
**部品の検証ツール [#q103f322]
***暗号化プロバイダ・テスト・ツール [#ta7aa2d3]
以下のツールで、.NETの各種の暗号化プロバイダをテストでき...
-https://github.com/OpenTouryoProject/SampleProgram/tree/...
***暗号化・復号化ツール [#x1172e19]
以下のツールで、各種、暗号・復号化 部品を検証できる。
-https://github.com/OpenTouryoProject/OpenTouryo/tree/dev...
#ref(tool.png,left,nowrap,ツール)
このツールの使用前に、「[[ココ>汎用認証サイトのファースト...
このツールの使用する証明書のパスは、
-C:\root\files\resource\X509
--RSA
---SHA256RSA.cer
---SHA256RSA.pfx
--DSA
---SHA256DSA.cer
---SHA256DSA.pfx
--ECDSA
---SHA256ECDSA.cer
---SHA256ECDSA.pfx
---SHA384ECDSA.cer
---SHA384ECDSA.pfx
---SHA512ECDSA.cer
---SHA512ECDSA.pfx
--以下は汎用認証サイトで利用
---SHA256RSA_Server.cer
---SHA256RSA_Server.pfx
---SHA256ECDSA_Server.cer
---SHA256ECDSA_Server.pfx
---SHA256RSA_Client.cer
---SHA256RSA_Client.pfx
---SHA256RSAClientCert.pfx
*参考 [#ra83834a]
**マイクロソフト系技術情報 Wiki [#ec900b2b]
***[[暗号化アルゴリズム>https://techinfoofmicrosofttech.o...
***[[.NETの署名・暗号化アルゴリズム>https://techinfoofmic...
**.NET 開発基盤部会 Wiki [#o286d0de]
***[[高度午前 - 技術要素 - セキュリティ - 暗号・認証>http...
***[[SC:対策技術 - 暗号>https://dotnetdevelopmentinfrast...
ページ名: