在CRYPTOPP中符合FIPS 140-2的标准是什么?

时间:2017-07-31 20:00:42

标签: crypto++ fips

我如何符合此类合规要求?在GenerateRandom的方法InvertibleRSAFunction中,我在调用方法SignaturePairwiseConsistencyTest_FIPS_140_Only(signer, verifier)时遇到异常。 我选择种子错了吗?还是长度?

if (FIPS_140_2_ComplianceEnabled())
{
    RSASS<PKCS1v15, SHA>::Signer signer(*this);
    RSASS<PKCS1v15, SHA>::Verifier verifier(signer);
    SignaturePairwiseConsistencyTest_FIPS_140_Only(signer, verifier);

    RSAES<OAEP<SHA> >::Decryptor decryptor(*this);
    RSAES<OAEP<SHA> >::Encryptor encryptor(decryptor);
    EncryptionPairwiseConsistencyTest_FIPS_140_Only(encryptor, decryptor);
}

1 个答案:

答案 0 :(得分:3)

  

我如何符合FIPS140-2标准?

这是一个很大的话题。 Crypto ++在FIPS DLL上有一个关于这个主题的维基页面。以下是一些更高级别的要点。

  • 适用于Windows的验证
  • 必须下载预建的FIPS DLL
  • 运营环境:
    • Windows 2000 Professional操作系统,Service Pack 1
    • Windows 2000 Professional操作系统,Service Pack 1
    • Windows XP Professional SP2和Windows Server 2003 X64 SP1;

2017年夏天,我在International Cryptographic Module Conference发表了演讲。这次谈话的标题是Crypto++: Past Validations and Future Directions

缺点是:

  • Crypto ++位于历史验证列表中。出于所有意图和目的,我们不再经过验证
  • Crypto ++可能不会寻求其他验证。它太贵了
  • 验证C ++库与C库没什么区别
  • 与C库相比,实现和使用C ++库非常痛苦
  • Crypto ++可以使用OpenSSL的FIPS Object Module(FOM)来提供经过验证的加密。我在演讲中证明了这一点

Crypto ++包装OpenSSL似乎有点奇怪。我认为也是。但是,FIPS 140-2是一个过程。它与算法的实际技术实现几乎没有关系。包含OpenSSL模块的Crypto ++是一个直接解决许多问题的解决方案,而不需要花费任何费用(相比新的验证需要100,000美元)。