0

我从网上下载了 Paul E. Jones 的 SHA-1 函数。

此代码将作为 SOUP(未知来源的软件)进入医疗设备,需要进行验证。

是否有官方网站可用于验证 SHA-1 算法的 C 实现?

这是 SHA-1 实现的链接:SHA-1 Implementation in C

当我在网上搜索时,我得到的只是下载算法的网站列表,或者算法工作原理的解释。

4

2 回答 2

1

感谢 Nickolay Olshevsky 的 Test Vector 指导和 Daniel Kamil Kozar 的链接。

验证算法的方法是将已知的测试向量提供给它,并将摘要与 NIST 库中的已知摘要进行比较:NIST Library

测试的最佳过程是在代码运行的平台上发送算法。下一个最好的方法是开发一个使用源代码文件(无需修改)的 C 程序。

于 2014-04-04T23:44:19.760 回答
0

如果你想要一些“官方”的东西,那么在美国(和加拿大,我相信),它是一个 FIPS 140-2 算法(就像 SHA-1 一样),那么想到的是NIST 加密模块验证程序( CMVP)。您可以通过查看已验证的FIPS 140-1 和 FIPS 140-2 加密模块列表来判断已验证的内容。

CMVP 验证的先决条件是加密算法验证程序 (CAVP)该一致性测试将通过使用安全散列算法验证系统 (SHAVS)来验证您的实现是否符合FIPS 180-4对 SHA-1 的定义 。所有测试均由测试实验室完成。

准备好拿出你的支票簿 - 官方验证测试不是免费的,虽然听起来你没有看过完整的 CMVP 验证,所以它可能不会那么昂贵,特别是对于只有 SHA-1 的情况。

PS 是否有任何特殊原因您没有从 SHA-2 系列函数(SHA-224、SHA-256、SHA-384 或 SHA-512)开始?请参阅NIST SP 800-131A - SHA-1 目前已被弃用或禁止用于几乎所有用途,如果您在美国,并且正在从事医疗工作,您可能会受到 HIPAA 和 HITECH 的约束 - 使用一个衰落的哈希标准对于新的开发来说似乎毫无意义——如果 SHA-1 现在或将来由于您使用它的任何目的而被禁止,您不希望再次通过验证过程。

于 2014-04-05T03:25:02.700 回答