I'm doing a spare-time project to collect cryptographic algorithms, implement them, and lastly benchmark them.

For the CSPRNG part, I'm evaluating NIST-SP-800-90Ar1 HMAC-DRBG and CTR-DRBG (Hash-DRBG had problems so I dropped it), and I wonder how better HMAC-DRBG will perform if HMAC was instantiated with BLAKE2 instead of SHA-2 or SHA-3, or completely replaced by the keyed BLAKE2, or better yet, how will a purely ChaCha-based PRNG perform better than HMAC-DRBG.

Is there a full-fledged ChaCha-based PRNG (I'm thinking ARC4Random) that supports the basic functions of the NIST special publication? (That is, instantiate, generate, and reseeding.)

  • 1
    $\begingroup$ The Linux kernel CSPRNG subsytem (random.h, /dev/urandom, getrand(), etc) uses ChaCha and supports init/generate/reseed. $\endgroup$ – SAI Peregrinus Nov 27 '20 at 19:26
  • $\begingroup$ @SAIPeregrinus If it'd be provided as an answer, it'll be marvellous, especially if links to design doc and rationales (if there is one) are provided. In the mean time, I'll be analyzing its source code. $\endgroup$ – DannyNiu Nov 28 '20 at 2:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.