Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
wycheproof — Project Wycheproof 针对已知攻击对加密库进行测试。 | Kitploit
工具/GitHubGitHub/c2sp/wycheproof
静态分析漏洞分析代码分析密码学论文与研究学习与教育
GitHubc2sp/wycheproof

wycheproof

Project Wycheproof 针对已知攻击对加密库进行测试。

查看仓库
3.1k331515天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Wycheproof 项目

Wycheproof 项目是一个由社区管理的测试向量库,密码学库开发者可以使用这些测试向量来检测已知攻击、规范不一致以及其他各种实现错误。

测试向量以 JSON 测试向量数据的形式维护,并附有JSON schema文件来记录测试向量数据的结构。

快速开始

  1. 克隆此仓库。您可能还希望将 Wycheproof 作为 Git 子模块集成,或设置自动化以跟踪随时间的变化。
  2. 编写(或从 JSON schema 文件生成)代码,以适合您的实现语言/项目的方式加载向量数据。
  3. 对于每个感兴趣的算法,确定密码学 API 的输入和产生的输出,并将其映射回测试向量提供的内容。
  4. 遍历适用的测试向量,确保当给定相关输入数据时,您的 API 产生的结果与测试向量的预期结果匹配。
  5. 为获得最佳效果,将此流程集成到您的持续集成(CI)流程中,以便对所有新贡献/更改运行测试。

您可能会发现查看其他项目(如pyca/cryptography)如何集成 Wycheproof 的测试向量会有所帮助。

覆盖范围

Wycheproof 项目拥有最流行的密码算法的测试向量,包括

  • AEGIS
  • AES-EAX
  • AES-FF1
  • AES-GCM
  • AES-SIV
  • ARIA
  • ASCON v1.2(尚未达到 SP 800-232)
  • Camellia
  • ChaCha20-Poly1305
  • 分块加密(Cobblestone)
  • XChaCha20-Poly1305
  • DH
  • DHIES
  • DSA
  • ECDH
  • ECDSA
  • EdDSA
  • ECIES
  • HKDF
  • HMAC
  • KMAC
  • MORUS
  • PBKDF2
  • RSA
  • SEED
  • SipHash
  • SM4
  • VMAC
  • X25519, X448
  • BLS-12-381
  • ML-KEM (CRYSTALS-Kyber)
  • ML-DSA (CRYSTALS-Dilithium)

测试向量能够检测库是否容易受到许多攻击,包括

  • 无效曲线攻击
  • 数字签名方案中的偏置 nonce
  • 当然,所有 Bleichenbacher 攻击
  • 以及更多——我们有超过 80 个测试用例

我们欢迎贡献新的测试向量数据和算法。

贡献

如果您想贡献,请阅读CONTRIBUTING并发送拉取请求。您也可以报告错误或请求新测试,作为GitHub issues。

开发优先级

我们正在重振 Wycheproof 项目作为 C2SP 项目的开发和维护,重新关注测试向量数据。我们的近期优先事项是:

  1. 完成所有测试向量的 JSON schema 描述。
  2. 改进文档和工具支持,以便外部贡献者为现有向量文件提供新测试数据。
  3. 建立下游消费者社区,帮助维护和审查新的测试向量数据。
  4. 为测试向量数据增加额外的算法和测试用例覆盖。

常见问题

为什么项目名叫“Wycheproof”?

Wycheproof 项目以Mount Wycheproof命名,它是世界上最小的山。项目创建时的主要动机是设定一个可实现的目标。山越小,攀登它的可能性就越大。

哪些下游项目使用 Wycheproof 测试向量?

Wycheproof 测试向量以某种形式被许多重要的密码学项目和库使用。按随机顺序列出如下:

  • OpenSSL
  • BoringSSL
  • aws-lc
  • LibreSSL
  • NSS
  • pyca/cryptography
  • Botan
  • Go cryptography
  • swift-crypto
  • RustCrypto
  • Graviola
  • Tink
  • PyCryptdome
  • OpenTitan
  • Zig
  • liboqs
  • bc-rust
  • leancrypto
  • Odin

如果您的项目也使用了 Wycheproof 的测试向量,欢迎提交拉取请求将其添加到上面的列表中!

Wycheproof 测试是否发现过显著的错误?

请参阅doc/bugs.md了解一些使用 Wycheproof 测试工具或测试向量数据发现的著名历史错误。

testvectors/ 目录在哪里?

我们最近将 testvectors/ 和 testvectors_v1/ 目录合并为一个统一的目录,并采用一致的 schema 方法。

需要原始("v0")测试向量数据的用户可以从 wycheproof-v0-vectors 标签克隆此仓库,但建议考虑更新到 testvectors_v1/ 以受益于未来的更新。如果 testvectors/ 中有某些功能/测试覆盖在 testvectors_v1/ 中缺失,或者有其他问题阻碍您的更新,请提交 issue 描述您的需求。

所有向量都有 schema 吗?

在撰写本文时,以下 testvectors_v1 文件缺少 schema:

  • testvectors_v1/aes_ff1_base*_test.json
  • testvectors_v1/aes_ff1_radix*_test.json
  • testvectors_v1/ecdsa_secp256k1_sha256_bitcoin_test.json
  • testvectors_v1/pbes2_hmacsha*_aes_*_test.json
  • testvectors_v1/pbkdf2_hmacsha*_test.json
  • testvectors_v1/rsa_pss_*_sha*_mgf*_params_test.json
  • testvectors_v1/rsa_pss_misc_params_test.json

非常欢迎为上述向量贡献 schema。

是否有关于测试向量的其他文档?

提供了一些关于文件、格式和类型的旧版文档,但不一定与当前测试向量状态同步。

通常,建议参考 schema 文件,因为这些文件在CI中经过测试,以确保向量文件内容与其声明的 schema 匹配。

测试工具代码在哪里?

历史上,Wycheproof 还包含测试工具(例如针对 Java 和 Javascript 密码学实现),这些工具直接针对实现测试各种攻击。自从转向社区支持以来,这些工具已被移除(但感兴趣的各方仍可在 git 历史记录中的 cd27d64 找到)。我们目前的重点是实现无关的测试向量。

直接测试第三方密码学库意味着只有在被测试项目提交并可能发布漏洞之后才会发现缺陷。相反,我们鼓励下游项目在其开发过程中定期使用 Wycheproof 测试向量测试其代码。这种方法有助于在缺陷成为 CVE 之前发现它们,意味着新功能立即得到测试,并有助于分摊维护负担。这使得 Wycheproof 维护者可以专注于测试向量,而不是跟踪许多项目的下游开发,同时维护不断增加的语言和项目特定的测试工具。

对测试工具感兴趣的各方可能会发现 Daniel Bleichenbacher 在 Rooterberg 中的持续工作值得关注。

Wycheproof 使用什么许可证?

版权所有 2016-2026 The Wycheproof Authors,根据 Apache License 2.0 提供。

谁创建了 Wycheproof?

Wycheproof 项目最初由以下人员创建和维护:

  • Daniel Bleichenbacher
  • Thai Duong
  • Emilia Kasper
  • Quan Nguyen
  • Charles Lee
下载工具