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

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

#include <fss/prg.cuh>
#include <cuda_runtime.h>
#include <cuda/std/array>
#include <fss/util.cuh>

Go to the source code of this file.

Classes

class  fss::prg::Aes128Soft< mul >
 Software AES-128 with Matyas-Meyer-Oseas as a PRG. More...
 

Functions

uint8_t fss::prg::aes_detail::Sbox (uint8_t idx)
 
uint8_t fss::prg::aes_detail::Rcon (int idx)
 
uint32_t fss::prg::aes_detail::ComputeTe0 (uint8_t idx)
 
void fss::prg::aes_detail::InitTe0 (uint32_t *dst)
 
void fss::prg::aes_detail::InitSbox (uint8_t *dst)
 
uint32_t fss::prg::aes_detail::RotWord8 (uint32_t x)
 
uint32_t fss::prg::aes_detail::RotWord16 (uint32_t x)
 
uint32_t fss::prg::aes_detail::RotWord24 (uint32_t x)
 
void fss::prg::aes_detail::KeyExpansion (uint8_t *round_key, const uint8_t *key, const uint8_t *sbox)
 
uint32_t fss::prg::aes_detail::LoadBE32 (const uint8_t *p)
 
void fss::prg::aes_detail::StoreBE32 (uint8_t *p, uint32_t v)
 
void fss::prg::aes_detail::Encrypt (uint8_t *buf, const uint8_t *round_key, const uint32_t *te0, const uint8_t *sbox)
 

Variables

constexpr int fss::prg::aes_detail::kNb = 4
 
constexpr int fss::prg::aes_detail::kNk = 4
 
constexpr int fss::prg::aes_detail::kNr = 10
 
constexpr int fss::prg::aes_detail::kRoundKeySize = kNb * (kNr + 1) * 4
 

Detailed Description

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

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

Works on both host and device. The AES core is based on tiny-AES-c by kokke et al. (public domain).

References

  1. Neha Jawalkar, Kanav Gupta, Arkaprava Basu, Nishanth Chandran, Divya Gupta, Rahul Sharma: Orca: FSS-based Secure Training and Inference with GPUs. SP 2024: 597-616. https://doi.org/10.1109/SP54263.2024.00063.