RSA Security 4.3 Home Security System User Manual


 
13
Chapter 3
Using the Intel Random Number
Generator
This chapter gives some background on random number generators and shows how
to use the Intel Random Number Generator (RNG) with a Crypto-C application.
Random Numbers
All cryptosystems, whether secret-key systems like DES or public-key systems like
RSA encryption, need a good source of cryptographic random numbers. The random
numbers are used to generate input such as keys and initialization vectors. A good
random number source should produce numbers that are unpredictable. Random
numbers can be produced via hardware, such as the Intel RNG, or via a software
pseudo-random number generator (PRNG), such as the PRNGs in Crypto-C, that has
been seeded with true random input. A seed is unpredictable input, generated by
hardware or manually by the user, that is used to set the initial state of the PRNG.
Note:
An application with strong security requirements should use multiple sources
of seeding and not rely on any single point of attack. For example, such an
application might combine random bytes from the Intel Random Number
Generator with user-generated input, such as gathering a seed through
mouse movement and/or the keyboard. Random numbers generated by
combining multiple sources of information should always be used as a seed
to a PRNG, and never be used directly.