?

基于全同態加密的安全人臉識別算法*

2021-08-24 08:40王璐瑤
網絡安全與數據管理 2021年8期
關鍵詞:同態密文人臉

王璐瑤

(浙江理工大學 信息學院,浙江 杭州 310018)

0 引言

人臉識別技術是一種能夠根據人的面部輪廓比較和分析圖案來唯一地驗證或識別人身份的生物特征識別技術[1]。通俗地說,人臉識別技術需要用戶的人臉圖像與數據庫中每一個圖像進行識別,從而判斷用戶的人臉圖像是否在數據庫里。

目前,人臉識別技術的應用已經十分廣泛,如在車站安檢、手機解鎖及眾多實用的應用場地。通常在人臉識別技術中使用客戶端-服務器模型,服務器存儲用戶的人臉圖像并提供人臉識別服務,客戶端采集用戶的人臉圖像并請求服務器進行人臉識別。但是,惡意的服務器會收集或濫用用戶的人臉圖像,導致人臉信息的泄露,如科勒衛浴門店的攝像頭惡意收集用戶人臉,因此,保護用戶人臉隱私的重要性不容忽視[2]。

2009年,Erkin等[3]在客戶端-服務器模型下提出基于加法同態加密的保護隱私的人臉識別算法。在該算法中,客戶端擁有一個人臉圖像,服務器保存人臉模板數據庫??蛻舳藢⒓用艿膱D像發送給服務器,服務器計算加密特征向量與數據庫中所有人臉模板之間的歐式距離。然后,服務器與客戶端共同執行加密協議,找到最小值。如果最小值小于閾值,則客戶端獲得索引值,否則,客戶端會獲得一個特殊符號“┸”。

同年,Sadeghi等[4]研究了在客戶端-服務器模型下基于加法同態加密和混淆電路的保護隱私的人臉識別算法。在該算法中,服務器通過加密的人臉圖像進行人臉識別,并在客戶端和服務器之間運行一個混淆電路協議,運行結束后,客戶端輸出帶有識別結果的索引。

2014年,Chun等[5]研究了在雙服務器模型下基于加法同態加密和混淆電路的保護隱私的生物特征識別算法。在該算法中,服務器保存了加密的生物特征模板,保護了生物特征模板的安全性,最后,服務器向客戶端返回識別結果。

2019年,Drozdowski等[6]研究了在雙服務器模型下基于全同態加密的保護隱私的人臉識別算法。服務器在加密的人臉圖像上執行人臉識別,并在某個時候請求擁有私鑰的受信任的第三方(a Trusted Third Party,TTP)對密文進行解密。最后,TTP向客戶端返回指示識別結果的位0/1。

但是,上述的人臉識別算法都有一些缺點:(1)人臉模板以明文形式存儲在服務器中;(2)服務器解密中間結果或知道識別結果位,導致信息的泄露;(3)雙服務器容易受到合謀攻擊。本文提出了一種基于全同態加密的人臉識別算法,使用單指令多數據 流 (Single Instruction Multiple Data,SIMD)技 術[7]將向量加密為單個密文,不僅提高了計算效率,還可以有效地保護用戶人臉圖像在服務器端的隱私性,保證在識別過程中,服務器不會學習到用戶人臉圖像的任何信息。

1 基礎知識

1.1 安全模型

本文的模型由兩個部分組成:資源受限的客戶端和功能強大的服務器,如圖1所示??蛻舳藫碛幸粚γ荑€,即公鑰/私鑰(Public Key/Secret Key,PK/SK),主要作用有兩點:(1)獲取用戶的人臉圖像并用公鑰PK將圖片特征向量加密傳給服務器;(2)將服務器傳送回來的密文用私鑰SK解密,在解密結果中查詢最小值,并將其與預先設定的閾值t比較,得出識別結果。服務器的主要作用是存儲加密的注冊模板數據庫并提供人臉識別服務。

圖1 安全模型

在本模型中,假設客戶端是誠實的,服務器是半誠實的[8],即服務器遵循協議規范,但可能會對獲取用戶面部圖像的某些信息感興趣。還假設客戶端與服務器之間存在一個SSL/TLS的安全通道[9],以防止對手獲取交換的信息。本文的目標是確保在提供人臉識別服務時,服務器無法學習到用戶圖像和識別結果的任何信息。

1.2 全同態加密

2009年,Gentry[10]提出第一個全同態加密,全同態加密是公鑰加密的一種特殊形式,解決了密文在不可靠不安全環境下的計算難題。全同態加密技術可以在對密文不解密的前提下對密文進行計算,計算結果也以密文形式保存并傳遞,并且密文解密的結果與明文進行相同計算的結果相同,充分保護了數據的隱私。

全同態加密的一個顯著特征是它支持SIMD技術,該技術將含n個元素的向量加密為單個密文。SIMD技術可以實現并行化計算,即在密文域中對向量中n個元素執行加法、減法和乘法操作,僅需要對密文向量進行一次運算。假設 c1=Enc(x1,…,xn),c2=Enc(y1,… ,yn)是 分 別 由 向 量(x1,… ,xn)和 向 量(y1,…,yn)加密而來的,則對于任意的xi,yi∈M,有:

其中 Dec表示解密操作,+、-和×是明文空間 M上的操作。SIMD計算也支持在密文空間上進行旋轉操作,假設密文 c=Enc(z1,…,zn)是由向量(z1,…,zn)加密而來的,則對于任意的 l∈N,有:

其中Rotate表示旋轉操作。

1.3 圖像預處理

深度學習是機器學習中的新研究方向,該學習方法的模式特征是計算機自動學習,極大地增強了學習的效率[11]。Facenet算法采用基于深度學習神經網絡的圖像映射技術與三元組損失函數去訓練神經網絡,將人臉圖像映射到多維空間,其距離對應于人臉相似性的度量[12]。Facenet最大的創新點是采用了三元組損失函數,即具有相同身份標簽的兩張圖片向量(x,y)的平方歐式距離盡量接近;反之,具有不同身份標簽的兩張圖片向量的距離盡量遠離。其中平方歐式距離的定義如下:

其中,x=(x1,x2,…,xn),y=(y1,y2,…,yn)。

Facenet提供了兩個預訓練模型,分別是基于CASIA-WebFace和VGGFace2人臉訓練庫。在本文的實驗中,使用預訓練模型CASIA-WebFace數據庫來訓練卷積神經網絡,并且使用野生人臉數據集(Labled Faces in the Wild,LFW)[13]進行本次實驗。注意,本文使用的兩個數據集之間是沒有交集的。

圖2展示了LFW數據集中的一些人臉圖片。由于LFW數據集中的圖片提供的是250×250像素,而模型中要求輸入的像素為 160×160,因此,本文預處理了這些圖片,使圖片轉化為模型中要求的像素,如圖 3所示。

圖2 LFW原始圖片

圖3 預處理圖片

將預處理過的圖片加載到訓練好的模型CASIAWebFace中,每一張圖片都會產生一個512維的特征向量。

2 基于全同態加密的安全人臉識別算法

本文提出了基于全同態加密的安全人臉識別算法,有效地保護了用戶人臉圖像的隱私,其基本步驟如下:

(1)預處理:通過Facenet深度學習模型,將原始圖像作為輸入,輸出表示原始圖像的n維實值特征向量。

(2)注冊階段:將所有的實值特征向量加密后傳給服務器,建立一個注冊模板數據庫。

(3)識別階段:計算某個用戶的特征向量與注冊模板數據庫中所有密文之間的平方歐式距離。

(4)查找最小值:在平方歐式距離中找出最小的距離值,并將其與預先設定的閾值進行比較,輸出識別結果。

整個算法流程如圖4所示。

圖4 算法流程圖

2.1 注冊階段

客戶端通過攝像頭采集用戶的人臉圖像,并將其加載到 Facenet模型中,生成特征向量 yi=(yi1,yi2,…,yin),其中 n 表示特征向量的維數,i=1,2,…,N??蛻舳耸褂萌瑧B加密中的SIMD技術加密特征向量,并將加密后的向量傳給服務器保存,創建一個注冊模板數據庫,如下所示:

其中Enc表示用公鑰PK加密;N表示注冊模板數據庫中圖片的數量。

2.2 識別階段

在此階段,本文需要識別某個用戶是否在注冊模板數據庫中。首先,客戶端獲取某個用戶的人臉圖像,將其加載到模型中,生成特征向量 x=(x1,x2,…,xn),并將其用公鑰 PK加密為密文 ct*,表示如下:

加密完成后,客戶端將密文ct*傳給服務器。

2.2.1 平方歐式距離的同態計算

服務器收到密文ct*后,需要將該密文與注冊模板數據庫中的每一個密文進行平方歐式距離計算,具體步驟如下:

(1)服務器執行(ct*?cti)?(ct*?cti)的運算,獲得密文 csi,即:

其中,i=1,2,…,N。

