Skip to content

Latest commit

 

History

History
59 lines (39 loc) · 3.02 KB

README.md

File metadata and controls

59 lines (39 loc) · 3.02 KB

ALOHA

ALOHA: Accelerating Leveled Fully Homomorphic Encryption with Cryptography-Specific Architectures

The ALOHA project is initiated by Alibaba Group and Ant Group's AntChain.

Homomorphic encryption (HE) is a cryptographic technique that allows computations to be performed directly on ciphertext without decryption, which is ideal in privacy-sensitive scenarios, such as cross-organizational collaboration, secure neural network inference (SNNI), and database services. We design RISC-V compatible instructions for accelerating computations on encrypted data, which feature scalable vectorized capability. This project provides several features including,

  • Programmable: ALOHA supports the R type customized HE RISC-V ISA extension;
  • Adaptable: ALOHA can be used as a RISC-V loosely-coupled coprocessor by decoding the opcode field, or an HE accelerator mounted on the AXI bus;
  • Better performance: ALOHA utilize the SIMD-style processing and explore dedicated design datapath optimizations for HE operators like NTT and Automorphism.
  • Configurable: The source code supports several micro-architectural parameters on # lane, etc. Users can configure the /src/vp/include/vp_defines.vh to balance performance and area.

The code in this repository is released by Alibaba DAMO Academy CTL under the MIT License. This distribution is an open-source version of our commercial accelerator and is not ready for production use.

Table of contents

Directory structure

The directory structure is as follows:

  • sim: simulation files
  • src: RTL source files
  • tv: test vectors
  • vivado_prj: xilinx vivado simulation project

Build guide

  1. Download and install Vivado IDE following the official website.

  2. Please git clone this code repository and open the Vivado project under /vivado_prj

  3. /sim/top/top_noaxilite_tb.sv is the top testbench file with the complete simulation flow, which includes the following tasks:

    • Parsing environment variable parameters
    • Initialization, which includes the following operations:
      • Reading data loaded into DRAM
      • Parsing instruction sequences
      • Initializing AXI VIP
      • Resetting the system.
    • Execution
    • Data Dump
  4. Check the output data with the golden output.

License

MIT License

Please adhere to the Xilinx license requirements, such as the Vivado IDE. This product also contains several third-party components under other open-source licenses.

src/axi/axi_read_master.sv          BSD-2-Clause        Vitis-Tutorials
src/axi/axi_write_master.sv         BSD-2-Clause        Vitis-Tutorials
src/axi/counter.sv                  BSD-2-Clause        Vitis-Tutorials