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

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

#include <fss/prp.cuh>
#include <cuda_runtime.h>
#include <cassert>
#include <openssl/evp.h>
#include <openssl/aes.h>

Classes

class  fss::prp::Aes128Feistel
 Small-domain AES-128 Feistel PRP for Cuckoo hashing. More...
 

Detailed Description

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

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

Given a target domain [0, domain), the construction:

  1. Computes b = ceil(log2(domain)) and half = ceil(b / 2).
  2. Runs a 4-round balanced Feistel on (2 * half)-bit values, using AES-128 as the PRF for each round (with per-round key tweaking).
  3. Cycle-walks: if the Feistel output >= domain, re-applies the Feistel until it lands in [0, domain). Expected iterations < 4 because 2^(2*half) < 4 * domain.

Security: 4-round Luby-Rackoff gives CCA-secure PRP. Cycle-walking preserves the permutation property (Black & Rogaway, 2002).