参考资料
本页区分规范、论文、实现文档和辅助解释。阅读顺序不是权威等级:实现时应优先服从所选协议的规范和测试向量。
核心规范
-
D. Connolly, C. Komlo, I. Goldberg, C. A. Wood, RFC 9591: The Flexible Round-Optimized Schnorr Threshold (FROST) Protocol for Two-Round Schnorr Signatures, 2024。
本工程 FROST 主线的首要规范。注意它是 IRTF Informational RFC,并非 IETF Standards Track。 -
S. Josefsson, I. Liusvaara, RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA), 2017。
用于理解 EdDSA 编码和签名背景;本工程第一版使用 Ristretto255,不应把两者混称。 -
J. Nick, T. Ruffing, E. Seurin, P. Wuille, BIP 340: Schnorr Signatures for secp256k1。
后续学习 secp256k1/x-only Schnorr 时使用。BIP340 的 tagged hash、偶数 Y 归一化和编码规则不能直接套用到 Ristretto255。
奠基论文
-
Adi Shamir, How to Share a Secret, Communications of the ACM, 1979。
-
Claus-Peter Schnorr, Efficient Identification and Signatures for Smart Cards, CRYPTO 1989 / published 1990。
-
Chelsea Komlo, Ian Goldberg, FROST: Flexible Round-Optimized Schnorr Threshold Signatures, 2020。
-
Paul Feldman, A Practical Scheme for Non-interactive Verifiable Secret Sharing, 1987。
Rust 与曲线资料
-
curve25519-dalek文档。
第一版借用其Scalar、RistrettoPoint、压缩点和常量时间基础操作。 -
The Ristretto Group。
理解 Ristretto 如何提供素数阶群抽象,以及它与 Edwards25519 的关系。 -
frost-ristretto255文档。
后期只作为测试 oracle、API 参考和互操作对照;不要用它替代自己的协议实现。 -
RustCrypto
k256。
第二阶段实现 secp256k1 对照版本时使用。
辅助阅读
- ZKDocs: Shamir Secret Sharing。
- ZKDocs: Schnorr Signatures。
- The Rustonomicon,用于理解 Rust 中内存、未定义行为与安全边界;它不替代密码学审计。
如何使用资料
- 理论学习可以同时参考论文和辅助解释。
- 编写规范兼容代码时,以 RFC 的算法、编码和测试向量为准。
- 发现论文、RFC、库实现存在差异时,先记录版本和差异,不要自行混合。
- 库文档的
latest页面会变化;真正开始实现时,应把 Cargo 依赖版本锁定并记录审阅日期。