Skip to content
/ lattice Public

GPU-accelerated lattice cryptography library (C++)

License

Notifications You must be signed in to change notification settings

luxcpp/lattice

Repository files navigation

lux-lattice

GPU-accelerated lattice cryptography library for the Lux Network.

Features

  • NTT - Number Theoretic Transform with Metal/CUDA acceleration
  • Polynomial Ring - Ring operations over cyclotomic polynomials
  • Gaussian Sampling - Discrete Gaussian sampling for lattice schemes
  • Multi-party - Threshold cryptography with Shamir secret sharing

Dependencies

  • lux-gpu - GPU acceleration foundation

Installation

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build --prefix /usr/local

Usage

CMake

find_package(lux-lattice REQUIRED)
target_link_libraries(myapp PRIVATE lux::lattice)

pkg-config (for CGO)

export CGO_CFLAGS=$(pkg-config --cflags lux-lattice)
export CGO_LDFLAGS=$(pkg-config --libs lux-lattice)

Go Bindings

See github.com/luxfi/lattice for Go bindings.

Documentation

License

BSD-3-Clause - See LICENSE