1 个不稳定版本
0.0.3 | 2022年11月7日 |
---|
#29 in #generate-keys
330KB
5.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
的特性,以了解如何符合我们的API以及涉及的一些安全问题。
概述
Aptos使用多个密码学算法
- SHA-3 作为主要的哈希函数
- 在 FIPS 202 中标准化
- 基于 tiny_keccak 包
- HKDF:基于HMAC的提取和扩展密钥推导函数
- 在 RFC 5869 中标准化
- 用于从盐(可选)、种子和应用信息(可选)生成密钥
- Ed25519 签名和(天真)多签名
- 基于 ed25519-dalek 包,增加了额外的安全检查(例如,针对可塑性)
- Boneh-Shacham-Lynn (BLS) 多签名和聚合签名
- 基于 blst 包
- 基于Barreto-Lynn-Scott BLS12-381椭圆曲线实现
- Noise协议框架
- 用于在验证者之间创建认证和加密通信通道
- X25519 密钥交换
- 基于 x25519-dalek 包
- 用于我们实现 Noise协议框架
用于更安全密码学实现的特性
在实现密码学原语之前,务必阅读 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/ # 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
变更日志
依赖项
~15MB
~426K SLoC