全同态加密-SEAL安装、环境配置与测试

全同态加密-SEAL安装、环境配置与测试

2020.3. WHU - W.F.
由于本人不再从事相关研究,请大家注意时效性
2023.4.30

〇、序言

相比于其他全同态加密开源库,SEAL库安装简便,契合Windows操作系统,容易上手。但SEAL库需要对全同态加密算法有较好的理解,不同水平的人编写的程序,性能差异可能在万倍以上。
但总的来说,背靠微软这座大山,SEAL库是目前最被看好的开源库,学习资源相对丰富,值得入手。

一、SEAL库简介

  • SEAL是由微软研发的全同态加密函数库,用现代标准C++编写,库中包含基本示例,基于BFV与CKKS方案
  • SEAL基于C++实现,不需要其他依赖库,但一些可选功能需要微软GSL、ZLIB和Google Test等第三方库的支持。
  • SEAL支持Windows、Linux、macOS、FreeBSD、Android等操作系统平台,同时支持.NET开发。SEAL依靠微软的天生优势能够在Windows系统中进行部署。
  • 在噪声管理方面,与HElib支持自动噪声管理不同,在SEAL中每个密文拥有一个特定的噪声预算量,需要在程序编写过程中通过重线性化操作自行控制乘法运算产生的噪声。基于SEAL实现同态加密运算的性能在很大程度上取决于程序编写的优劣,且存在着不同的优化方法。
  • 总体而言,SEAL的学习和使用难度较大,但优化后的性能较好。

微软团队开发了一款名为EVA的编译器,它允许用python表达加密运算,并提供了便捷的python API执行加密输入、执行计算和解密结果(但EVA仅支持CKKS方案)

陈智罡博士的团队开发了一个将SEAL全同态映射到Python上的接口:pyseal,同样支持CKKS方案,可访问简介进行了解。

二、SEAL安装与配置

本文使用Windows10 家庭版,基于Visual studio2019进行安装和配置(要求VS版本>2017)。
魔法上网条件的可访问:
https://www.youtube.com/watch?v=oZQ_c89HFU0

更新:感谢UP搬运,现在无须魔法上网
https://www.bilibili.com/video/BV1Uf4y1Y72h?from=search&seid=731172981606255839
遵照视频完成配置,视频对应的版本为SEAL-3.3.0,请确认教程与版本号,并在GitHub中选择对应的分支

不能使用git命令的,建议从SEAL主页:
https://www.microsoft.com/en-us/research/project/microsoft-seal/
或者GitHub地址:
https://github.com/Microsoft/SEAL
直接下载源码

有视频帮助,不再赘述安装配置流程,但随着版本更新,可能会有些不同,以下是整理的tips:
1.视频中的版本是SEAL-3.3.0 (2020.12.20)
2.新的3.5版本编译库文件在seal\lib生成,而非seal\native\lib。
3.标准需要采用c++17
4.3.6版本已经没有sln项目文件,需要使用cmake
如有谬误还请指正

三、SEAL库测试
良好上网条件的可以访问:
https://www.youtube.com/watch?v=iQlgeL64vfo&feature=youtu.be
https://www.youtube.com/watch?v=cVhcaeS9uM8
SEAL库的开发人员编写了一些测试代码,可以在github上kimlaine/bootcamp
download文件夹,解压后可以看到:
全同态加密-SEAL安装、环境配置与测试_第1张图片
没有上网条件的同学,可以用VS2019打开文件夹中的项目SEAL.sln:
全同态加密-SEAL安装、环境配置与测试_第2张图片
可以在SEALExamples-Source_Files下看到测试代码。
或者进入native/example目录下,也可以看到测试代码:
全同态加密-SEAL安装、环境配置与测试_第3张图片
按照SEAL安装视频中的方式对项目进行配置后,可以直接编译运行,会自动进行基本功能测试。

下一篇博客我会以examples.cpp对CKKS同态加密的使用进行简单分享。

你可能感兴趣的:(密码学,windows,加密解密,github)