Search code examples
c#cryptographyprng

Alternative Cryptographic Secure Pseudo Random Number Generator for C#


After all this NSA stuff I was just wondering if anybody knows alternatives to the System.Security.Cryptography.RNGCryptoServiceProvider() from .NET - maybe an Open Source solution?

I tried to search for it, but wasn't really successful, so I hope anybody from the community has an idea?

Thanks


Solution

  • There are two random number generators in Bouncy Castle - C# version that may be of use: DigestRandomGenerator and VmpcRandomGenerator, both in the crypto.prng name space. The trick is to seed those random entropy from a source you can trust.

    Note that I am unfamiliar with the VMPC algorithm. The DigestRandomGenerator largely depends on the security of the underlying hash function (SHA-512 is pretty secure and fast on 64 bit hardware). It is a rather simple implementation, but it should be secure none-the-less.