Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

参考资料

本页区分规范、论文、实现文档和辅助解释。阅读顺序不是权威等级:实现时应优先服从所选协议的规范和测试向量。

核心规范

  1. 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。

  2. S. Josefsson, I. Liusvaara, RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA), 2017。
    用于理解 EdDSA 编码和签名背景;本工程第一版使用 Ristretto255,不应把两者混称。

  3. J. Nick, T. Ruffing, E. Seurin, P. Wuille, BIP 340: Schnorr Signatures for secp256k1。
    后续学习 secp256k1/x-only Schnorr 时使用。BIP340 的 tagged hash、偶数 Y 归一化和编码规则不能直接套用到 Ristretto255。

奠基论文

  1. Adi Shamir, How to Share a Secret, Communications of the ACM, 1979。

  2. Claus-Peter Schnorr, Efficient Identification and Signatures for Smart Cards, CRYPTO 1989 / published 1990。

  3. Chelsea Komlo, Ian Goldberg, FROST: Flexible Round-Optimized Schnorr Threshold Signatures, 2020。

  4. Paul Feldman, A Practical Scheme for Non-interactive Verifiable Secret Sharing, 1987。

Rust 与曲线资料

  1. curve25519-dalek 文档。
    第一版借用其 Scalar、RistrettoPoint、压缩点和常量时间基础操作。

  2. The Ristretto Group。
    理解 Ristretto 如何提供素数阶群抽象,以及它与 Edwards25519 的关系。

  3. frost-ristretto255 文档。
    后期只作为测试 oracle、API 参考和互操作对照;不要用它替代自己的协议实现。

  4. RustCrypto k256。
    第二阶段实现 secp256k1 对照版本时使用。

辅助阅读

  1. ZKDocs: Shamir Secret Sharing。
  2. ZKDocs: Schnorr Signatures。
  3. The Rustonomicon,用于理解 Rust 中内存、未定义行为与安全边界;它不替代密码学审计。

如何使用资料

  • 理论学习可以同时参考论文和辅助解释。
  • 编写规范兼容代码时,以 RFC 的算法、编码和测试向量为准。
  • 发现论文、RFC、库实现存在差异时,先记录版本和差异,不要自行混合。
  • 库文档的 latest 页面会变化;真正开始实现时,应把 Cargo 依赖版本锁定并记录审阅日期。