什么是FHE-Toolkit?

FHE-Toolkit-linux是用于Linux的IBM全同态加密工具包, 该工具包是一个基于Linux的Docker容器,可演示对加密数据的计算而无需解密, 该工具包附带两个演示,其中包括使用神经网络进行的完全加密的机器学习推理以及保留隐私的键值搜索

github:链接

该存储库包含安装和运行作为Docker容器的预打包工具包所需的所有脚本。这些工具包包括IBM同态加密库-HElib,集成开发环境(IDE)【VScode】以及相应的工作区,其中包含各种受支持的工具包版本中的现成示例代码。支持的版本基于Centos,Fedora,Ubuntu或Alpine。每个工具包版本都可以通过主机上的Web浏览器访问内置的IDE。对于喜欢冒险的用户,还提供了在本地构建和打包工具包的说明。

准备

环境

Centos8.0(阿里云)

在运行此工具包之前,您必须克隆此存储库。本教程假定您在系统中具有正常的Internet连接,可以正常运行的git 安装以及正在运行的和最近的Docker安装,并且具有运行docker命令所必需的用户特权。目前需要Docker 19或更高版本。已知较旧的Docker版本无法在我们的系统上正常工作,并且维护人员没有计划支持较旧的Docker版本。

构建工具包需要有效的Internet连接,因为在构建时会从外部来源获取某些依赖项。同样,如果用户选择使用来自DockerHub的预构建映像,则需要有效的Internet连接。

安装docker

yum install docker-ce  //安装

systemctl start docker  //启动服务

docker version   //查看版本号  

开始

克隆IBM FHE Toolkit存储库

首先,在终端窗口中,发出以下命令来克隆此git repo:

git clone git://github.com/ibm/fhe-toolkit-linux

获取工具包Docker映像

1、要获取工具包Docker映像,请首先转到克隆工具包的文件夹,然后cd进入工具包项目文件夹:

cd fhe-toolkit-linux

2、通过调用 FetchDockerImage.sh 的脚本并选择一个平台运行,来获取工具Toolkit Docker镜像:

./FetchDockerImage.sh centos

3、检查映像 ibmcom/fhe-toolkit-centos 是否已成功从Docker Hub下载:

运行工具包

提取脚本完成后,启动FHE Toolkit容器,并使IDE作为守护程序运行,可以通过Web浏览器进行访问。

./RunToolkit.sh -p centos

注释:由于我是云服务器,首先需要将ip换成服务器ip,其次需要到服务器控制台-安全组将8443端口开放,就可以顺利访问了

访问工具包

打开主机上的Web浏览器(而不是Docker容器实例),然后浏览到 https://IP:8443/。这将使您连接到在FHE工具箱Docker容器中运行的IDE。

请注意,此连接使用自签名证书通过https保护。因此,每次连接到工具箱的新实例时,您都需要告诉浏览器信任它。在Chrome中,您可以通过在警告文本上的任意位置单击并键入“ thisisunsafe”来执行此操作。

高级设置-继续访问

成了!

配置工具包

进入工具箱后,系统会自动提示您选择一个供FHE-Workspace使用的工具箱。从下拉列表中选择一种工具包。工作空间的配置将开始,您将可以在“输出”窗口中看到它。您还会注意到,所选的工具包现在显示在窗口底部的CMake工具状态栏中。

如果在加载工具箱几秒钟后未自动提示您选择工具箱,请尝试刷新浏览器。如果仍然没有提示,请检查窗口底部的CMake工具状态栏,以查看是否已选择工具包。每次启动工具箱的新实例时,都需要选择一个工具箱

构建您的第一个HElib示例

在CMake工具状态栏中单击“Build”以生成所选目标:

运行HElib示例(指向并单击)

构建完成后,如果尚未选择任何内容(如果这是第一次运行该工具包,则不会),请单击“run”。这将导致下拉菜单在屏幕上显示可用的例子,选择一个,它将开始运行该程序:

我操作时,默认的就是下面的,没有让选择,我也很无奈。。。。

例如:“ BGV世界国家/地区数据库查找示例文档”包含有关针对加密数据库运行隐私保留搜索的完整示例的信息。该数据库是一个关键值存储库,其中预先填充了来自世界各地的国家及其首都的英文名称,选择国家将搜索匹配的首都。

注释:使用工具包时所做的任何更改都将保存到该FHE-Toolkit-Workspace目录中的本地文件系统中

停止工具包

使用完工具箱实例后,使用 ./StopToolkit.sh 从主机系统中的终端运行程序脚本 ,以停止并删除所有工具箱实例。

./StopToolkit.sh

对 FHE-Toolkit-Workspace目录所做的所有更新都保留在原处,因此您可以在下次运行该工具包时从上次中断的地方开始  

运行HElib示例(集成的IDE控制台)

除了使用CMake Tools状态栏中的“启动”按钮之外,还可以使用集成终端。

  • 在IDE中按F1打开/转到搜索。
  • 键入Select Default Shell,以搜索设置终端外壳的选项。
  • 选择Terminal: Select Default Shell条目。
  • 选择/usr/bin/bash作为您的外壳。
  • 关闭并重新打开集成终端窗口,以使外壳更改生效。

