#chia #compatible #multi-threaded #rayon #input #cha-cha8 #chacha8

chiapos-chacha8

chiapos-chacha8 兼容实现。注意:这不是标准 ChaCha8 的实现,不应如此使用。

1 个不稳定版本

0.1.0 2021 年 9 月 18 日

#35 in #chia

Download history 18/week @ 2024-04-07 8/week @ 2024-04-14 8/week @ 2024-04-21 13/week @ 2024-04-28 5/week @ 2024-05-05 15/week @ 2024-05-12 26/week @ 2024-05-19 23/week @ 2024-05-26 22/week @ 2024-06-02 17/week @ 2024-06-09 27/week @ 2024-06-16 22/week @ 2024-06-23 4/week @ 2024-06-30 9/week @ 2024-07-07 20/week @ 2024-07-14 32/week @ 2024-07-21

68 每月下载次数
7 个 crate 中使用(通过 block-pseudorand

Apache-2.0 OR MIT

9KB
125

chiapos-chacha8

这是 chiapos 的 ChaCha8 在 Rust 中的逐字节兼容实现。它已在 Rust 中自定义的 chiapos 实现中手动验证,以产生相同的结果。

除了产生相同的结果之外,此实现还使用 Rayon 进行多线程,从而产生非常快速的数据。

用法

此 crate 对原始用例有一些严格的要求

  • 输出数据必须是 512 位块
  • 输入密钥长度必须为 256 位(ChaCha8 在原始实现中可以接受 128 位或 256 位的输入)
  • IV 将被置零
// Randomize this key however you would like
let mut key = [0u8; 32];
let chacha8 = ChaCha8::new_from_256bit_key(&key);

// Output data goes in this vec, note that 64 * 8 = 512bits
let num_blocks = 128;
let mut chacha_blocks = vec![0u8; 64 * num_blocks];

// pos is the offset in the output keystream
let pos = 0;
chacha8.get_keystream(pos, &mut chacha_blocks);

优点

此 crate 以极快的速度以 512 位块生成伪随机数据。对于相同的输入,输出也是确定的。

注意事项

此 crate 对以下内容不提供任何保证:

  • 与原始 ChaCha8 实现或规范的相关正确性
  • 密码学安全性

依赖项

~1.5MB
~25K SLoC