#elliptic-curve #nist #crypto #ecc #secp256r1 #prime256v1

无需 std p256_flow

Flow-Rust-SDK 版本的 p256,是 NIST P-256(又称 secp256r1、prime256v1)椭圆曲线的纯 Rust 实现,支持 ECDH、ECDSA 签名/验证和通用曲线算术。经过大量修改,用于签名 Flow 区块链交易。

1 个稳定版本

1.0.0 2021 年 9 月 22 日

#1390 in 加密学


用于 flow-rust-sdk

Apache-2.0 OR MIT

145KB
3K SLoC

P256

这是一个经过大量修改的版本,旨在与 Flow-Rust-SDK 一起使用。


lib.rs:

纯 Rust 实现的 NIST P-256 椭圆曲线,包括对 椭圆曲线数字签名算法 (ECDSA)椭圆曲线迪菲-赫尔曼 (ECDH) 和通用椭圆曲线/域算术的支持,可用于实现基于群操作的协议。

关于 NIST P-256

NIST P-256 是 FIPS 186-4:数字签名标准(DSS)中指定的韦尔斯特拉斯曲线。

https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf

也称为 prime256v1(ANSI X9.62)和 secp256r1(SECG),P-256 包含在美国国家安全局的“套件 B”中,并在 TLS、X.509 PKI 和蓝牙等互联网和连接设备协议中得到广泛应用。

⚠️ 安全警告

该软件包中包含的椭圆曲线算术从未经过独立审计!

该软件包的设计目标是确保基于密钥的操作在常数时间内执行(使用 subtle 软件包和常数时间公式)。然而,它尚未经过彻底评估,以确保在常见的 CPU 架构上生成的汇编代码是常数时间的。

自行承担风险!

最低支持的 Rust 版本

Rust 1.52 或更高版本。

最低支持的 Rust 版本可能会在未来更改,但将伴随着小版本号的增加。

依赖项

~3.5MB
~54K SLoC