C4eDlcDomain Struct Reference
[Discrete Logarithm Cryptography (DLC)]

Discrete logarithm (DL) domain parameters (public). More...

#include <c4e_dlc.h>

Data Fields

C4eElemOsp m
C4eElemOsp q
C4eElement g

Detailed Description

Discrete logarithm (DL) domain parameters (public).

Bibliography:

Polk, W., Housley, R. and L. Bassham: Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. RFC 3279, IETF, April 2002.

Standard Specifications For Public-Key Cryptography. Std 1363-2000, IEEE, 2000.

Digitale Signature Standard. FIPS Publication 186, National Institute of Standards and Technology, 1994.

See also:
C4eElement, C4E_ELEM_ASGN_MEM()

Definition at line 78 of file c4e_dlc.h.


Field Documentation

The modulus p of prime field $ \mathbb{F}_p $.

Member m.val is the big number representation of modulus p. m.len is the maximum size of a field element in prime field $ \mathbb{F}_p $, in bytes (for example 128U for a 1024 bit modulus). Using some mathematics this means for finite field $ \mathbb{F}_p $ that member m.len can be calculated by: $ \left \lceil{\log_{256} p}\right \rceil $.

Note:
In $ \mathbb{F}_p $) all calculations are modulo the prime number p (C4eDlcDomain::m). So the size of a field element is always less/equal than p. Therefore m.len also specifies the nominal size of p.
Attention:
Member m.val often is modified (temporary) when using functions, which deal with modular reduction or division of big numbers. Therefore it must be writable and mutual exclusive accessible in most situations.
See also:
C4E_DLC_GF_BYTES_MAX

Definition at line 104 of file c4e_dlc.h.

A prime divisor of $ p-1 $, with $ p-1 $ the order of multiplicative subgroup $ \mathbb{F}_p^{*} $. It's length q.len should be at least (see FIPS 186-4, section 4.2 for compliant values):

q.len also determines the length of a DSA signature, which is: 2U * q.len.

Attention:
Member q.val sometimes is modified (temporary) when using functions, which deal with modular reduction or division by big numbers. Therefore it must be writable and mutual exclusive accessible in most situations.

Definition at line 126 of file c4e_dlc.h.

An element of $ \mathbb{F}_p $ (with $ 1 < g < p $), forming a multiplicative subgroup $ \mathbb{F}^{*}_{q} $.

Note:
This element is only used by functions c4e_dlc_dsa_sign() and c4e_dlc_dsa_verify(). If DSA is not used then you are allowed to set it invalid, using macro C4E_ELEM_SET_ZERO(). There is no need to assign memory to q.digits in this case.

Definition at line 138 of file c4e_dlc.h.


The documentation for this struct was generated from the following file: