Visible to Intel only — GUID: GUID-D2C622E3-6E7D-4523-8386-B31BF409C663
Visible to Intel only — GUID: GUID-D2C622E3-6E7D-4523-8386-B31BF409C663
Discrete-Logarithm-Based Cryptography Functions
This section introduces Intel® Cryptography Primitives Library 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.
Related Information
- DLPGetSize
- DLPInit
- DLPPack, DLPUnpack
- DLPSet
- DLPGet
- DLPSetDP
- DLPGetDP
- DLPGenKeyPair
- DLPPublicKey
- DLPValidateKeyPair
- DLPSetKeyPair
- DLPGenerateDSA
- DLPValidateDSA
- DLPSignDSA
- DLPVerifyDSA
- Example of Using Discrete-logarithm Based Primitive Functions
- DLPGenerateDH
- DLPValidateDH
- DLPSharedSecretDH
- DLGetResultString