#elliptic-curve #zero-knowledge-proofs #secret-sharing #interface #general #party #scheme

curv-kzen

Curv提供了一个极为简单的接口来引入新的椭圆曲线。使用此库进行通用椭圆曲线密码学。

15个版本

0.10.0 2022年12月15日
0.9.0 2021年10月19日
0.8.3 2021年10月19日
0.8.0-rc12021年7月27日
0.2.7 2020年6月7日

#500加密学

Download history 985/week @ 2024-04-05 1212/week @ 2024-04-12 1042/week @ 2024-04-19 810/week @ 2024-04-26 816/week @ 2024-05-03 789/week @ 2024-05-10 1311/week @ 2024-05-17 1378/week @ 2024-05-24 1287/week @ 2024-05-31 1235/week @ 2024-06-07 1049/week @ 2024-06-14 973/week @ 2024-06-21 1124/week @ 2024-06-28 1518/week @ 2024-07-05 1291/week @ 2024-07-12 1252/week @ 2024-07-19

5,321 每月下载量
用于 16 个crate(15 个直接使用)

MIT 许可证

375KB
8K SLoC

Build Status Latest version Docs License dependency status

Curv

Curv提供了一个极为简单的接口来引入新的椭圆曲线。使用此库进行通用椭圆曲线密码学。

该库内置了对一些有用的操作/原语的支持,例如可验证的秘密共享、承诺方案、零知识证明以及简单的两方协议,如ECDH和抛硬币。该库提供了序列化和反序列化支持,可用于在高级代码中实现网络。

用法

要使用curv crate,将以下内容添加到您的Cargo.toml中

[dependencies]
curv-kzen = "0.9"

该crate将以curv名称可用,例如

use curv::elliptic::curves::*;

当前支持的椭圆曲线

曲线 低级库 曲线描述
Secp256k1 rust-secp256k1 bitcoin wiki
P-256 RustCrypto NIST.FIPS.186.4
Ed25519 cryptoxide BDLSY11
Ristretto curve25519-dalek ristretto group
BLS12-381 bls12-381 BLS12-381 For The Rest Of Us

安全性

该库于2月19日由Kudelski security进行了审计。报告可以在此处找到。没有发现关键问题,并且已修复发现的所有问题。

代码由其他几位密码学家独立审查。特别感谢来自奥尔胡斯大学的Claudio Orlandi

总的来说,库的安全性高度依赖于使用的低级库的安全性。我们只选择了作为其他大型项目一部分使用的库,并且经过严格的审计/审查。

该库并非免疫于旁路攻击,但已投入大量努力以尽可能多地捕获此类攻击(参见审计报告)。

构建

使用 cargo build 来构建包括曲线实现、加密原语、BigInt等所有内容。

大整数实现

该库支持几个大整数实现,并且可以轻松地在它们之间切换。您可以通过指定功能来选择您喜欢的任何一个。

  • rust-gmp-kzen,使用 GMP 绑定,需要在机器上安装 GMP。默认使用。

  • num-bigint,Rust 的纯大整数实现。为了使用它,在 Cargo.toml 中添加

    [dependencies.curv-kzen]
    version = "0.8"
    default-features = false
    features = ["num-bigint"]
    

    警告: num-bigint 的支持是实验性的,不应在生产环境中使用。对于此大整数实现,我们使用素数生成器,这被认为是不安全的。

示例

该库包含一些基本示例以供您开始。要运行它们:cargo run --example EXAMPLE_NAME -- CURVE_NAME 例如:cargo run --example proof_of_knowledge_of_dlog -- secp256k1

文档

要构建文档,使用

cargo doc
RUSTDOCFLAGS="--html-in-header katex-header.html" cargo doc --no-deps --open

许可

Curv 根据 MIT 许可协议发布。有关更多信息,请参阅 LICENSE

开发过程 & 联系方式

该库由 ZenGo-X 维护。欢迎贡献!除了 GitHub 问题单和 PR 外,您可以通过电子邮件 联系 我们,或加入 ZenGo X 的 Telegram 讨论代码和研究。

依赖关系

~14MB
~210K SLoC