一、HEAAN简单介绍
github网址:HEAAN
HEAAN是实现同态加密(HE)的软件库,支持定点算术。这个库支持有理数之间的近似运算。近似误差取决于某些参数,与浮点运算误差基本相同。
参考论文相关论文:CKKS 和 CHKKS
- v1.0 Implementation of Original HEAAN scheme
- V1.1 Implementation of Original HEAAN scheme with bootstrapping
(https://eprint.iacr.org/2018/153.pdf)- V2.1 Faster Implementation of HEAAN scheme
语言:C++ 和 NTL library (http://www.shoup.net/ntl/).
二、如何使用HEAAN
下载后如图:
- 构建一个静态库/运行测试函数
打开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
- 在你建立了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
编译,运行即可