摘要:
Rust源码组织结构 liballoc 内存分配库, 标准库中涉及到堆内存分配相关的代码在此; alloc: 全局内存分配器Global(实现了AllocReftrait), 及内存分配相关的函数alloc/realloc/dealloc/alloc_zeroed的实现(他们是对libcore库中的 阅读全文
摘要:
Rust Borrow和AsRef的区别 AsRef/AsRefMut和Borrow/BorrowMut具有相似的借语义, 但他们有如下的不同; 任何类型T都实现了(blanket impl)Borrowtrait, 即Rust中任何实例都是可以被借用(&/&mut)的(当然这里任何是指满足语法语义 阅读全文
摘要:
Raft一致性算法 Raft一致性算法 前要说明 为了便于理解和实现, Raft算法将集群中多台服务器之间一致性问题分解为: Leader选举, 日志复制和安全这几个子问题; 记有集群${C_i,\ i=1,2\dots m}$, 角色集$R={Leader, Candidate, Follower 阅读全文
摘要:
SM3哈希算法 Rust实现 简要说明 消息长度(bits) 块大小(bits) 单词长度(bits) 消息摘要长度(bits) SM3 \(\lt 2^{64}\) 512 32 256 算法流程 位填充 记有消息$M$(位长度为$l$), 首先在消息尾补一个比特位0b1, 然后补$k$个比特位0 阅读全文
摘要:
SHA3 基于置换的哈希和可扩展输出函数 Rust实现 Hash 记有消息$M$, SHA-3定义如下: \[ \begin{aligned} & SHA3-224(M) = Keccak[448](M || 01, 224) \\ & SHA3-256(M) = Keccak[512](M || 阅读全文
摘要:
ECC, ECDSA, ECIES 阅读全文
摘要:
KDF(Key Derivation Function) 阅读全文
摘要:
椭圆加密数学基础 Rust实现 有限群 记有一个集合$S$, 及定义在$S$上的满足如下性质的二元运算$\oplus$, 则$(S,\oplus)$称为群: 封闭性: 对$\forall a, b\in S$, 有$a\oplus b \in S$. 单位元: 存在一个唯一的元素$e \in S$, 阅读全文
摘要:
Rust memory ordering 阅读全文