7

System.Security.Cryptography の TripleDESCryptoServiceProvider を次の方法で使用しています。

  TripleDESCryptoServiceProvider CreateCipher()
        {
            TripleDESCryptoServiceProvider cipher = new TripleDESCryptoServiceProvider();
            cipher.KeySize = 192;
            cipher.BlockSize = 64;
            cipher.Padding = PaddingMode.ISO10126;
            cipher.Mode = CipherMode.CBC;
            return cipher;
        }

これが FIPS 140-2 に準拠しているかどうかを知りたいです。コンプライアンスのさまざまな側面を概説しているページを多数見つけましたが、Microsoft はクラスではなくプラットフォームによってコンプライアンス証明書を取得しているように思えます (理にかなっています)。その代わりに、上記の暗号が FIPS 140-2 に準拠しているという明確な確認を見つけることができませんでした。これまでのところ、私が見つけた最も有用なリンクは次のとおりです。

要するに、このクラス/暗号化方式が該当する証明書番号を知っている人はいますか? それともプラットフォーム固有ですか?(それは私が収集しているものです。)

4

3 に答える 3

7

FIPS 140-2 認定は、アルゴリズムとモジュールの両方に適用されます。アルゴリズムの実装は、一連のテスト ケースに合格することで認定されます。モジュールは、すべての FIPS 要件を満たすと認定されます。そのような要件の 1 つは、暗号化サービスを FIPS 認定のアルゴリズム (および Diffie-Hellman 鍵交換などの FIPS 認定の方法で使用される非 FIPS 認定のアルゴリズム) のみで提供することです。

Triple-DES はFIPS 認定アルゴリズムであるため、FIPS 証明書を取得できます。それはパズルの 1 ピースです。

次の課題は、トリプル DES を提供しているモジュールと、そのモジュールが FIPS 認定を受けているかどうかを調べることです。Microsoft が FIPS で承認されたすべてのモジュールを一覧表示するページに既にリンクしています。知っておくべきことはこれだけです。Windows Vista の時点で、すべてが最終的に通過すると思いますbcrypt.dll

もちろん、ソースに直行して自分でモジュールを検索することもできます。たとえば、bcrypt.dllWindows Vista の Microsoft の証明書 #1001 を取り上げます。このモジュールは Triple-DES 実装のアルゴリズム証明書 (Cert. #656) を取得しているため、このモジュールから Triple-DES を使用できることがわかります。

では、FIPS 認定モジュールを使用していることはどのようにしてわかりますか? Windows で FIPS モードを有効にします。FIPS モードを有効にしない場合は、FIPS 認定の操作モードで FIPS 認定のアルゴリズムを使用していません。Windows では、FIPS モードで非 FIPS アルゴリズムを使用しようとすると、例外が発生します。

アルゴリズムが FIPS モードでの使用が承認されているかどうかを確認する良い方法は、FIPS モードをオンにして試してみることです。

ところで、このトリプル DES 証明書のページには、承認されたすべてのトリプル DES 操作モードが一覧表示されています。

ECB = TDEA Electronic Codebook
TCBC = TDEA Cipher Block Chaining
TCBC-I = TDEA Cipher Block Chaining - Interleaved
TCFB = TDEA Cipher Feedback
TCFB-P = TDEA Cipher Feedback - Pipelined
TOFB = TDEA Output Feedback
TOFB-I = TDEA Output Feedback - Interleaved

そして、次の Keying Options です。

KO 1 = Three-key Triple DES
KO 2 = Two-key Triple DES
于 2010-10-08T00:46:47.043 に答える
3

これには、FIPS準拠のアルゴリズムのリストがあります。

FIPS準拠のアルゴリズム:

ハッシュアルゴリズム

HMACSHA1

MACTripleDES

SHA1CryptoServiceProvider

対称アルゴリズム(暗号化と復号化に同じキーを使用)

DESCryptoServiceProvider

TripleDESCryptoServiceProvider

非対称アルゴリズム(暗号化には公開鍵を使用し、復号化には秘密鍵を使用します)

DSACryptoServiceProvider

RSACryptoServiceProvider

AESについても同様の質問をしました。

于 2010-10-05T20:37:05.563 に答える
1

個人的には、暗号化に AES を使用します。AES は、TripleDES よりも「軽量」で安全なので、現時点では事実上のアルゴリズムだと思います。AES が基準を満たしていない場合、私は驚くでしょう。

于 2010-10-05T21:59:21.293 に答える