5 ms·
Well, that's not entirely true, even if two random bits are independent, xor-ing them only gives you one random bit. What actually happens in Linux is that each
by dooglius 7y ago
Well, that's not entirely true, even if two random bits are independent, xor-ing them only gives you one random bit. What actually happens in Linux is that each new input of random bits gets pushed through a cryptographic hash, before being xor'd.
- ChrisSD 7y agoFrom replies it seems my two sentences weren't as clear as I thought. I'll try to refine it: A property of bitwise xoring random variable `x` with a constant (or otherwise non-random but independent) value is that the entropy of `x` is preserved in the result.
- WAHa_06x36 7y agoHowever, xoring two arbitrary random variables is NOT guaranteed to preserve entropy. Preserving entropy only happens under certain specific conditions.
- deleted 7y ago[deleted]
- ChrisSD 7y agoUnder what circumstances would xoring `x` and `y` not produce a result with entropy at least as great as `x`?
- WAHa_06x36 7y agoIn the very obvious cases where x == y, or x == not y, or x == y + 1, or many other correlations.
- ChrisSD 7y agoOnly if y is known to be dependent on x. If y is random but just so happens to be `not x` or `== x` then that won't make the result any less random. 0 is as random a number as 529890873740477 is.
- WAHa_06x36 7y agoSingle numbers don't really have entropy at all, so that is not something it even makes sense to talk about.