New answers tagged csprng
If you XOR two independent streams of two random number generators together then the result is as strong as the strongest of the two.
An IV is a binary value which can contain arbitrary bytes, including null bytes. But when you initialize a string from const char* it treats the input as null terminated string. This string is shorter than the the IV if the IV does contain a null byte, and reads beyond the buffer if the IV does not contain null bytes.
The hexadecimal output of an IV matching the block size of Serpent should be 32 characters. Since you are getting 42, that is an extra 5 bytes of data. The last 5 bytes of every IV you posted is 3056E60801, which leads me to strongly believe this is an implementation issue, possibly related to reinterpret_cast. In terms of the RNG itself, it appears to be ...
As mentioned, most proofs of PRNG security are really proofs of a protocol that uses some underlying construct. The proofs say, "If the construct can't be broken, then the protocol that uses it can't be broken any easier than that." That makes all these proofs subject to the assumption that the underlying construct (like factoring, quadratic residuosity, ...
Top 50 recent answers are included