MCKL
Monte Carlo Kernel Library
Classes | Typedefs

Random number generating using AES round function. More...

Classes

class  mckl::AESGenerator< KeySeqType >
 RNG generator using AES round functions. More...
 
class  mckl::ARSConstants
 Default ARS constants. More...
 

Typedefs

using mckl::AES128 = AES128Engine< std::uint32_t >
 AES-128 RNG engine with 32-bit integers output. More...
 
using mckl::AES128_64 = AES128Engine< std::uint64_t >
 AES-128 RNG engine with 64-bit integers output. More...
 
template<typename ResultType , std::size_t Rounds = 10>
using mckl::AES128Engine = AESEngine< ResultType, AES128KeySeq< Rounds > >
 AES-128 RNG engine. More...
 
template<std::size_t Rounds = 10>
using mckl::AES128KeySeq = internal::AESKeySeqImpl< Rounds, internal::AES128KeySeqGenerator >
 AES128Engine key sequence generator. More...
 
using mckl::AES192 = AES192Engine< std::uint32_t >
 AES-192 RNG engine with 32-bit integers output. More...
 
using mckl::AES192_64 = AES192Engine< std::uint64_t >
 AES-192 RNG engine with 64-bit integers output. More...
 
template<typename ResultType , std::size_t Rounds = 12>
using mckl::AES192Engine = AESEngine< ResultType, AES192KeySeq< Rounds > >
 AES-192 RNG engine. More...
 
template<std::size_t Rounds = 12>
using mckl::AES192KeySeq = internal::AESKeySeqImpl< Rounds, internal::AES192KeySeqGenerator >
 AES192Engine key sequence generator. More...
 
using mckl::AES256 = AES256Engine< std::uint32_t >
 AES-256 RNG engine with 32-bit integers output. More...
 
using mckl::AES256_64 = AES256Engine< std::uint64_t >
 AES-256 RNG engine with 64-bit integers output. More...
 
template<typename ResultType , std::size_t Rounds = 14>
using mckl::AES256Engine = AESEngine< ResultType, AES256KeySeq< Rounds > >
 AES-256 RNG engine. More...
 
template<std::size_t Rounds = 14>
using mckl::AES256KeySeq = internal::AESKeySeqImpl< Rounds, internal::AES256KeySeqGenerator >
 AES256Engine key sequence generator. More...
 
template<typename ResultType , typename KeySeqType >
using mckl::AESEngine = CounterEngine< ResultType, AESGenerator< KeySeqType > >
 RNG engine using AES round function. More...
 
using mckl::ARS = ARSEngine< std::uint32_t >
 ARS RNG engine with 32-bit integers output. More...
 
using mckl::ARS_64 = ARSEngine< std::uint64_t >
 ARS RNG engine with 64-bit integers output. More...
 
template<typename ResultType , std::size_t Rounds = 5, typename Constants = ARSConstants>
using mckl::ARSEngine = AESEngine< ResultType, ARSKeySeq< Rounds, Constants > >
 ARS RNG engine. More...
 
template<std::size_t Rounds = 5, typename Constants = ARSConstants>
using mckl::ARSKeySeq = internal::ARSKeySeqImpl< Rounds, internal::ARSKeySeqGenerator< Constants > >
 Default ARSEngine key sequence generator. More...
 

Detailed Description

Random number generating using AES round function.

Typedef Documentation

◆ AES128

AES-128 RNG engine with 32-bit integers output.

Definition at line 244 of file aes.hpp.

◆ AES128_64

AES-128 RNG engine with 64-bit integers output.

Definition at line 260 of file aes.hpp.

◆ AES128Engine

template<typename ResultType , std::size_t Rounds = 10>
using mckl::AES128Engine = typedef AESEngine<ResultType, AES128KeySeq<Rounds> >

AES-128 RNG engine.

Definition at line 224 of file aes.hpp.

◆ AES128KeySeq

template<std::size_t Rounds = 10>
using mckl::AES128KeySeq = typedef internal::AESKeySeqImpl<Rounds, internal::AES128KeySeqGenerator>

AES128Engine key sequence generator.

Definition at line 109 of file aes.hpp.

◆ AES192

AES-192 RNG engine with 32-bit integers output.

Definition at line 248 of file aes.hpp.

◆ AES192_64

AES-192 RNG engine with 64-bit integers output.

Definition at line 264 of file aes.hpp.

◆ AES192Engine

template<typename ResultType , std::size_t Rounds = 12>
using mckl::AES192Engine = typedef AESEngine<ResultType, AES192KeySeq<Rounds> >

AES-192 RNG engine.

Definition at line 229 of file aes.hpp.

◆ AES192KeySeq

template<std::size_t Rounds = 12>
using mckl::AES192KeySeq = typedef internal::AESKeySeqImpl<Rounds, internal::AES192KeySeqGenerator>

AES192Engine key sequence generator.

Definition at line 115 of file aes.hpp.

◆ AES256

AES-256 RNG engine with 32-bit integers output.

Definition at line 252 of file aes.hpp.

◆ AES256_64

AES-256 RNG engine with 64-bit integers output.

Definition at line 268 of file aes.hpp.

◆ AES256Engine

template<typename ResultType , std::size_t Rounds = 14>
using mckl::AES256Engine = typedef AESEngine<ResultType, AES256KeySeq<Rounds> >

AES-256 RNG engine.

Definition at line 234 of file aes.hpp.

◆ AES256KeySeq

template<std::size_t Rounds = 14>
using mckl::AES256KeySeq = typedef internal::AESKeySeqImpl<Rounds, internal::AES256KeySeqGenerator>

AES256Engine key sequence generator.

Definition at line 121 of file aes.hpp.

◆ AESEngine

template<typename ResultType , typename KeySeqType >
using mckl::AESEngine = typedef CounterEngine<ResultType, AESGenerator<KeySeqType> >

RNG engine using AES round function.

Definition at line 219 of file aes.hpp.

◆ ARS

using mckl::ARS = typedef ARSEngine<std::uint32_t>

ARS RNG engine with 32-bit integers output.

Definition at line 256 of file aes.hpp.

◆ ARS_64

ARS RNG engine with 64-bit integers output.

Definition at line 272 of file aes.hpp.

◆ ARSEngine

template<typename ResultType , std::size_t Rounds = 5, typename Constants = ARSConstants>
using mckl::ARSEngine = typedef AESEngine<ResultType, ARSKeySeq<Rounds, Constants> >

ARS RNG engine.

Definition at line 240 of file aes.hpp.

◆ ARSKeySeq

template<std::size_t Rounds = 5, typename Constants = ARSConstants>
using mckl::ARSKeySeq = typedef internal::ARSKeySeqImpl<Rounds, internal::ARSKeySeqGenerator<Constants> >

Default ARSEngine key sequence generator.

Template Parameters
RoundsThe number of rounds
ConstantsA trait class that defines algorithm constants

Definition at line 131 of file aes.hpp.