Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

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

wycheproof

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

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Project Wycheproof

Project Wycheproof 是一个社区管理的测试向量仓库,密码学库开发者可以使用它来测试针对已知攻击、规范不一致以及其他各种实现缺陷的防护能力。

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

快速开始

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

你可能会发现,研究其他项目(如 pyca/cryptography)是如何集成 Wycheproof 的测试向量的,会有所帮助。

覆盖范围

Project Wycheproof 为最流行的密码学算法提供了测试向量,包括

  • AEGIS
  • AES-EAX
  • AES-FF1
  • AES-GCM
  • AES-SIV
  • ARIA
  • ASCON v1.2 AEAD(Ascon-128、Ascon-128a、Ascon-80pq;标准化前)
  • NIST SP 800-232 Ascon-AEAD128
  • 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)

这些测试向量可以检测一个库是否容易受到多种攻击,包括

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

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

贡献

如果你想做出贡献,请阅读 CONTRIBUTING 并向我们发送 pull request。你也可以通过 GitHub issues 报告 bug 或请求新测试。

开发优先级

我们正在将 Project Wycheproof 作为 C2SP 项目重振开发与维护,并重新聚焦于测试向量数据。

我们当前的首要任务是为测试向量数据增加更多的算法和测试用例覆盖。

常见问题

为什么这个项目叫 "Wycheproof"?

Project Wycheproof 以 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
  • FreeHSM

如果你的项目使用了 Wycheproof 的测试向量,欢迎提交 PR 将其添加到上面的列表中!

Wycheproof 测试是否发现过值得注意的 bug?

请参阅 doc/bugs.md,了解使用 Wycheproof 的测试框架或测试向量数据发现的一些值得注意的历史 bug。

testvectors/ 目录在哪里?

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

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

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

有一些关于文件、格式和类型的遗留文档,但它们不一定与当前测试向量状态保持同步。

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

测试框架代码在哪里?

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

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

对测试框架感兴趣的人可能会对 Daniel Bleichenbacher 在 Rooterberg 中的持续工作感兴趣。

Wycheproof 采用什么许可证?

Copyright 2016-2026 The Wycheproof Authors,基于 Apache License 2.0 提供。

谁创建了 Wycheproof?

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

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