陸正福,周憲法,楊慧慧,李 佳
(云南大學(xué) 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,云南 昆明 650500)
在分布式人臉識(shí)別系統(tǒng)(Distributed Face Recognition System,DFRS)中,客戶端采集人臉特征后,上傳到服務(wù)器中,服務(wù)器將其與人臉庫中的數(shù)據(jù)進(jìn)行相似度計(jì)算,并將結(jié)果發(fā)送給客戶端.由于DFRS 涉及敏感信息計(jì)算,所以不同參與主體之間易產(chǎn)生互不信任的問題.可以通過引入密碼學(xué)協(xié)議來保證DFRS 中的計(jì)算在密態(tài)下進(jìn)行,以此來保障各參與方的信息安全.目前DFRS 的安全計(jì)算面臨的主要問題包括相容性問題和性能問題.
相容性問題主要體現(xiàn)為密碼學(xué)協(xié)議中的安全兩方計(jì)算(Secure Two-Party Computation,STPC)和人臉識(shí)別算法的選擇存在相互制約的關(guān)系,而兩者的不斷發(fā)展又會(huì)在解決部分相容性問題的同時(shí)產(chǎn)生新的相容性問題:①STPC 協(xié)議的發(fā)展解決了計(jì)算復(fù)雜度較低的人臉識(shí)別算法隱私保護(hù)問題.例如全同態(tài)加密(Fully Homomorphic Encryption,F(xiàn)HE)[1]提出后,文獻(xiàn)[2-3]利用該方案分別提出了基于漢明距離和歐氏距離的隱私保護(hù)型人臉識(shí)別方案.②人臉識(shí)別算法的發(fā)展導(dǎo)致其計(jì)算復(fù)雜度較高,例如基于機(jī)器學(xué)習(xí)(Machine Learning,ML)和深度學(xué)習(xí)(Deep Learning,DL)的人臉識(shí)別算法中通常包含了非線性程度較高的計(jì)算,從而難以與STPC 形成天然的結(jié)合方案.
基于DL 的DFRS 與STPC 之間面臨的主要挑戰(zhàn)有兩個(gè)方面:①功能上的運(yùn)算相容性問題:一方面密碼學(xué)中的STPC 協(xié)議所支持的計(jì)算形式有限.另一方面,DL 激活層中的非線性激活函數(shù)計(jì)算形式通常較為復(fù)雜,因此需要從基礎(chǔ)運(yùn)算上探索可行的引入方案;②性能上的效率問題:DL 一般包含多層神經(jīng)網(wǎng)絡(luò)層,計(jì)算資源消耗較大,而STPC 協(xié)議本身的效率較低,兩類低效率的方案結(jié)合導(dǎo)致效率的嚴(yán)重下降,需要從體系結(jié)構(gòu)設(shè)計(jì)上探索可行的結(jié)合方案.
本文分析了STPC 所支持的計(jì)算類型與DL 涉及的計(jì)算類型之間的差異,通過引入混淆電路(Garbled Circuits,GC)[4]解決兩者的相容性問題,基于文獻(xiàn)[5]的基本電路模塊設(shè)計(jì)了DL 電路;構(gòu)建了隱私保護(hù)型DFRS 體系結(jié)構(gòu),保證了系統(tǒng)的安全性和準(zhǔn)確率;通過將DL 模型中計(jì)算量較大的網(wǎng)絡(luò)層以明文計(jì)算的形式部署在客戶端的方式,形成改進(jìn)型C/S 結(jié)構(gòu),從體系結(jié)構(gòu)與組織的角度提升了隱私保護(hù)型DFRS 的效率.實(shí)驗(yàn)結(jié)果表明,改進(jìn)系統(tǒng)的通信量從1 998.206 MB 減少到60.591 MB,100 MB 帶寬下耗時(shí)僅需5.107 s,相對(duì)于原始系統(tǒng)1 59.383 s,性能提升明顯,體現(xiàn)了其實(shí)用性.
2008 年,Schneider 等[6]首次在神經(jīng)網(wǎng)絡(luò)中引入GC,但使用神經(jīng)網(wǎng)絡(luò)層是線性的.2011 年,Schneider等[7]將心電圖分類與GC 相結(jié)合,但是使用的神經(jīng)網(wǎng)絡(luò)層數(shù)較少.2009 年,Sadeghi 等[8]將同態(tài)加密與GC 的混合協(xié)議應(yīng)用到人臉識(shí)別領(lǐng)域,但是使用的是非線性程度較低的歐氏距離.2016 年,劉妍等[2]基于Paillier 同態(tài)加密構(gòu)造了隱私保護(hù)人臉識(shí)別系統(tǒng),但是使用的是基于漢明距離的算法,正確率難以保障.2016 年,陸正福等[3]基于歐氏距離和整數(shù)上的FHE,構(gòu)造隱私保護(hù)人臉識(shí)別系統(tǒng),該文獻(xiàn)同樣使用非線性程度較低的歐氏距離算法.2017年,文獻(xiàn)[9]針對(duì)DL 和密碼學(xué)的相容性問題,提出將DL 中非線性激活函數(shù)使用低次多項(xiàng)式函數(shù)替代的方案,雖然能使用FHE 進(jìn)行加密但會(huì)損失部分準(zhǔn)確度.2018 年,陸正福等[10]使用DGHV 全同態(tài)加密方案和SVM 算法,選擇合適的非線性核函數(shù),構(gòu)造隱私保護(hù)人臉識(shí)別系統(tǒng),雖然該文獻(xiàn)將STPC 與機(jī)器學(xué)習(xí)算法相結(jié)合取得一定的效果,但是并未進(jìn)一步探索STPC 與準(zhǔn)確度更高的深度學(xué)習(xí)算法的結(jié)合.本文旨在以人臉識(shí)別為應(yīng)用場景,探索混淆電路與深度學(xué)習(xí)的融合方案,最終達(dá)到了基于GC 與激活函數(shù)的功能上的運(yùn)算相容、基于明密分割體系結(jié)構(gòu)的性能上的效率相容.
2.1 不經(jīng)意傳輸(Oblivious Transfer,OT)在一個(gè)OT 協(xié)議中,發(fā)送方S持有輸入x0,···,xn,接收方C輸入比特b,C在不泄露b的情況下從S得到xb,此外,C無法獲得其它的信息.這種n選1 的協(xié)議 記為,當(dāng)n=2時(shí)記為.
2.2 混淆電路(Garbled Circuits,GC)GC 核心思想是將P1和P2合作計(jì)算的函數(shù)f使用電路表示,然后構(gòu)造相應(yīng)混淆電路,P1和P2執(zhí)行混淆電路得到正確的結(jié)果,同時(shí)雙方輸入相互保密.
圖1(a)是一個(gè)布爾電路,接收兩個(gè)布爾值α和β,進(jìn)行布爾運(yùn)算(與、或、非等)后輸出一個(gè)布爾值g(α,β),其中α,β,g(α,β)∈{0,1}.P1首先將布爾電路轉(zhuǎn)化為混淆電路:P1生成6 個(gè)固定長度的隨機(jī)值替換布爾電路的布爾值,其對(duì)應(yīng)關(guān)系保密.P1使用輸入線路上的隨機(jī)值對(duì)輸出線路的隨機(jī)值進(jìn)行雙重加密,得到行數(shù)為4 的混淆表E為對(duì)稱加密算法.P1將和GC 傳輸至P2,P2通過OT 協(xié)議從P1得到自身輸入所對(duì)應(yīng)的隨機(jī)值由于隨機(jī)值與布爾值的對(duì)應(yīng)關(guān)系只有P1知道,因此P2不知道P1的真實(shí)輸入,由于P2得到自身輸入對(duì)應(yīng)隨機(jī)值是通過OT協(xié)議,因此P1不知道P2的真實(shí)輸入.至此,P2獲得計(jì)算GC 所需的所有信息,P2用P1的隨機(jī)值和自身的隨機(jī)值解密表1 中的混淆值,得到輸出作為下一個(gè)電路的輸入.
圖1 布爾電路和混淆電路Fig.1 Boolean circuit and garbled circuits
表1 混淆表Tab.1 Garbled table
2.3 卷積神經(jīng)網(wǎng)絡(luò)DL[11]中的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)主要應(yīng)用于圖像識(shí)別領(lǐng)域,本文的人臉識(shí)別算法是基于CNN模型設(shè)計(jì)的.CNN 的網(wǎng)絡(luò)層主要包括全連接層,卷積層,激活層和池化層.其中非線性激活層能夠提高DL 解決復(fù)雜問題的能力,但非線性激活層的引入帶來了DL 與STPC 的相容性問題.
3.1 STPC 與DL 的相容性分析線性函數(shù)通常僅包含加乘計(jì)算,形式簡單,引入STPC 比較容易.對(duì)于低非線性程度的函數(shù),可以與FHE 結(jié)合,例如低次多項(xiàng)式函數(shù).然而大多數(shù)非線性函數(shù)與STPC協(xié)議的結(jié)合則較為困難.
DL 非線性網(wǎng)絡(luò)層中的計(jì)算一般非線性程度較高,因此需要考慮與STPC 相容性問題.
(1)DL 涉及的計(jì)算 本文使用的是DL 中的CNN 技術(shù),首先分析CNN 涉及的線性和非線性計(jì)算.
線性計(jì)算:CNN 中卷積層做卷積計(jì)算,全連接層做矩陣乘法計(jì)算,平均池化層對(duì)圖像矩陣的每一塊k×k的區(qū)域求平均值,它們都只涉及加法和乘法計(jì)算.
非線性計(jì)算:最大池化層是對(duì)每個(gè)k×k區(qū)域求最大值,涉及到比較運(yùn)算.激活層因包含非線性激活函數(shù),計(jì)算相對(duì)復(fù)雜,需要單獨(dú)討論.
DL 激活層通常使用sigmoid 函數(shù)和ReLU 函數(shù).sigmoid 函數(shù)可以表示為加法、除法和指數(shù)計(jì)算:
綜上所述,DL 中卷積層和全連接層只涉及到加乘計(jì)算.平均池化層包含加乘計(jì)算,最大池化層只涉及到比較運(yùn)算.激活層中,sigmoid 函數(shù)包含加法、除法、指數(shù)計(jì)算,而ReLU 函數(shù)只包含比較運(yùn)算.
(2)STPC 支持的計(jì)算 FHE 支持任意次的加乘復(fù)合計(jì)算,但不支持比較運(yùn)算.GC 支持能夠轉(zhuǎn)化為布爾電路的計(jì)算,因此GC 支持加法、乘法和比較運(yùn)算.
(3)STPC 協(xié)議與DL 的相容性分析 一方面sigmoid 函數(shù)非線性程度較高,難以使用FHE 和GC 表示;另一方面ReLU 函數(shù)包含比較運(yùn)算,無法使用FHE 表達(dá),而GC 支持比較運(yùn)算.因此在本文中,通過將ReLU 和GC 結(jié)合來解決DL 和STPC的相容性問題.
3.2 DL 電路設(shè)計(jì)首先將DL 中的計(jì)算使用布爾電路表示.本文使用文獻(xiàn)[5]中的基本電路模塊:加法電路(ADD),減法電路(SUB),比較電路(CMP),乘法電路(MUL).作者設(shè)計(jì)“Free-XOR”優(yōu)化XOR 電路,并盡可能地在設(shè)計(jì)電路時(shí)使用XOR電路.與傳統(tǒng)方案相比,可以將電路規(guī)模縮減33%至 50%.
3.2.1 DL 卷積層和全連接層電路設(shè)計(jì) 神經(jīng)元結(jié)構(gòu)如圖2 所示,x1,x2,···,xn為神經(jīng)元的輸入,w1,w2,···,wn為權(quán)重參數(shù),b為偏置,輸出為:y=b+由于涉及到加權(quán)求和運(yùn)算,因此需要設(shè)計(jì)求和電路(SUM).SUM 電路可以由ADD 電路和MUL 電路進(jìn)行組合得到,如圖3 所示.
圖2 單個(gè)神經(jīng)元結(jié)構(gòu)Fig.2 The structure of a neuron
圖3 求和電路Fig.3 Summation circuit
3.2.2 DL 激活層電路設(shè)計(jì) 激活層激活函數(shù)ReLU 的形式可以表示為(2)式,相當(dāng)于在CMP 電路的基礎(chǔ)上添加一個(gè)選擇操作,當(dāng)值為1 時(shí),f(x)值為x,否則為0.因此,需先構(gòu)造選擇器.
(1)多路選擇器電路(MUX)多路選擇器電路(MUX)由1-bit 多路選擇器電路組合而成,1-bit 多路選擇器電路的結(jié)構(gòu)如圖4 所示,xi和yi是電路輸入,zi是電路輸出,長度均為1-bit.c的長度為1-bit,c=0,則zi=xi;c=1,則zi=yi.
圖4 1-bit 多路選擇器電路Fig.4 1-bit multiplexer circuit
MUX 電路的結(jié)構(gòu)如圖5 所示,xl和yl是電路輸入,zl是電路輸出,長度為l-bit.c的長度為1-bit,c=0,則zl=xl;c=1,則zl=yl.
圖5 多路選擇器電路Fig.5 Multiplexer circuit
(2)最大值電路(MAX)xl和yl是MAX電路的兩個(gè)輸入,長度為l-bit,通過電路比較大小,然后得到其中較大值.即:
MAX 電路是由CMP 和MUX 組合而成,如圖6 所示.
圖6 最大值電路Fig.6 Maximum circuit
(3)ReLU 電路 令MAX 電路中yl=0,即為R eLU 電路.
3.2.3 DL 池化層和輸出層電路設(shè)計(jì) 在池化層,使用最大池化函數(shù),求出圖像子區(qū)域像素的最大值.輸出層是用來分類,因此需要對(duì)最后一層全連接層的輸出結(jié)果求最大值,得到輸入所屬的類,因此輸出層和池化層需要設(shè)計(jì)相應(yīng)的電路,如圖7所 示.
圖7 輸出層電路Fig.7 Output layer circuit
3.3 GC 協(xié)議設(shè)計(jì)符號(hào)說明:S為服務(wù)器,C為客戶端,t為安全參數(shù),α,β為輸入bit,τ為輸出bit.參數(shù)說明:t為哈希函數(shù)的安全參數(shù),以SHA-256 實(shí)例化此哈希函數(shù)時(shí),t取128.
(1)服務(wù)器端生成混淆電路
3.4 正確性本文構(gòu)造的混淆電路是由電路門組合而成,因此只需證明單個(gè)電路門的正確性即可.
2009 年,Lindell 等[12]給出了GC 的正確性證明,大致思路如下:
以上證明了一個(gè)電路門只有一個(gè)ci能被正確解密,因此,對(duì)于由電路門組成的電路來說,其由下至 上計(jì)算輸出的結(jié)果是正確的.
3.5 安全性由于OT 協(xié)議是安全的,因此P2方每條電路輸入線只接收到一個(gè)密鑰.然后,由于加密方案的安全性,它只能解密每個(gè)門中的一個(gè)值.此外,它不知道在這個(gè)解密中獲得的值對(duì)應(yīng)的是0還是1.因此,除了輸出本身,P2從這個(gè)計(jì)算中什么也學(xué)不到.并且,由于OT 協(xié)議的安全性,P1對(duì)P2的輸入一無所知.
Lindell 等[12]在2009 年首次證明了混淆電路安全性.其對(duì)P1惡意的情況和P2惡意的情況分別進(jìn)行了證明.2012 年,Bellare 等[13]給出了GC 的形式 化定義、語義定義和安全定義等.
4.1 隱私保護(hù)DFRS 體系結(jié)構(gòu)(方案1)DFRS由客戶端C采集用戶的人臉特征Xi,并做相應(yīng)的預(yù)處理,服務(wù)器S存儲(chǔ)人臉特征模板X={X1,X2,···,Xn} 和參數(shù).一方面,DL 難以與STPC 相容;另一方面,模型訓(xùn)練和STPC 的計(jì)算開銷都比較大.因此模型使用明文進(jìn)行訓(xùn)練.本文考慮將隱私保護(hù)DFRS 分為兩個(gè)階段:一是離線訓(xùn)練階段,服務(wù)器提前對(duì)模型進(jìn)行訓(xùn)練,以明文的方式進(jìn)行計(jì)算;二是在線識(shí)別階段,使用GC 協(xié)議完成在線人臉識(shí)別任務(wù).
詳細(xì)體系結(jié)構(gòu)設(shè)計(jì)如圖8 所示.
圖8 DFRS 體系結(jié)構(gòu)Fig.8 DFRS architecture
4.2 改進(jìn)的隱私保護(hù)DFRS 體系結(jié)構(gòu)(方案2)DL 中的計(jì)算量主要集中在卷積層,而卷積層主要分布在模型的前幾層.因此可以考慮將DL 模型進(jìn)行拆分:①將DL 網(wǎng)絡(luò)層中前幾層部署在在客戶端C;②將DL 網(wǎng)絡(luò)層中后幾層由C和S共同執(zhí)行GC 協(xié)議完成.
由于客戶端需要進(jìn)行部分網(wǎng)絡(luò)層的計(jì)算,因此服務(wù)器需要向客戶端發(fā)送計(jì)算所需的部分參數(shù),服務(wù)器只保存后幾層的參數(shù).
詳細(xì)體系結(jié)構(gòu)設(shè)計(jì)如圖9 所示.
圖9 改進(jìn)的DFRS 體系結(jié)構(gòu)Fig.9 Improved DFRS architecture
4.3 方案分析方案2 在方案1 的基礎(chǔ)上,將深度學(xué)習(xí)的網(wǎng)絡(luò)層拆分為兩部分,將計(jì)算量較大的部分以高效的明文計(jì)算形式部署在客戶端,能夠大幅降低系統(tǒng)的響應(yīng)時(shí)間.因此,方案1 適合對(duì)安全要求較高的系統(tǒng),方案2 適合對(duì)效率要求較高的系統(tǒng).
5.1 效率分析本文DL 模型使用LeNet-5 模型,包括2 層卷積層,3 層激活層,2 層池化層,2 層全連接層,1 層輸出層.表2 是方案1 各網(wǎng)絡(luò)層資源消耗情況.
由表2 可知,卷積層資源消耗最多,占到總資源消耗的82%左右.由于混淆電路對(duì)比較運(yùn)算的支持較好,因此涉及到比較運(yùn)算的激活層和池化層資源消耗較少.
表2 方案1 中各網(wǎng)絡(luò)層資源消耗對(duì)比Tab.2 Comparison of resource consumption of each network layer in scheme one
5.2 性能分析通過5.1 的分析,方案2 將模型前8 層網(wǎng)絡(luò)層的計(jì)算交由客戶端完成,最后兩層由客戶端和服務(wù)器通過執(zhí)行GC 來完成.
為保證系統(tǒng)的實(shí)用性,實(shí)驗(yàn)加入更為復(fù)雜的遠(yuǎn)程通信環(huán)境測試,分別進(jìn)行回環(huán)測試和遠(yuǎn)程測試.回環(huán)測試網(wǎng)絡(luò)帶寬達(dá)到47.1 Gb/s,遠(yuǎn)程測試的網(wǎng)絡(luò)帶寬為93.4 Mb/s.兩種方案的性能對(duì)比如表3 所示,方案1 純計(jì)算消耗時(shí)間達(dá)到了17.742 s,當(dāng)網(wǎng)絡(luò)環(huán)境為百兆帶寬的情況下約需159.383 s 的通信時(shí)間.而方案2 純計(jì)算耗時(shí)僅需0.6 s,同樣的網(wǎng)絡(luò)環(huán)境下通信耗時(shí)只需5.107 s.相比之下整個(gè)系統(tǒng)的計(jì)算和通信耗時(shí)均大幅降低.
表3 兩種方案的性能對(duì)比Tab.3 Performance comparison of the two solutions
改進(jìn)系統(tǒng)效率提高的原因主要是:①計(jì)算量較大的網(wǎng)絡(luò)層以明文形式部署在客戶端,不使用STPC 協(xié)議;②最后2 層網(wǎng)絡(luò)層雖然執(zhí)行STPC 協(xié)議,但由于其本身計(jì)算量較小,與STPC 結(jié)合計(jì)算開銷并不高.
針對(duì)DL 和STPC 的相容性問題,提出一種GC 與ReLU 函數(shù)相結(jié)合解決方案,在此基礎(chǔ)上設(shè)計(jì)和實(shí)現(xiàn)了隱私保護(hù)型DFRS.同時(shí),針對(duì)低效問題,通過模型拆分的方式對(duì)整個(gè)系統(tǒng)進(jìn)行改進(jìn).實(shí)驗(yàn)結(jié)果表明改進(jìn)方案的效率有較大提升.基于DL的隱私保護(hù)DFRS 核心問題是相容性問題和效率問題,如何在DFRS 中引入更復(fù)雜的DL 模型和進(jìn)一步提高系統(tǒng)效率,需要進(jìn)一步的實(shí)驗(yàn)探索和理論研究.
云南大學(xué)學(xué)報(bào)(自然科學(xué)版)2021年4期