我以下列方式使用 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。我找到了许多概述合规性不同方面的页面,但在我看来,微软是通过平台而不是类(有意义)获得他们的合规性证书。取而代之的是,我无法找到任何关于上述密码符合 FIPS 140-2 的肯定确认。到目前为止,我发现的最有用的链接:
  • 微软的 FIPs 文档:
    http://technet.microsoft.com/en-us/library/cc750357.aspx
    http://support.microsoft.com/kb/811833
  • NIST DES information
  • Blog showing how to "dump" the sytems core libraries cryptographic modules and their compliance
  • Listing of FIPS certificates

  • 简而言之,有人知道该类/加密方法将属于哪个证书号吗?还是特定于平台? (这就是我正在收集的。)

    最佳答案

    FIPS 140-2 认证适用于算法和模块。算法实现通过一系列测试用例获得认证。模块在满足所有 FIPS 要求时获得认证。其中一项要求是仅使用 FIPS 认证的算法(以及以 FIPS 批准的方式使用的非 FIPS 认证算法,如 Diffie-Hellman key 交换)提供加密服务。

    Triple-DES 是一个 FIPS-certified algorithm ,因此可以获得 FIPS 证书。那是难题的一部分。

    下一部分是找出提供 Triple-DES 的模块,以及该模块是否经过 FIPS 认证。您已经 linked 到 Microsoft 列出其所有 FIPS 批准模块的页面。这就是你需要知道的一切。我认为从 Windows Vista 开始,一切最终都会通过 bcrypt.dll

    当然,您可以直接进入source并自己搜索模块。例如,Windows Vista 中 Microsoft bcrypt.dll 的证书 #1001。您可以看到该模块已获得其 Triple-DES 实现的算法证书(Cert.#656),因此您可以从该模块使用 Triple-DES。

    那么您如何知道您正在使用 FIPS 认证的模块呢? You enable FIPS mode in Windows 。如果不启用 FIPS 模式,则不会在 FIPS 批准的操作模式中使用 FIPS 认证的算法。在 Windows 上,如果您在 FIPS 模式下尝试使用非 FIPS 算法,则会出现异常。

    最后一点,确定算法是否被批准在 FIPS 模式下使用的一个好方法是打开 FIPS 模式并尝试它!

    顺便说一下,this Triple-DES certificate page 列出了所有批准的 Triple-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
    

    以及以下键控选项。
    KO 1 = Three-key Triple DES
    KO 2 = Two-key Triple DES
    

    关于c# - TripleDESCryptoServiceProvider FIPS 140-2 合规性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3867449/

    10-13 03:01