Classes | |
class | r123::Threefry2x32_R< R > |
class | r123::Threefry2x64_R< R > |
class | r123::Threefry4x32_R< R > |
class | r123::Threefry4x64_R< R > |
Typedefs | |
typedef Threefry2x32_R < threefry2x32_rounds > | r123::Threefry2x32 |
typedef Threefry2x64_R < threefry2x64_rounds > | r123::Threefry2x64 |
typedef Threefry4x32_R < threefry4x32_rounds > | r123::Threefry4x32 |
typedef Threefry4x64_R < threefry4x64_rounds > | r123::Threefry4x64 |
Enumerations | |
enum | r123_enum_threefry2x64 { threefry2x64_rounds = 20 } |
enum | r123_enum_threefry2x32 { threefry2x32_rounds = 20 } |
enum | r123_enum_threefry4x64 { threefry4x64_rounds = 20 } |
enum | r123_enum_threefry4x32 { threefry4x32_rounds = 20 } |
The ThreefryNxW classes export the member functions, typedefs and operator overloads required by a CBRNG class.
As described in Parallel Random Numbers: As Easy as 1, 2, 3 , the Threefry family is closely related to the Threefish block cipher from Skein Hash Function. Threefry is not suitable for cryptographic use.
Threefry uses integer addition, bitwise rotation, xor and permutation of words to randomize its output.
Threefry2x32 is equivalent to Threefry2x32_R<20>. With 20 rounds, Threefry2x32 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance.
Threefry2x64 is equivalent to Threefry2x64_R<20>. With 20 rounds, Threefry2x64 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance.
Threefry4x32 is equivalent to Threefry4x32_R<20>. With 20 rounds, Threefry4x32 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance.
Threefry4x64 is equivalent to Threefry4x64_R<20>. With 20 rounds, Threefry4x64 has a considerable safety margin over the minimum number of rounds with no known statistical flaws, but still has excellent performance.