myl7/fss 2.0.0
Function secret sharing (FSS) primitives including distributed point/comparison function (DPF/DCF)
Loading...
Searching...
No Matches
fss::prg::Aes128Soft< mul > Class Template Reference

Software AES-128 with Matyas-Meyer-Oseas as a PRG. More...

Public Member Functions

 Aes128Soft (const uint8_t keys[][16], const uint32_t *te0, const uint8_t *sbox)
 Constructor.
cuda::std::array< int4, mul/2 > GenHalf (int4 seed, bool right)
 Return the selected half of Gen() with the same call requirements.

Detailed Description

template<int mul>
class fss::prg::Aes128Soft< mul >

Software AES-128 with Matyas-Meyer-Oseas as a PRG.

Works on both host and device side.

Template Parameters
mulSee Prgable mul.

Constructor & Destructor Documentation

◆ Aes128Soft()

template<int mul>
fss::prg::Aes128Soft< mul >::Aes128Soft ( const uint8_t keys[][16],
const uint32_t * te0,
const uint8_t * sbox )
inline

Constructor.

Parameters
keysmul 16-byte AES-128 keys.
te0Pointer to the 256-entry AES T-table (uint32_t[256]).
sboxPointer to the AES S-box (uint8_t[256]).

On device, both should point to shared memory initialized via InitTe0() and InitSbox(). On host, call InitTe0()/InitSbox() on stack arrays and pass them.

Member Function Documentation

◆ GenHalf()

template<int mul>
requires (mul > 0 && mul % 2 == 0)
cuda::std::array< int4, mul/2 > fss::prg::Aes128Soft< mul >::GenHalf ( int4 seed,
bool right )
inline

Return the selected half of Gen() with the same call requirements.

Parameters
seedSeed block to expand, the same input Gen() takes.
rightfalse selects the first half, true selects the second half.

The documentation for this class was generated from the following files: