Visible to Intel only — GUID: GUID-A3F3B88A-2FFF-43F8-8D8A-24278B38C6E7
Visible to Intel only — GUID: GUID-A3F3B88A-2FFF-43F8-8D8A-24278B38C6E7
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:
- Call the function DLPGetSize to get the size required to configure the IppsDLPState context.
- 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.
- Set domain parameters of the DL-based cryptosystem by calling the DLPSet function, or generate domain parameters by calling the DLPGenerateDSA or DLPGenerateDH.
- 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.
- Clean up secret data stored in the context.
- 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.
- DLPGetSize
Gets the size of the IppsDLPState context. - DLPInit
Initializes user-supplied memory as the IppsDLPState context for future use. - DLPPack, 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. - Example of Using Discrete-logarithm Based Primitive Functions
- 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 shared field element by using the Diffie-Hellman scheme. - DLGetResultString
For DL-based cryptosystems, returns the character string corresponding to code that represents the result of validation.
See Also
Did you find the information on this page useful?
Feedback Message
Characters remaining: