同态加密库 HEAAN的使用说明

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

  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
下载后如图:
同态加密库 HEAAN的使用说明_第1张图片

  1. 构建一个静态库/运行测试函数
    打开lib文件夹
    同态加密库 HEAAN的使用说明_第2张图片
    同态加密库 HEAAN的使用说明_第3张图片
    看一下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

同态加密库 HEAAN的使用说明_第4张图片

  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的功能,举个例子:
同态加密库 HEAAN的使用说明_第5张图片
3.

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

你可能感兴趣的:(机器学习中的隐私保护)