0.2.7 |
|
---|---|
0.2.6 |
|
0.2.2 |
|
0.1.7 |
|
0.1.0 |
|
#33 在 #generate-keys
每月 27 次下载
在 104 个 crate (69 直接) 中使用
305KB
5K SLoC
id: crypto title: Crypto custom_edit_url: https://github.com/aptos-labs/aptos-core/edit/main/crypto/crypto/README.md
密码学组件包含我们在 Aptos 中使用的所有加密原语实现:哈希、签名、多签名、聚合签名以及密钥推导/生成。
为了强制执行签名方案的类型安全性,我们依赖于 traits.rs
和 validatable.rs
中的 trait。
概述
Aptos 使用了多种密码学算法
- SHA-3 作为主哈希函数
- 在 FIPS 202 中标准化
- 基于 tiny_keccak crate
- HKDF:基于 HMAC 的提取和扩展密钥推导函数
- 在 RFC 5869 中标准化
- 用于从盐(可选)、种子和应用程序信息(可选)生成密钥
- Ed25519 签名和(天真)多签名
- 基于 ed25519-dalek crate,并增加了额外的安全检查(例如,对可篡改性进行检查)
- Boneh-Shacham-Lynn (BLS) 多签名和聚合签名
- 基于 blst crate
- 基于Barreto-Lynn-Scott BLS12-381椭圆曲线实现
- 噪声协议框架
- 用于在验证者之间创建认证和加密的通信通道
- X25519密钥交换
- 基于x25519-dalekcrate
- 用于我们的噪声协议框架实现
用于更安全的加密实现特性
在实现加密原语之前,请务必阅读traits.rs
和validatable.rs
,了解如何遵守我们的API以及相关的安全关注。
此模块是如何组织的?
crypto/src
├── bls12-381/ # Boneh-Lynn-Shacham (BLS) signatures over (Barreto-Lynn-Scott) BLS12-381 curves
├── unit_tests/ # Unit tests
├── lib.rs
├── ed25519.rs # Ed25519 implementation of the signing/verification API in traits.rs
├── hash.rs # Hash function (SHA-3)
├── hkdf.rs # HKDF implementation
├── multi_ed25519.rs # MultiEd25519 implementation of the signing/verification API in traits.rs
├── noise.rs # Noise Protocol Framework implementation
├── test_utils.rs
├── traits.rs # Traits for safer implementations of signature schemes
├── validatable.rs # Traits for deferring validation of group elements (e.g., public keys, signatures)
└── x25519.rs # X25519 implementation
变更日志
依赖关系
~14MB
~418K SLoC