Sim*_*ton 7 c# encryption cryptography fips
我以下列方式使用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;
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是否符合FIPS 140-2标准.我发现有很多页面概述了合规性的不同方面,但在我看来,微软通过平台而不是类(有意义)获得合规证书.取而代之的是,我无法找到任何肯定的证据,即上述密码符合FIPS 140-2标准.到目前为止,我找到了最有用的链接:
微软FIPs文档:
http
://technet.microsoft.com/en-us/library/cc750357.aspx http://support.microsoft.com/kb/811833
简而言之,是否有人知道此类/加密方法所属的证书编号是什么?或者它是特定于平台的吗?(这就是我收集的内容.)
FIPS 140-2认证适用于算法和模块.算法实现通过传递一系列测试用例得到认证.模块在满足所有FIPS要求时获得认证.其中一个要求是仅使用FIPS认证的算法(以及以FIPS认可的方式使用的非FIPS认证算法,如Diffie-Hellman密钥交换)提供加密服务.
Triple-DES是FIPS认证的算法,因此可以获得FIPS证书.这是一个难题.
下一部分是找出提供Triple-DES的模块,以及该模块是否通过FIPS认证.您已链接到Microsoft列出其所有FIPS批准的模块的页面.这就是你需要知道的全部内容.我认为从Windows Vista开始,一切都会通过bcrypt.dll.
当然,您可以直接访问源代码并自行搜索模块.例如,bcrypt.dll在Windows Vista中获取Microsoft的证书#1001 .您可以看到此模块已获得其Triple-DES实现的算法证书(证书#656),因此您可以使用此模块中的Triple-DES.
那么你怎么知道你正在使用FIPS认证的模块? 您在Windows中启用FIPS模式.如果未启用FIPS模式,则不会在FIPS认可的操作模式下使用FIPS认证的算法.在Windows上,如果在FIPS模式下尝试使用非FIPS算法,则会出现异常.
让我知道最后一点,找出一个算法是否被批准用于FIPS模式的好方法是打开FIPS模式并尝试它!
顺便说一句,这个Triple-DES证书页面列出了所有已批准的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
Run Code Online (Sandbox Code Playgroud)
以及以下键控选项.
KO 1 = Three-key Triple DES
KO 2 = Two-key Triple DES
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5601 次 |
| 最近记录: |