Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LEA block-cipher mode experiments

Reference and CUDA research implementations of CBC and Galois/Counter Mode (GCM) using the Korean LEA block cipher.

Included implementations

  • gcm/reference/lea_gcm.cpp — portable C++ reference implementation and small demonstration driver
  • gcm/cuda/parallel_lea_gcm.cu — CUDA prototype comparing reference, 4-bit table, 8-bit table, and parallel GHASH paths
  • cbc/src — C++ implementation of LEA-128-CBC and vector-file driver
  • cbc/vectors — KAT, MCT, and MMT input vectors used by the CBC experiment

The CUDA source and CBC implementation were originally developed in the separate GPU_Parallel_GCM and LEA_cbc repositories. Both Git histories are preserved here.

Build

Build the reference program with a C++17 compiler:

make gcm-reference
./build/lea_gcm_reference

Build and run the CBC vector driver:

make cbc
./build/lea_cbc kat

The driver accepts kat, mct, or mmt. Generated binary outputs are written under build/ and are not tracked.

Build the CUDA experiment with an NVIDIA CUDA Toolkit installation:

make gcm-cuda CUDA_ARCH=sm_86
./build/lea_gcm_cuda

Override CXX, NVCC, or CUDA_ARCH as needed. The CUDA experiment uses compile-time workload constants in its source; review them before running on a memory-constrained GPU.

Status

This is educational and research code. The reference program prints comparison values but is not a maintained conformance test suite. The implementations have not been audited for production cryptographic use.

About

C++ and CUDA experiments for LEA-CBC, LEA-GCM, table-based GHASH, and parallel authenticated encryption

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages