什麼是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