加密模块

加密组件承载我们在 XMETA 中使用的关于加密所有实现:散列,签名和密钥派生/生成。NextGen目录包含未来版本中要使加密的实现:新的加密API增强类型安全,可验证的随机函数,BLS签名。

XMETA使用几种密码算法:

SHA-3 作为主要的哈希函数。它在 FIPS 202 标准化. 基于 tiny_keccak 库实现。

X25519 用于密钥交换。它通过使用 Noise Protocol Framework,保护验证器之间的通信,基于x25519-dalek库。

Ed25519 用于签名。它既应用于共识签名,也应用于交易签名。计划将EdDSA添加到 NIST SP 800-133 Rev. 1 中提到的下一版本 FIPS 186中。基于ed25519-dalek 库同时增加了安全性检查(例如:为了扩展性)。

HKDF 基于HMAC的Extract-and-Expand密钥衍生函数(HKDF),基于 RFC 5869,它用于从salt(可选),种子和应用信息(可选)生成密钥。

模块组织:

legacy_crypto/src

├── signing.rs # Ed25519 signature scheme

├── hash.rs # Hash function (SHA-3)

├── hkdf.rs # HKDF implementation (HMAC-based Extract-and-Expand Key Derivation Function based on RFC 5869)

├── x25519.rs # X25519 keys generation

├── macros/ # Derivations for SilentDebug and SilentDisplay

├── utils.rs # Serialization utility functions

├── unit_tests # Tests

├── Xmeta.rs

目前 x25519.rs 只公开了管理密钥的逻辑。噪声协议框架(Noise Protocol Framework)相关加密原语属于 snow 之下。

Last updated