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.
|
|
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) |
| |
|
|
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 |
| |
Software AES-128 with Matyas-Meyer-Oseas as a PRG.
- Copyright
- Apache License, Version 2.0. Copyright (C) 2026 Yulong Ming i@myl.nosp@m.7.or.nosp@m.g.
- 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
- 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.