[Development] CSPRNG vs DPRNG

Thiago Macieira thiago.macieira at intel.com
Thu Oct 12 17:11:13 CEST 2017

On quinta-feira, 12 de outubro de 2017 01:28:34 PDT Edward Welbourne wrote:
> > So I created a better option: QPseudoRandomGenerator (name bikeshedding
> > later)
> I should note that "pseudo-random" is in fact a variant on "chaotic", so
> perhaps QChaoticGenerator would be more apt.   Chaos is not random,
> it just looks a lot like it.

I have another option, which is to make QRandomGenerator be both:

- QRandomGenerator::system() is the system, HW-backed CSPRNG.
- QRandomGenerator::global() is the app-wide securely-seeded DPRNG
- QRandomGeneraotor has a constructor to create repeatable DPRNG.

If Ville and Marc don't look too closely at the change, I can even save the 
system the 637 * 4 bytes of static data that would never be used.

I haven't made this change yet, but I think it's a better solution and less of 
a disrupution of the feature freeze.

I still need a mandatory Mersenne twister and, like QThread, we'll have at 
least one std symbol in our ABI (std::seed_seq).

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

More information about the Development mailing list