【问题标题】:Verifying SHA-1 Algorithm (function)验证 SHA-1 算法(函数)
【发布时间】:2014-04-04 21:06:29
【问题描述】:

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

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

有没有官方网站可以用来验证SHA-1算法的C实现?

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

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

【问题讨论】:

  • 我想你可以从这个开始:nsrl.nist.gov/testdata
  • 是否有一个“官方网站”可以用来验证......嗯,任何算法的实现?如果有,我当然希望它足够罕见,以至于您不应该期望任何给定算法都有一个站点。
  • 您应该搜索“sha1 测试向量”

标签: c algorithm sha1 verification medical


【解决方案1】:

感谢 Nickolay Olshevsky 提供 Test Vector 指导,感谢 Daniel Kamil Kozar 提供链接。

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

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

【讨论】:

    【解决方案2】:

    如果你想要一些“官方”的东西,那么在美国(我相信还有加拿大),它是一个 FIPS 140-2 算法(就像 SHA-1 一样),那么你想到的是 NIST Cryptographic Module Validation Program (CMVP) .您可以通过查看 list of Validated FIPS 140-1 and FIPS 140-2 Cryptographic Modules 来判断已验证的内容。

    CMVP 验证的先决条件是Cryptographic Algorithm Validation Program (CAVP)。该一致性测试将使用The Secure Hash Algorithm Validation System (SHAVS) 验证您的实现是否符合FIPS 180-4 的SHA-1 定义。所有测试均由testing laboratory 完成。

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

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

    【讨论】:

    • SHA-1 不用于加密,而是用于错误检测。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2012-06-14
    • 2016-05-30
    • 1970-01-01
    • 2019-05-07
    • 2010-12-03
    • 2021-06-09
    相关资源
    最近更新 更多