Discrete-Logarithm-Based Cryptography Functions

This section introduces Intel® Integrated Performance Primitives (Intel® IPP) 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].

The full list of Intel IPP DL-based cryptography functions is given in Table “Intel IPP Discrete-Logarithm-Based Cryptography Functions”.

Intel IPP Discrete-Logarithm-Based Cryptography Functions
Function Base Name Operation
DLPGetSize Gets the size of the IppsDLPState context.
DLPInit Initializes user-supplied memory as the IppsDLPState context for future use.
DLPack, DLPUnpack Packs/unpacks the IppsDLPState context into/from a user-defined buffer.
DLPSet Sets up domain parameters of the DL-based cryptosystem over GF(p).
DLPGet Retrieves domain parameters of the DL-based cryptosystem over GF(p).
DLPSetDP Sets up a particular domain parameter of the DL-based cryptosystem over GF(p).
DLPGetDP Retrieves a particular domain parameter of the DL-based cryptosystem over GF(p).
DLPGenKeyPair Generates a private key and computes public keys of the DL-based cryptosystem over GF(p).
DLPPublicKey Computes a public key from the given private key of the DL-based cryptosystem over GF(p).
DLPValidateKeyPair Validates private and public keys of the DL-based cryptosystem over GF(p).
DLPSetKeyPair Sets private and/or public keys of the DL-based cryptosystem over GF(p).
DLPGenerateDSA Generates domain parameters of the DL-based cryptosystem over GF(p) to use DSA.
DLPValidateDSA Validates domain parameters of the DL-based cryptosystem over GF(p) to use DSA.
DLPSignDSA Performs the DSA digital signature signing operation.
DLPVerifyDSA Verifies the input DSA digital signature.
DLPGenerateDH Generates domain parameters of the DL-based cryptosystem over GF(p) to use the DH Agreement scheme.
DLPValidateDH Validates domain parameters of the DL-based cryptosystem over GF(p) to use the DH Agreement scheme.
DLPSharedSecretDH Computes a shares secret field element by using the Diffie-Hellman scheme.

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. 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.


Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.