代码之家  ›  专栏  ›  技术社区  ›  Thomas Matthews

验证SHA-1算法(功能)

  •  0
  • Thomas Matthews  · 技术社区  · 12 年前

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

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

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

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

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

    2 回复  |  直到 4 年前
        1
  •  1
  •   Thomas Matthews    12 年前

    感谢Nickolay Olshevsky提供的测试向量指导和Daniel Kamil Kozar提供的链接。

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

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

        2
  •  0
  •   Anti-weakpasswords    12 年前

    如果你想要一些“官方”的东西,那么在美国(我相信还有加拿大),并且它是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) 。一致性测试将验证您的实现是否符合 FIPS 180-4 的SHA-1定义 The Secure Hash Algorithm Validation System (SHAVS) 。所有测试都由 testing laboratory .

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

    P.S.您不开始使用SHA-2家族函数(SHA-224、SHA-256、SHA-384或SHA-512)有什么特殊原因吗?看见 NIST SP 800-131A -目前,SHA-1已被弃用或禁止用于几乎所有用途,如果您在美国,并且正在从事医疗工作,您可能会受到HIPAA和HITECH的约束-使用褪色的哈希标准对于新的开发似乎毫无意义-如果SHA-1现在或将来成为,您不需要再次经历验证过程,不允许用于任何目的。