SEAL全同态加密开源库(三) NTT代码分析
2021SC@SDUSC
2021-10-17
前言
这是SEAL开源库代码分析报告第三篇,本篇将首先介绍一下编译运行的最终版的成果,借此对第一篇博客的部分编译内容加以修正。然后本篇将重点介绍SEAL库多项式乘法的重要基础算法:NTT。注意这里将涉及大量的理论基础,可能略显枯燥困难。
编译步骤的修正
在第一篇博客中,讲述了编译运行SEAL库的完整步骤,但是并未经过实战检验,经过检验,发现部分内容存在漏洞,在经过很久的尝试之后,终于对最新版的SEAL库(version:3.7)实现了编译运行,这在网络上还是很难找到相关的资料的,因此我觉得有必要加以记录下来。
当时的步骤是这样的:

但是后来发现这样是不对的,原因在于release版本和debug版本的编译结果并不能完全混用,因此我重新想办法解决了这个问题:
完美运行SEAL库示例
打开cmake编译后的SEAL工程,找到INSTALL,这个时候要注意,我们要选择release编译(VS没有,那就在config里面新建一个release的编译选项),右键INSTALL 点击生成。然后等待显示成功编译后,我们回到这个目录 就会发现生成了release所对应的lib库,(再说一次,带d的是debug的,不带d的是release),接下来就可以进行release的配置了。完美!
其中可能会遇到报错,解决方案:用管理员身份打开VS2019即可。
目前终于完全解决了安装配置的问题。
可以做到新建项目文件中导入SEAL作为第三方库。(虽然短期看来没什么用,主要是为了验证安装

本文详细解读了SEAL开源库中多项式乘法的基础算法NTT,基于FFT原理并利用数论中的原根概念,介绍了NTT的优化优势,包括取模、精度提升和整数运算效率。通过理论阐述和代码实例,深入探讨了NTT在加密计算中的关键作用。
最低0.47元/天 解锁文章
1320