在终端中,转到build目录并运行示例程序:

cd build

./BGV_world_country_db_lookup

参考

1、centos 7.6 安装最新版docker 19.03

2、IBM FHE Toolkit for Linux入门

FHE-Toolkit 安装的更多相关文章

  1. Firefox Security Toolkit 安装

    目的: 下载Firefox Security Toolkit加载到浏览器里,增强渗透测试的工具利用. 兼容性: 目前仅支持Linux/Unix环境(可在kali上安装使用). 下载安装: wget h ...

  2. Linux 使用记1 fastx toolkit安装问题

    1 安装fastx toolkit的时候,步骤按https://blog.csdn.net/LotusWang0723/article/details/78723409 其中可能会出现如下报错 tex ...

  3. CP-ABE ToolKit 安装笔记(转载)

    博主论文狗,好久没有来贴博客,最近做实验需要用到属性加密,了解了下CP-ABE,前来记录一下: 网上相关的博文较多,博主看了大部分的,认为下面这两个看完了基本就可以成功安装. 可参见博文: http: ...

  4. CP-ABE ToolKit 安装笔记

    博主论文狗,好久没有来贴博客,最近做实验需要用到属性加密,了解了下CP-ABE,前来记录一下: 网上相关的博文较多,博主看了大部分的,认为下面这两个看完了基本就可以成功安装. 可参见博文: http: ...

  5. VS2013 蛋疼的“AJAX Control Toolkit”安装过程

    1.AJAX Control Toolkit 下载问题 方法一. 在vs2013中 工具->NuGet程序包管理器->管理解决方案的NuGet程序包 搜索 ajax z找到 AjaxCon ...

  6. Percona Toolkit安装、使用

    percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: l  检查master和slave数据的一致性 l  有效地对记 ...

  7. 安装Extended WPF Toolkit

    Extended WPF Toolkit 可以说是WPF Toolkit 的一个补充,也包含了许多WPF 控件供开发者使用.本篇将介绍Extended WPF Toolkit 1.4.0 中新增的一些 ...

  8. percona-toolkit介绍及安装

    percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,包括: 1. 检查master和slave数据的一致性 2. 有效地 ...

  9. Fedora和Ubuntu下安装OpenGL开发环境配置

    Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...

随机推荐

  1. polay计数原理

    公式: Burnside引理: 1/|G|*(C(π1)+C(π2)+C(π3)+.....+C(πn)): C(π):指不同置换下的等价类数.例如π=(123)(3)(45)(6)(7),X={1, ...

  2. Java并发编程之同步/并发集合

    同步集合 Java中同步集合如下: Vector:基于数组的线程安全集合,扩容默认增加1倍(ArrayList50%) Stack:继承于Vector,基于动态数组实现的一个线程安全的栈 Hashta ...

  3. python-递归函数和内置函数笔记汇总

    1. def syz(*args)    #    *args  参数组 不必填,不限制参数的个数    参数组不常用 2.def sys2(**kwargs): #关键字参数 3.递归函数,  不常 ...

  4. 攻防世界 reverse elrond32

    tinyctf-2014 elrond32 1 int __cdecl main(int a1, char **arg_input) 2 { 3 if ( a1 > 1 && c ...

  5. 4、Spring教程之Spring配置

    别名 alias 设置别名 , 为bean设置别名 , 可以设置多个别名 <!--设置别名:在获取Bean的时候可以使用别名获取--> <alias name="userT ...

  6. django 自带的用户系统

    首先,我要说明一下,下面内容不是必须品,如果各位大神喜欢手写也是可以的,你也可以选择自带的功能来缩减你的代码量,提高效率! 第一步 系统配置用户表 首先,在models中创建用户表,导包 from d ...

  7. OpenCV 之 图象几何变换

    二维平面中,图像的几何变换有等距.相似.仿射.投影等,如下所示: 1  图象几何变换 1.1  等距变换 等距变换 (Isometric Transformation),是一种二维的刚体变换,可理解为 ...

  8. 未来直播 “神器”,像素级视频分割是如何实现的 | CVPR 冠军技术解读

    被誉为计算机视觉领域 "奥斯卡" 的 CVPR 刚刚落下帷幕,2021 年首届 "新内容 新交互" 全球视频云创新挑战赛正火热进行中,这两场大赛都不约而同地将关 ...

  9. java例题_03 水仙花数

    1 /*3 [程序 3 水仙花数] 2 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. 3 例如:153 是一个 ...

  10. UnboundLocalError: local variable 'foo' referenced before assignment Python常见错误

    在定义局部变量前在函数中使用局部变量(此时有与局部变量同名的全局变量存在) 在函数中使用局部变来那个而同时又存在同名全局变量时是很复杂的, 使用规则:如果在函数中定义了任何东西,如果它只是在函数中使用 ...