myl7/fss 2.0.0
Function secret sharing (FSS) primitives including distributed point/comparison function (DPF/DCF)
Loading...
Searching...
No Matches
aes128_feistel_raw.cuh File Reference

Small-domain PRP via 4-round Feistel network with AES-128 round function and cycle-walking, computed with AES-NI intrinsics. More...

#include <fss/prp.cuh>
#include <cuda_runtime.h>
#include <cstdint>
#include <cassert>
#include <fss/util.cuh>
#include <wmmintrin.h>
#include <emmintrin.h>
#include <smmintrin.h>

Classes

class  fss::prp::Aes128FeistelRaw
 Small-domain AES-128 Feistel PRP for Cuckoo hashing, computed with AES-NI intrinsics. More...

Functions

void fss::prp::fss_host_only_Aes128FeistelRaw_used_in_device_code ()
 Declared and never defined.

Detailed Description

Small-domain PRP via 4-round Feistel network with AES-128 round function and cycle-walking, computed with AES-NI intrinsics.

Author
Yulong Ming i@myl.nosp@m.7.or.nosp@m.g

Bit-exact with Aes128Feistel: same construction (4-round Feistel, per-round key seed ^ round, cycle-walking), same AES-128 block cipher, but every AES block operation runs as ten aesenc intrinsics instead of an OpenSSL EVP call. The four per-round key schedules are expanded once per seed and cached in the instance, so a mapping build with a fixed sigma expands them a single time. The Permu seed parameter keeps its concept signature; passing a different seed than the cached one re-expands the schedules, so every call uses the seed it was given.

Only for host side (x86-64 with AES-NI). Instances are trivially copyable; the cache makes concurrent Permu calls with differing seeds on one instance a data race, like Aes128Feistel's shared OpenSSL context. Device use of Permu() fails to build with an unresolved-extern error naming fss_host_only_Aes128FeistelRaw_used_in_device_code.

Function Documentation

◆ fss_host_only_Aes128FeistelRaw_used_in_device_code()

void fss::prp::fss_host_only_Aes128FeistelRaw_used_in_device_code ( )

Declared and never defined.

Device code that reaches it fails to link with an unresolved-extern error that names this symbol.