Developer Reference

Contents

Discrete-Logarithm-Based Cryptography Functions

This section introduces Intel® Integrated Performance Primitives (Intel® IPP) Cryptography functions allowing for different operations with Discrete Logarithm (DL) based cryptosystem over a prime finite field GF(
p
). The functions are mainly based on the [IEEE P1363A] standard. Implementation of the Digital Signature operations is based on [FIPS PUB 186-2]. The Diffie-Hellman (DH) Agreement scheme is based on [X9.42].
All functions described in this section employ the
IppsDLPState
context as operational vehicle that carries domain parameters of the DL cryptosystem, a pair of keys, and working buffers.
The application code intended for executing typical operations should perform the following sequence of operations:
  1. Call the function
    DLPGetSize
    to get the size required to configure the
    IppsDLPState
    context.
  2. Ensure that the required memory space is properly allocated. With the allocated memory, call the
    DLPInit
    function to initialize the context of the DL-based cryptosystem.
  3. Set domain parameters of the DL-based cryptosystem by calling the
    DLPSet
    function, or generate domain parameters by calling the
    DLPGenerateDSA
    or
    DLPGenerateDH
    .
  4. Call one of the functions
    DLPSignDSA
    ,
    DLPVerifyDSA
    , and
    DLPSharedSecretDH
    to compute digital signature, to verify authenticity of the digital signature, and to compute the shared element accordingly.
  5. Clean up secret data stored in the context.
  6. Free the memory allocated for the
    IppsDLPState
    context by calling the operating system memory free service function unless the context is no longer needed.
The
IppsDLPState
context is position-dependent. The
DLPPack/DLPUnpack
functions transform the position-dependent context to a position-independent form and vice versa.

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