什么是 CRYPTOPP 中的 FIPS 140-2 合规性?
What is compliance with FIPS 140-2 in CRYPTOPP?
我怎样才能满足这样的合规要求?在 InvertibleRSAFunction
的方法 GenerateRandom
中,调用方法 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);
}
How can I meet FIPS140-2 compliance?
这是个大话题。 Crypto++ 在 FIPS DLL 有一个关于这个主题的维基页面。以下是一些较高级别的要点。
- 验证适用于 Windows
- 必须下载预构建的 FIPS DLL
- 操作环境:
- Windows 2000 专业操作系统,Service Pack 1
- Windows 2000 专业操作系统,Service Pack 1
- Windows XP Professional SP2 和 Windows Server 2003 X64 SP1
2017 年夏天,我在 International Cryptographic Module Conference. The talk was titled 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 美元相比)。
2019 年 6 月编辑:我们在 Crypto++ 8.0 release. As discussed at FIPS DLL 上将 FIPS 相关 Visual Studio 项目标记为已弃用Crypto++ wiki,两个项目分别是cryptdll.vcxproj
和dlltest.vcxproj
。它们可能会在未来的版本中被删除。
我们不会删除这两个项目,直到我们有可能提供 FIPS 验证的密码学的地方。这可能是 OpenSSL 的 FIPS 对象模块的包装器。我们的想法是,我们将验证汇集到 OpenSSL 和世界利益中。用户向 OpenSSL 支付 5,000 美元或 10,000 美元用于新平台验证。 Crypto++ 免费支持 OpenSSL validation/integration。
对用户来说不利的一面是,用户失去了排他性,因为世界上任何人都可以使用新平台。对用户来说好处是,私人验证不需要花费 150,000 美元。实际上,我们的政策将强制用户为了每个人的更好利益而集中资源。
我怎样才能满足这样的合规要求?在 InvertibleRSAFunction
的方法 GenerateRandom
中,调用方法 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);
}
How can I meet FIPS140-2 compliance?
这是个大话题。 Crypto++ 在 FIPS DLL 有一个关于这个主题的维基页面。以下是一些较高级别的要点。
- 验证适用于 Windows
- 必须下载预构建的 FIPS DLL
- 操作环境:
- Windows 2000 专业操作系统,Service Pack 1
- Windows 2000 专业操作系统,Service Pack 1
- Windows XP Professional SP2 和 Windows Server 2003 X64 SP1
2017 年夏天,我在 International Cryptographic Module Conference. The talk was titled 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 美元相比)。
2019 年 6 月编辑:我们在 Crypto++ 8.0 release. As discussed at FIPS DLL 上将 FIPS 相关 Visual Studio 项目标记为已弃用Crypto++ wiki,两个项目分别是cryptdll.vcxproj
和dlltest.vcxproj
。它们可能会在未来的版本中被删除。
我们不会删除这两个项目,直到我们有可能提供 FIPS 验证的密码学的地方。这可能是 OpenSSL 的 FIPS 对象模块的包装器。我们的想法是,我们将验证汇集到 OpenSSL 和世界利益中。用户向 OpenSSL 支付 5,000 美元或 10,000 美元用于新平台验证。 Crypto++ 免费支持 OpenSSL validation/integration。
对用户来说不利的一面是,用户失去了排他性,因为世界上任何人都可以使用新平台。对用户来说好处是,私人验证不需要花费 150,000 美元。实际上,我们的政策将强制用户为了每个人的更好利益而集中资源。