(2)計算密文里各元素的和。SIMD加密是將向量加密為單個密文,因此無法訪問密文里的單個元素。本文使用文獻[14]提出的通過重復運用旋轉和加法操作來完成向量中元素的求和,即:

其中 j=0,1,…,log2n-1。該方法可以使密文向量csi里的每個元素都表示為x和yi的平方歐式距離的值 di,令 cri=csi,則:

(3)合并距離。每個cri里的元素是相同的,為了減少通信量,本文將其合并到一個密文里。在cri中保留第i個元素,其余的元素通過與0相乘清除,即:

將 cdi中元素相加得到密文 cd*,即:

2.2.2 閾值比較

服務器將密文cd*傳給客戶端,客戶端將其解密后,獲得明文向量D=(d1,…,dN)。在 D中查找最小值dmin,并將其與預先設定的閾值t進行比較。若dmin<t,則識別成功,即該用戶在注冊模板數據庫中;否則識別失敗,如圖5所示,MIN表示求最小值,CMP表示比較運算,0/1表示是否識別成功(“0”表示識別成功,“1”表示識別失?。?。

圖5 閾值比較

3 結果分析

3.1 實驗結果

本文中的實驗是在具有2.10 GHz和30 GB RAM的Intel(R)Xeon(R)E5-2620 v2 CPU上運行。使用的全同態加密庫是HElib1.0.2[15]。在本文中,人臉圖片通過Facenet模型輸出的特征向量是實數,而本文使用的HElib僅支持整數運算,因此,需要將向量中的實數轉換為整數,設置一個常數c=10 000,將其乘以特征向量,使實數擴展為整數。

表1總結了客戶端與服務器的計算復雜性??蛻舳耸褂昧艘淮稳瑧B加密和一次全同態解密。在服務器端,最耗費時間的是用戶的特征向量需要與注冊模板數據庫中的每個密文進行平方歐式距離的計算,即每進行一次距離計算需要一次乘法、l=log2n次加法和 l=log2n次旋轉操作,總共需要進行I次;另外還需要I次乘法進行合并距離的操作。

表1 計算復雜性

表2總結了算法計算一次平方歐式距離的時間。本文選擇參數 p=262 963 247,m=9 697,保證了明文槽的數量大于注冊模板數據庫中的圖片數量(本文使用了 I=9 000張圖片);L=120保證了本實驗所需要的最少乘法深度。其中p是明文模數,m是分圓多項式的次數,L是密文容量。這些參數的選擇確保了算法的安全性,使安全級別大于80。

表2 運行時間

3.2 與相關工作的比較

文獻[3]和文獻[4]提出的算法需要客戶端與服務器之間進行多輪交互,增加了客戶端的計算負擔;并且服務器上注冊模板數據庫是以明文形式存儲的,增加了數據泄露的風險。

文獻[5]和文獻[6]提出的算法服務器中的注冊模板數據庫是以密文形式存儲的,但是服務器會解密中間結果或知道識別結果位,導致信息的泄露;其次,雙服務器易受到合謀攻擊,增加了安全隱患。

本文提出的算法有以下優點:首先,服務器中的注冊模板數據庫是加密的,服務器無法讀取明文用戶人臉圖像,并且也不能獲取識別結果;其次,本文使用了SIMD技術將向量加密為單個密文,提高了計算效率;最后,客戶端與服務器只有上傳和下載數據兩輪交互。表3總結了各個算法之間的差異。

表3 和其他算法的比較

3.3 安全性分析

本文假設客戶端是誠實的,服務器是半誠實的。本文的數據是以密文的形式存儲在服務器中的,且在計算過程中,始終是以密文形式進行計算,確保了數據在服務器端的安全性。

4 結論

本文主要研究了基于全同態加密的人臉識別算法。首先,使用SIMD技術將向量加密為單個密文,節約了存儲空間,且SIMD技術支持并行計算,大大提高了計算效率;其次,本文在服務器端執行人臉識別算法,人臉信息始終是以密文的形式存儲的,且不會在計算過程中解密中間密文,使服務器不會了解到人臉圖像的任何信息,保證了在服務器端圖像數據的安全性。但是本文所提出的算法在平方歐式距離的同態計算時耗時較多,有待進一步改進,以提高計算速度。

猜你喜歡
同態密文人臉
一種支持動態更新的可排名密文搜索方案
基于模糊數學的通信網絡密文信息差錯恢復
有特點的人臉
一起學畫人臉
關于半模同態的分解*
拉回和推出的若干注記
τ-內射模的若干性質①
三國漫——人臉解鎖
一種基于LWE的同態加密方案
一種基于密文分析的密碼識別技術*
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合