同态加密库 HEAAN的使用说明

本文介绍了HEAAN,一个支持同态加密的软件库,特别适用于定点算术和有理数近似运算。提供了C++和NTL库的实现,详细描述了如何从源码构建静态库并运行测试程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、HEAAN简单介绍
github网址:HEAAN
HEAAN是实现同态加密(HE)的软件库,支持定点算术。这个库支持有理数之间的近似运算。近似误差取决于某些参数,与浮点运算误差基本相同。
参考论文相关论文:CKKSCHKKS

  1. v1.0 Implementation of Original HEAAN scheme
  2. V1.1 Implementation of Original HEAAN scheme with bootstrapping
    (https://eprint.iacr.org/2018/153.pdf)
  3. V2.1 Faster Implementation of HEAAN scheme

语言:C++ 和 NTL library (http://www.shoup.net/ntl/).

二、如何使用HEAAN
下载后如图:
在这里插入图片描述

  1. 构建一个静态库/运行测试函数
    打开lib文件夹
    在这里插入图片描述
    在这里插入图片描述
    看一下makefile文件:
# All Target
all: libHEAAN.a

# Tool invocations
libHEAAN.a: $(OBJS) $(USER_OBJS)
	@echo 'Building target: $@'
	@echo 'Invoking: GCC Archiver'
	ar -r  "libHEAAN.a" $(OBJS) $(USER_OBJS) $(LIBS)
	@echo 'Finished building target: $@'
	@echo ' '

# Other Targets
clean:
	-$(RM) $(CC_DEPS)$(C++_DEPS)$(ARCHIVES)$(C_UPPER_DEPS)$(CXX_DEPS)$(OBJS)$(CPP_DEPS)$(C_DEPS) libHEAAN.a
	-@echo ' '

.PHONY: all clean dependents

-include ../makefile.targets

通过在/lib目录中,make all来创建一个静态库。成功编译后,
可以在/lib目录下找到一个静态库libHEAAN.a

在这里插入图片描述

  1. 在你建立了libHEAAN.a之后,可以在/run目录下运行一个测试程序。

在这里插入图片描述
看一下makefile

# This sample should be run after make libHEAAN.a file in lib folder

# All Target
all: clean TestHEAAN

# Tool invocations
TestHEAAN:
	@echo 'Building target: $@'
	@echo 'Invoking: GCC C++ Linker'
	g++ test.cpp -o TestHEAAN -L/usr/local/lib ../lib/libHEAAN.a -lntl -lgmp -lm -std=c++11 -O2 -I/../src -pthread
	@echo 'Finished building target: $@'
	@echo ' '

# Other Targets
clean:
	rm -rf TestHEAAN

大致就是编译test.cpp 生成TestHEAAN,我们make编译,生成:
在这里插入图片描述
这样就可以运行./TestHEAAN+功能,测试HEAAN的功能,举个例子:
在这里插入图片描述
3.

运行给的example.cpp(注意修改头文件),可以放在run文件夹,然后修改一下makefile, 然后make编译,运行即可

### HEAAN 安装教程 #### 准备工作 为了成功安装HEAAN,需先确认环境配置满足最低需求。通常情况下,建议在Linux环境下进行操作,因为大多数加密和依赖项都更易于在此类环境中管理和部署。 #### 下载源码包 访问官方GitHub仓获取最新版的HEAAN源代码[^1]: ```bash git clone https://github.com/snucrypto/HEAAN.git cd HEAAN ``` #### 编译前准备 确保已安装必要的编译工具链和支持软件包。对于Ubuntu系统而言,可以执行以下命令来完成前置条件设置: ```bash sudo apt-get update && sudo apt-get install -y build-essential cmake g++ libgmp-dev libntl-dev nvidia-cuda-toolkit python3-pip pip3 install --upgrade pip setuptools wheel ``` 上述指令不仅涵盖了基础构建组件,还包含了GMP、NTL数学以及NVIDIA CUDA开发套件等特定于HEAAN运行所需的资源[^2]。 #### 构建与测试 利用CMake简化项目结构并启动实际编译过程: ```bash mkdir build && cd build cmake .. make all test ``` 此阶段会依据本地硬件特性优化生成可执行文件,并验证功能正确性通过一系列预设单元测试案例[^3]。 #### 验证安装成果 一旦顺利完成以上各环节,则表明HEAAN已被妥善安置就绪。此时可通过简单的演示程序检验整个流程无误: ```cpp #include <iostream> #include "heaan.h" int main() { Context context; SEALContext seal_context; std::cout << "If you see this message, it means the installation was successful." << std::endl; } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值