> > 1) Can't we just derive a special drbg class from >> randomnumbergenerator, so people would have the choice which interface >> style to use? (and use the new NIST class to derive the NIST DRBGs). >> > Yes, RandomNumberGenerator will be a base class. > > What I am wondering about if/how the policy related objects should fit in. > > > Could you please state the requirements an approved generator has to > fulfill? > (Reseed every X seconds,...) > The requirements for the NIST generators can be found in [1,2].
I don't know what your Fortuna generator requires because I don't use it. You should probably review the paper that introduced it to the world. There's also VM playback hardening [3,4]. To help harden against some of these attacks, you add entropy immediately prior to providing bytes. Maybe the way to proceed is to add a couple of overloaded constructors and NamedValuePairs that the generator understands (http://www.cryptopp.com/wiki/NameValuePairs). There could be a ReseedInterval of type "unsigned int", an AddEntropyOnOutput of type "boolean", etc. AddEntropyOnOutput is partially the Hedging implementation proposed by Ristenpart and Yilek. [1] Recommendation for Random Number Generation Using Deterministic Random Bit Generators, http://csrc.nist.gov/publications/nistpubs/800-90A/SP800-90A.pdf [2] Recommendation for Random Bit Generator (RBG) Constructions, SP800-90C, http://csrc.nist.gov/publications/drafts/800-90/draft-sp800-90c.pdf [3] When Virtual is Harder than Real: Security Challenges in Virtual Machine Based Computing Environments, https://www.usenix.org/legacy/event/hotos05/final_papers/full_papers/garfinkel/garfinkel.pdf [4] When Good Randomness Goes Bad: Virtual Machine Reset Vulnerabilities and Hedging Deployed Cryptography, http://pages.cs.wisc.edu/~rist/papers/sslhedge.pdf -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
