Learning
Doing is better than saying, So the world wags

SEAL库是微软开源的一个简单算术加密库(Simple Encrypted Arithmetic Library),可以直接在加密数据上执行计算,且其效率是非常高的。
这次简单说明下win或linux下怎么编译使用SEAL库。
项目地址:Github-SEAL
官网:Microsoft Search-SEAL

下载

Git克隆仓库git clone https://github.com/microsoft/SEAL.git
从目录和说明文档中我们可以知道,dotnet为.NET框架的C#程序版本,native为本地的C++程序版本

Windows

在Win平台,官方推荐我们使用Microsoft Visual Studio 2019,且编译模式建议选择Release,并开启多处理器编译/MP

编译

首先打开项目文件夹下的SEAL.sln进入Visual Studio 2019编辑,初次打开可能会报错误,按说明情况处理即可。
右侧项目文件夹选择native右键 – 属性 – 配置属性 – 常规中,设置Windows SDK版本为你所有的版本,默认是16299,而你本机自带的可能是17763。
在C/C++ – 常规中设置多处理器编译以提高速度
注意使用Release X64
Tips:编译需要Visual Studio Installer中的CMake包和Viusal C+ Plus工具
编译成功后,在项目文件夹的native/lib/x64/Release中你能找到最后生成的seal.lib库文件

使用

使用Visual Studio 2019新建一个空项目
右侧方案管理器项目右键添加-新建项-c++文件,命名为example.cpp
然后项目右键-属性进入详细配置
确保配置为所有平台配置
在C/C++ – 常规 – 附加包含目录中将native/src文件夹包含进来
链接器 – 常规中设置附加库目录(绝对路径)\\native\\lib\\$(Platform)\\$(Configuration)
链接器 – 输入中添加seal.lib;
最后确定
在example.cpp文件中写代码

#include <iostream>
#include "seal/seal.h"

using namespace std;
using namespace seal;

int main()
{
	EncryptionParameters parms(scheme_type::BFV);
	return 0;
}

这是使用BFV方案的最简SEAL库方案代码,确保你是在Release,X64下构建,开始生成
最终编译成功,因为没有输出,所以会立即退出没有显示

Linux

官方已有编译示例,这里不再赘述。
直接进入使用
我们在项目文件夹下新建项目mkdir SEALDemo
进入目录cd SEALDemo,并新建一个cpp文件 nano example.cpp
内容和上面在win平台写的一样,确认无误后保存
然后,最重要的是创建我们的CMakeLists.txt文件

cmake_minimum_required(VERSION 3.10)
project(SEALDemo VERSION 1.0)
add_executable(example example.cpp)

find_package(SEAL)
target_link_libraries(example SEAL::seal)

确认保存后在Shell中输入cmake .,再输入make
输入./example 显然这没有输出,但已成功运行
至此,两个平台SEAL库的编译与使用已全部完成!
如有错误欢迎指正!另外,微软也在YTB上提供了官方教学视频,通过上面的官网链接可前去查看。

发表评论