5 ms·
Looks fine for home made RNG, but not enough for production. What's missed there, since method is using data from MCU RAM, it's better to test MCU RAM first wit
by varelaz 8y ago
Looks fine for home made RNG, but not enough for production. What's missed there, since method is using data from MCU RAM, it's better to test MCU RAM first without XOR. Can we be confident that certain bit will be more likely to invert with XOR than another? Would zero's density depend on page index etc. XOR hides a lot of obvious source data errors, which better to fix before applying XOR to avoid some hidden patterns. Also there needs to be some test for input source, for example if page has less than 90% of "ones", skip it, since it cannot provide enough amount of bit inverts to make it random (we need to have enough '1' to invert every bit several times to make it unpredictable).
- vectorEQ 8y agoyour 'production' requirements don't have things to do with randomness. its common for cryptographic use cases to have some more steep post processing requirements for randomness sources to avoid some pitfals, but in reality, 111111111 is just as random as 0000000 or 01010101010 as long as it's not a perpetuated pattern?
- varelaz 8y agoThere is no aim to get one or zero in output. We need to have enough ones for XOR algorithm to invert bits. A xor 1 => inverted A. A xor 0 = A. So if we have too few ones, source data will remain unchanged and that quickly become a pattern. The same is if we have too few zeros and amount of inverts become predictable.