2 ms·
Can someone help me understand why intel has both the rdrand and rdseed instruction set? If your device outputs high quality random data, why would it need two
by matt_wulfeck 11y ago
Can someone help me understand why intel has both the rdrand and rdseed instruction set? If your device outputs high quality random data, why would it need two outlets?
- JoshTriplett 11y agohttps://software.intel.com/en-us/blogs/2012/11/17/the-difference-between-rdrand-and-rdseed https://software.intel.com/en-us/blogs/2012/11/17/the-differ... rdseed directly gives you the output of a hardware RNG, limited by the rate that hardware RNG produces random bits. rdrand gives you CSPRNG output seeded by rdseed.
- ryuuchin 11y agoBecause the DRNG (Digital RNG) on Intel processors filter the data through a DRNG (Deterministic RNG) (i.e. NIST 800-90)[1] which is constantly reseeded. The rdseed instruction was added later to allow for accessing the hardware generator directly (or the bits from the AES CBC-MAC conditioner directly). I don't know why rdseed was added a generation after rdrand. Whatever the case is you can guarantee that rdrand's internal generator gets reseeded by calling it a certain number of times[2]. You can also wait some amount of time between calls but it's likely faster just to generate more data to force the reseed. [1] Like Windows it uses AES-256 (AFAIK) in CTR mode as specified in NIST 800-90 or whatever the latest version of that standard is. [2] the DRNG reseeds automatically after generating 511 128-bit samples (from Intel's drng_samples source package)