0.2.7 2022年8月16日
0.2.6 2022年8月13日
0.2.2 2022年7月22日
0.1.7 2022年7月9日
0.1.0 2022年5月22日

#33#generate-keys

每月 27 次下载
104 个 crate (69 直接) 中使用

Apache-2.0

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.rsvalidatable.rs 中的 trait。

概述

Aptos 使用了多种密码学算法

  • SHA-3 作为主哈希函数
  • HKDF:基于 HMAC 的提取和扩展密钥推导函数
    • RFC 5869 中标准化
    • 用于从盐(可选)、种子和应用程序信息(可选)生成密钥
  • Ed25519 签名和(天真)多签名
    • 基于 ed25519-dalek crate,并增加了额外的安全检查(例如,对可篡改性进行检查)
  • Boneh-Shacham-Lynn (BLS) 多签名和聚合签名
    • 基于 blst crate
    • 基于Barreto-Lynn-Scott BLS12-381椭圆曲线实现
  • 噪声协议框架
    • 用于在验证者之间创建认证和加密的通信通道
  • X25519密钥交换

用于更安全的加密实现特性

在实现加密原语之前,请务必阅读traits.rsvalidatable.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

变更日志

  • 该crate历史上支持(不同的)BLS12-381,EC-VRFSLIP-0010,但由于使用率低已删除。删除前的最后一个git修订版是00301524。

依赖关系

~14MB
~418K SLoC