#bitcoin #crypto #secp256k1 #ecc

无需std secp256kfun_k256_backend

基于k256的secp256kfun后端

4个版本 (稳定)

2.0.1 2022年9月5日
2.0.0 2022年1月12日
1.0.0 2021年11月11日
0.9.6 2021年11月10日

#24 in #secp256k1

Apache-2.0 OR MIT

245KB
5K SLoC

RustCrypto: secp256k1 (K-256) 椭圆曲线

crate Docs Apache2/MIT licensed Rust Version Project Chat Build Status

secp256k1 (又称K-256) 是一个纯Rust编写的椭圆曲线库,支持 ECDSA 签名/验证(包括带公钥恢复的Ethereum风格签名),椭圆曲线Diffie-Hellman (ECDH),以及通用算术,可用于实现任意协议。

使用来自 elliptic-curve 包的特性和基本类型。

可选地包含一个提供标量和点类型(射影/仿射)的secp256k1 arithmetic 功能,支持常数时间标量乘法。此外,实现了来自 group 包的特性和函数,可用于通用地构建基于群的协议。

文档

⚠️ 安全警告

此crate中包含的secp256k1椭圆曲线算术从未经过独立审计!

此crate的设计目标是确保secret-dependent secp256k1操作在常数时间内执行(使用subtle crate和常数时间公式)。但是,它尚未经过彻底的评估,以确保在常见的CPU架构上生成的汇编是常数时间的。

自行承担风险!

支持的算法

关于secp256k1 (K-256)

secp256k1 是在加密货币应用中常用的一种Koblitz曲线。"K-256"名称遵循NIST表示法,其中P = 域,B = 二进制域,K = Koblitz曲线。

曲线由Certicom的SECG在“SEC 2:推荐椭圆曲线域参数”中指定为secp256k1

https://www.secg.org/sec2-v2.pdf

secp256k1主要因其被用于比特币和其他加密货币而备受关注,尤其是在与椭圆曲线数字签名算法(ECDSA)结合使用时。由于其在这些应用中的广泛应用,secp256k1是最受欢迎和最常用的椭圆曲线之一。

最低支持的Rust版本

Rust 1.51 或更高版本。

最低支持的Rust版本可能会在未来改变,但将只通过小版本号的增加来完成。

SemVer策略

  • 此库中所有默认启用的功能都受到SemVer的保护
  • 如上所述,MSRV被视为免除SemVer

许可证

所有根据以下任一许可证授权的crate:

任选其一。

贡献

除非你明确声明,否则根据Apache-2.0许可证定义的,你有意提交以包含在本作品中的任何贡献,将按照上述方式双许可,不附加任何额外的条款或条件。

依赖关系

~280KB