加密模块
加密组件承载我们在 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