#galois #256-bit #variation #shift #linear #feedback #lfsr

random_lfsr_256_galois

基于256位多项式上的线性反馈移位寄存器(LFSR,Galois变体)的简单随机生成器实现

1个稳定版本

22.10.0 2022年10月25日

#1945 in 算法

X11许可

17KB
257

random_lfsr_256_galois

基于256位多项式上的线性反馈移位寄存器(LFSR,Galois变体)的简单随机生成器实现。

这是什么?

random-lfsr-256-galois 是一个极简的均匀分布伪随机数生成器,具有扭曲随机序列的可能性。它基于256位LFSR多项式 x256 + x254 + x251 + x246,生成的随机组合比标准的32位伪随机生成器更多。

此实现是为了教育和娱乐目的开发的(例如游戏)。不要将其用于加密项目,如果您将其用于加密,您将得到您应得的。

用法

use random_lfsr_256_galois::LFSRGaloisBuilder;

//Create PRNG with builder
let mut lfsr = LFSRGaloisBuilder::new().build();

// Then get random value of type you need (up to 128bit)
let random_byte: u8 = lfsr.next();
let random_int: i32 = lfsr.next();
let random_uint64: u64 = lfsr.next();
let random_u128: u128 = lfsr.next();

您还可以通过在随机时刻调用 LFSRGalois::shake 函数来扭曲寄存器,以打断LFSR序列,例如用户操作(鼠标点击、按键)或其他外部事件,如接收网络数据包。

use random_lfsr_256_galois::LFSRGaloisBuilder;

let mut lfsr = LFSRGaloisBuilder::new().build();

lfsr.shake()

许可

X11

依赖关系

~1–1.9MB
~40K SLoC