关于在Win11-Visual Studio 2022环境中安装MicrosoftSEAL4.0(新支持BGV方案的版本)同态加密运算库

下载、编译、安装

  1. 事先下载好Visual Studio 17 2022

  2. 在GitHub上下载SEAL-4.0.0.zip并解压或者使用Git克隆SEAL源文件夹,

    git clone https://github.com/microsoft/SEAL.git
    
  3. 在SEAL文件夹所在目录打开终端(PS:需使用Visual Studio下的Developer Command Prompt for VS 2022终端)

    cd seal(文件夹名)
    cmake -S . -B build -G "Visual Studio 17 2022" -A x64
    cmake --build build --config Release
    cmake --install . --config Release
    

    完成以上三步,可以看到SEAL文件夹中
    ...\build\lib\Release\seal-4.0.lib
    .lib文件,以及C:\Program Files\目录下SEAL本地安装库,这样我们就完成了seal库的编译和安装。


创建sealdemo.cpp对库进行简单测试(以build文件夹下的内容为主要依赖,以本地安装库C:\Program Files\SEAL为依赖同理):

  1. 新建sealdemo.cpp源文件,在测试前要设置好VS Project-Properties中的几项内容
    在这里插入图片描述
    • C++ Language Standard
      在这里插入图片描述
  • Additional Include Directories
    在这里插入图片描述

  • Additional Libraries Directories
    在这里插入图片描述

  • Additional Dependencies
    在这里插入图片描述

  1. sealdemo.cpp代码示例
#include "seal/seal.h"
#include <iostream>

using namespace std;
using namespace seal;

int main (){
	EncryptionParameters parms(scheme_type::bfv);//生成方案所需参数
	return 0;
}
  1. 编译运行前先设置运行环境
    Coniguration:Release Platform:x64
  2. 编译运行
    在这里插入图片描述
  3. 返回结果
    在这里插入图片描述
    成功,表示SEAL加密运算库成功编译并生成。
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
同态加密是一种令人信服的加密技术,可以在加密的状态下保持数据运算的可行性。同态加密背后的主要思想是对数据进行加密,使其仍然可以在加密的状态下进行某些数学运算,然后将结果解密以获得最终结果。 BGV(Bajard, Gentry, Halevi)是一种同态加密方案,可用于执行加法和乘法运算。以下是一个简单的伪代码示例,用于说明如何实现同态加密的加法和乘法操作: // 密钥生成 参数:安全参数 lambda 输入:无 返回:公钥 pk,密钥 sk 成员: pk, sk 函数密钥生成(lambda): 生成两个大质数 p, q 生成一个可满足安全性要求的环 R 随机选择多项式 f(x) ∈ R 满足特定条件 生成公钥 pk = (p, q, R, f(x)) 生成密钥 sk = (p, q, R, f(x)) 返回 pk, sk // 加密函数 参数:公钥 pk, 明文 m 输入:无 返回:密文 c 成员:c 函数加密(pk, m): 随机选择多项式 g(x) ∈ R 计算密文 c = (g(x) * f(x) + m) mod q 返回 c // 解密函数 参数:密钥 sk, 密文 c 输入:无 返回:明文 m 成员:m 函数解密(sk, c): 使用 CRT 计算 c mod p 和 c mod q 计算明文 m = (c mod p) mod q 返回 m // 同态加法函数 参数:公钥 pk, 密文 c1, 密文 c2 输入:无 返回:密文 c 函数同态加法(pk, c1, c2): 计算密文之和 c = (c1 + c2) mod q 返回 c // 同态乘法函数 参数:公钥 pk, 密文 c1, 密文 c2 输入:无 返回:密文 c 函数同态乘法(pk, c1, c2): 计算密文之积 c = (c1 * c2) mod q 返回 c 以上是一个基本的同态加密方案的实现示例。需要注意的是,该示例的函数并不具有完整性和安全性,并且仅用于说明目的。实际同态加密的实现还需要进行更多的细化和改进,以满足具体应用的安全性需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值