Skip to content

About

Walsh LUT evaluation on lazy CKKS bits for low-latency AES-CTR transciphering

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Walsh LUT Evaluation on Lazy Bits for CKKS AES Transciphering

This is the implementation repository for the paper "Walsh LUT Evaluation on Lazy Bits for CKKS AES Transciphering", which will appear at the 29th International Conference on Information Security (ISC 2026). The benchmark driver covers AESWalsh15 and the full and sparse AESXBoot15 and secure AESXBoot14 baselines in Tables 1 and 2 of the paper.

Warning

This repository contains research code that is not production-ready. It should not be used in production systems or to protect sensitive data.

How to cite this work

@inproceedings{shokri2026walsh,
  title        = {Walsh LUT Evaluation on Lazy Bits for CKKS AES Transciphering},
  author       = {Shokri, Rostin and Tsoutsos, Nektarios Georgios},
  booktitle    = {International Conference on Information Security},
  year         = {2026},
  organization = {Springer}
}

Requirements

  • A C++20 compiler
  • CMake 3.18 or newer
  • OpenMP
  • GMP and MPFR development libraries
  • 64 GB RAM

On Ubuntu, the required packages can be installed with:

sudo apt install build-essential cmake libgmp-dev libmpfr-dev

The paper measurements used Ubuntu, an AMD Ryzen Threadripper 7970X with 32 physical cores and 64 hardware threads, 160 GB of RAM, and 64 OpenMP threads.

Build

From the repository root:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j 8

The resulting executable is build/bench/aes_bench.

Run the paper experiments

Run each main Table 2 configuration independently:

OMP_NUM_THREADS=64 ./build/bench/aes_bench walsh15
OMP_NUM_THREADS=64 ./build/bench/aes_bench xboot15-full
OMP_NUM_THREADS=64 ./build/bench/aes_bench xboot15-sparse-1024
OMP_NUM_THREADS=64 ./build/bench/aes_bench xboot14-full
OMP_NUM_THREADS=64 ./build/bench/aes_bench xboot14-sparse-1024

Run all five rows and print one combined table:

OMP_NUM_THREADS=64 ./build/bench/aes_bench table2

The exact public XBOOT Param-AES-13 configuration used for the appendix cross-check is also available. It reproduces the in-house C++ row of the appendix table and is separate from the secure AESXBoot14 configuration used in the main comparison.

OMP_NUM_THREADS=64 ./build/bench/aes_bench xboot13-reference-full

Each command generates a CKKS context and evaluation keys, encrypts the AES round key, times the homomorphic AES-CTR evaluation, decrypts every output bit, and prints a RESULT line containing latency, maximum error, average error, decoded mismatches, and rotation-key count. Context generation and round-key encryption are intentionally outside the reported evaluation time, matching the paper methodology.

Acknowledgments

This work was supported by the National Science Foundation (Award #2239334).

Trustworthy Computing Group
Trustworthy Computing Group

About

Walsh LUT evaluation on lazy CKKS bits for low-latency AES-CTR transciphering

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages