The ARS4x32, ARS1xm128i, AESNI4x32 and AESNI1xm128i classes export the member functions, typedefs and operator overloads required by a CBRNG class.
ARS1xm128i and AESNI1xm128i are based on the AES block cipher and rely on the AES-NI hardware instructions available on some some new (2011) CPUs.
The ARS1xm128i CBRNG and the use of AES for random number generation are described in Parallel Random Numbers: As Easy as 1, 2, 3 . Although it uses some cryptographic primitives, ARS1xm128i uses a cryptographically weak key schedule and is not suitable for cryptographic use.
◆ aesni4x32
#define aesni4x32 |
( |
| c, |
|
|
| k ) |
Value:
#define aesni4x32_rounds
Definition aes.h:235
static aesni4x32_ctr_t aesni4x32_R(unsigned int Nrounds, aesni4x32_ctr_t c, aesni4x32_key_t k)
Definition aes.h:227
The aesni4x32 macro provides a C API to the AESNI CBRNG, uses the default number of rounds i.e. aesni4x32_rounds
◆ ars1xm128i
#define ars1xm128i |
( |
| c, |
|
|
| k ) |
Value:
static ars1xm128i_ctr_t ars1xm128i_R(unsigned int Nrounds, ars1xm128i_ctr_t in, ars1xm128i_key_t k)
Definition ars.h:57
@ ars1xm128i_rounds
Definition ars.h:45
The ars1mx128i macro provides a C API interface to the ARS CBRNG with the default number of rounds i.e. ars1xm128i_rounds
◆ ars4x32
Value:
static ars4x32_ctr_t ars4x32_R(unsigned int Nrounds, ars4x32_ctr_t c, ars4x32_key_t k)
Definition ars.h:125
@ ars4x32_rounds
Definition ars.h:121
The ars4x32 macro provides a C API interface to the ARS CBRNG with the default number of rounds i.e. ars4x32_rounds
◆ aesni1xm128i_ctr_t
◆ aesni1xm128i_ukey_t
◆ aesni4x32_ctr_t
◆ aesni4x32_key_t
◆ aesni4x32_ukey_t
◆ ars1xm128i_ctr_t
◆ ars1xm128i_key_t
◆ ars1xm128i_ukey_t
◆ ars4x32_ctr_t
◆ ars4x32_key_t
◆ ars4x32_ukey_t
◆ r123_enum_aesni1xm128i
Enumerator |
---|
aesni1xm128i_rounds | |
◆ r123_enum_aesni4x32
Enumerator |
---|
aesni4x32_rounds | |
◆ r123_enum_ars1xm128i
Enumerator |
---|
ars1xm128i_rounds | |
◆ r123_enum_ars4x32
◆ aesni1xm128i()
◆ aesni1xm128i_R()
◆ aesni4x32_R()
The aesni4x32_R function provides a C API to the AESNI CBRNG, allowing the number of rounds to be specified explicitly
◆ aesni4x32keyinit()
◆ ars1xm128i_R()
◆ ars1xm128ikeyinit()
◆ ars4x32_R()
◆ ars4x32keyinit()