Developer Reference

Contents

Pseudorandom Number Generation Functions

Many cryptographic systems rely on pseudorandom number generation functions in their design that make the unpredictable nature inherited from a pseudorandom number generator the security foundation to ensure safe communication over open channels and protection against potential adversaries.
This section describes functions that make the pseudorandom bit sequence generator implemented by a US FIPS-approved method and based on a SHA-1 one-way hash function specified by [FIPS PUB 186-2]
, appendix 3
.
The application code for generating a sequence of pseudorandom bits should perform the following sequence of operations:
  1. Call the function
    PRNGGetSize
    to get the size required to configure the
    IppsPRNGState
    context.
  2. Ensure that the required memory space is properly allocated. With the allocated memory, call the
    PRNGInit
    function to set up the default value of the parameters for pseudorandom generation process.
  3. If the default values of the parameters are not satisfied, call the function PRNGSetSeed and/or
    PRNGSetAugment
    and/or
    PRNGSetModulus
    and/or
    PRNGSetH0
    to reset any of the control pseudorandom generator parameters.
  4. Keep calling the function
    PRNGen
    or
    PRNGen_BN
    to generate pseudo random value of the desired format.
  5. Clean up secret data stored in the context.
  6. Free the memory allocated for the
    IppsPRNGState
    context by calling the operating system memory free service function.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804