張 波,賀楚博
(1.沈陽化工大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 沈陽 110142;2.遼寧省化工過程工業(yè)智能化技術(shù)重點(diǎn)實驗室,遼寧 沈陽 110142)
隨著信息化的快速發(fā)展,生物特征識別技術(shù)越加普遍,身份認(rèn)證系統(tǒng)的安全性也隨之被重視起來。目前生物特征識別技術(shù)包括[1-2]:指紋識別[3]、掌紋與掌形識別、虹膜識別[4]、人臉識別[5]、手指靜脈識別、聲音識別、簽字識別、步態(tài)識別、鍵盤敲擊習(xí)慣識別甚至DNA識別等等。而其中運(yùn)用最廣泛的還是指紋識別和人臉識別,為保證這些生物特征的安全性,生物特征保護(hù)技術(shù)應(yīng)運(yùn)而生。
目前為止國內(nèi)外學(xué)術(shù)領(lǐng)域上出現(xiàn)的比較經(jīng)典的生物特征模板保護(hù)方案可以分為四大類[6],其中可逆變換法和不可逆變化法可以統(tǒng)稱為基于特征變換的方法,密鑰綁定(密鑰再生)法和密鑰生成法統(tǒng)稱為基于特征加密的方法。
模糊保險箱算法屬于密鑰綁定法,是生物特征加密領(lǐng)域中經(jīng)典的實用化方案之一[7],此方案包括加密和解密兩個部分。此算法是由Juels A等人[8]首次提出來的,克服了模糊承諾方案中對特征向量要求有序的缺點(diǎn)。李芬等人[9]將私鑰存儲于用戶智能卡中,再用模糊保險箱算法保護(hù)智能卡PIN,雙重保護(hù)了數(shù)字身份,對模糊保險箱算法的安全性進(jìn)行了提高。張淑苗等人[10]用隨機(jī)點(diǎn)和用戶特征結(jié)合改進(jìn)了多項式構(gòu)造過程,提高了安全性并節(jié)約了存儲空間。袁立等人將人臉和人耳特征進(jìn)行融合,優(yōu)化了單獨(dú)人臉和人耳的識別率和誤識率。王科俊等人[11]成功將模糊保險箱算法用到了指靜脈上,取得了較好的準(zhǔn)確度。Sujitha, V等人[12]將指紋特征和掌紋特征進(jìn)行融合并應(yīng)用到模糊保險箱中,證明了多重生物識別系統(tǒng)的性能優(yōu)于單一特征識別。Yang等人[13]將帶有拓?fù)浯a的Delaunay四邊形系統(tǒng)對指紋進(jìn)行配準(zhǔn),獲得更好的性能和安全性。Peng Li等人[14]用哈夫曼編碼技術(shù)對細(xì)節(jié)點(diǎn)的儲存容量進(jìn)行壓縮,可以避免模糊保險箱方案的對準(zhǔn)過程,提高了性能和安全性。張璐等人[15]改進(jìn)了算法基點(diǎn)距離選取規(guī)則和細(xì)節(jié)點(diǎn)的提取范圍,降低了算法的拒真率和認(rèn)假率,具有實用性。人臉特征作為最廣泛應(yīng)用的生物特征之一[6],具有很強(qiáng)的應(yīng)用性,使用起來更加的方便,所以對人臉特征的隱私和安全的保護(hù)也變得十分重要。雖然模糊保險箱算法非常流行,但其存在一些局限性:模糊保險箱不能保證算法的可撤銷性,一旦遭到破壞,容易受到交叉匹配攻擊。模糊保險箱算法的真實點(diǎn)在匹配階段會暴露,攻擊者容易恢復(fù)這些點(diǎn)。Clancy等人[16]分析表明,對解鎖點(diǎn)的編號進(jìn)行統(tǒng)計分析的暴力攻擊,很容易破壞保險箱的安全性。
為了解決上述問題,該文提出了一種改進(jìn)的模糊保險箱算法,與原本的模糊保險箱算法相比,提高了算法的安全性和準(zhǔn)確性。在該算法中,首先利用正交隨機(jī)矩陣與人臉特征做置亂操作,將人臉特征進(jìn)行可撤銷變換加密。然后再把加密后的特征模板與混雜的干擾數(shù)據(jù)融合形成保險箱。這樣攻擊者很難從保險箱中獲取真實的細(xì)節(jié)點(diǎn),起到了加密作用,提高了算法的安全性。另外,在解碼時用Berlekamp-Welch解碼算法代替16位CRC解碼[17],使算法更有效率。并且只有與之匹配的特征人臉才能成功解密,釋放密鑰。
具體過程是先生成正交隨機(jī)矩陣:
(1)
然后將人臉特征向量k=[k1,k2,…,kn]與正交隨機(jī)矩陣的每一列分別做內(nèi)積運(yùn)算,進(jìn)行置亂操作,生成加密后的人臉特征序列:
imface=[face1,face2,…,facen]
(2)
其中,
(3)
最后將人臉特征序列做歸一化處理,方便進(jìn)行特征比對。人臉模糊保險箱算法是在模糊保險箱算法上實現(xiàn)的更實用化的一種算法[18]。該算法是通過人臉圖像信息達(dá)到了密鑰信息和個人身份特征相互綁定的目的?;驹硎窍葘⑸锾卣鲾?shù)據(jù)和隨機(jī)密鑰進(jìn)行結(jié)合,經(jīng)過一系列的變換存入數(shù)據(jù)庫中,待認(rèn)證模板經(jīng)過反變換與數(shù)據(jù)庫進(jìn)行比對,比對成功則釋放密鑰。
Reed-Solomon編碼簡稱RS編碼,是一種最大距離可分碼[19]。其中,消息組向量記為m:
m=[x1,x2,…,xk],xi∈f(p),i=1,2,…,k
(4)
用定義在f(p)上的多項式來表示這個消息組,即:
(5)
所以使用Berlekamp-Welch算法進(jìn)行解碼,算法時間復(fù)雜度為ο(n2),此方法僅基于一個解碼集,并且引入了一個隊列,把當(dāng)前步不確定是否要計算的步交給下一步,省去了不必要的計算。Berlekamp-Welch可以高效地解碼BCH碼與RS碼,該算法通常用來解碼RS碼。Nandakumark等人評估了33個候選多項式,這些多項式在Matlab中運(yùn)行需要大約8秒的計算時間。而Berlekamp-Welch算法基于一個解碼集,只需要計算一個多項式即可。
Berlekamp-Welch算法的關(guān)鍵方程組可表示為:
(6)
其中,P(t)為已知的校驗位多項式,N(t)為與錯誤大小相關(guān)的多項式,E(t)為錯誤辨認(rèn)多項式。錯誤辨認(rèn)多項式可以定義為:
(7)
其中,ij=1,2,…,n代表出錯的符號的位置。設(shè)接收端收到的碼為R,對于所有的i來講,RiE(i)=E(i)P(i)。因為當(dāng)Ri為正確的碼時,Ri=P(i),當(dāng)Ri為錯誤的碼時,E(i)=0等式依舊成立。
改進(jìn)后的人臉模糊保險箱算法流程分為特征加密和特征解密兩個階段。
在特征提取階段后,所有的特征imface都被用于構(gòu)造模糊保險箱。加密過程時將密鑰編碼生成多項式。將特征提取后的人臉特征進(jìn)行可撤銷變換,方法是生成隨機(jī)矩陣,將隨機(jī)矩陣和人臉特征做置亂操作,最后把可撤銷變換后的人臉特征在[-1,1]的范圍內(nèi)做歸一化處理,將處理后的數(shù)據(jù)在多項式上進(jìn)行投影,最后在保險箱中加入雜湊點(diǎn)生成保險箱。
具體步驟是在構(gòu)造保險箱階段,先隨機(jī)生成密鑰,將密鑰分成d+1個相等的分段,并對其編碼生成多項式P。其中,d為多項式P的次數(shù)。將經(jīng)過預(yù)處理后的人臉特征進(jìn)行可撤銷變換,先生成一個正交隨機(jī)矩陣,再將經(jīng)過2維Gabor小波和主成分分析后的人臉特征向量內(nèi)積進(jìn)行置亂操作,生成可撤銷變換后的人臉特征模板。將人臉特征模板在P上進(jìn)行投影得到特征點(diǎn)集:
U={(di,P(di))|i=1,2,…,N}
(8)
其中,N為特征點(diǎn)的個數(shù)。
使用隨機(jī)數(shù)生成器生成雜湊點(diǎn),在模糊保險箱中加入雜湊點(diǎn)(vj,wj),雜湊點(diǎn)不能落在多項式上,且與真實點(diǎn)有一定的距離。將雜湊點(diǎn)和真實點(diǎn)無序地混合在一起形成了模糊保險箱,雜湊點(diǎn)個數(shù)要遠(yuǎn)遠(yuǎn)大于真實點(diǎn)個數(shù),這樣才能使模糊保險箱的安全性更高。
解密過程是根據(jù)待認(rèn)證的特征模板,如果待認(rèn)證特征模板與注冊模板大多數(shù)點(diǎn)重合,使用Berlekamp-Welch解碼能成功獲得密鑰。
具體步驟是從待認(rèn)證模板中提取細(xì)節(jié)點(diǎn)集C,將待認(rèn)證模板與保險箱中點(diǎn)集進(jìn)行比對,從點(diǎn)集中選取一定數(shù)目的點(diǎn),找出待解密的候選點(diǎn)集D。候選點(diǎn)集的選取需要先設(shè)定一個閾值,對比保險箱中點(diǎn)集與待認(rèn)證模板點(diǎn)集的最小歐氏距離,將距離小于設(shè)定閾值的點(diǎn)放入待解密的候選點(diǎn)集D中,大于閾值的點(diǎn)看作是雜湊點(diǎn)進(jìn)行刪除,將所有數(shù)據(jù)過濾一遍最后得到候選點(diǎn)集D。用Berlekamp-Welch解碼對候選點(diǎn)集C進(jìn)行解碼,解碼成功串聯(lián)獲得密鑰,解碼失敗證明該人臉模板和模糊保險箱中儲存的人臉模板不匹配。
用Berlekamp-Welch解碼[20]時,若(d+2e) 該算法是建立在ORL[21]人臉庫上進(jìn)行的。ORL(Olivetti research laboratory)是英國劍橋大學(xué)Olivetti研究所制作的人臉數(shù)據(jù)庫,如圖1所示。 圖1 ORL人臉圖像庫 該數(shù)據(jù)庫共400幅人臉圖像,其中包括每個人10幅圖像,共40個人。每幅原始圖像為256個灰度級,分辨率為92*112。ORL人臉圖像是在不同時間、不同表情、各種視角和各種臉部細(xì)節(jié)的條件下拍攝的。該文選取此圖庫每個人的前5幅圖像做訓(xùn)練樣本。 模糊保險箱涉及真實點(diǎn)和雜湊點(diǎn),真實點(diǎn)的橫坐標(biāo)代表生物特征模板。為了增加模糊保險箱的安全性,防止模糊保險箱泄露時泄露真實特征點(diǎn),將二維Gabor小波后的特征進(jìn)行PCA并將其轉(zhuǎn)換為可撤銷的特征點(diǎn)。 原始人臉圖像能表達(dá)的信息有限,為了使人臉信息更加豐富,使用二維Gabor小波對人臉不同尺度和方向進(jìn)行特征提取,二維Gabor小波變換對表情、曝光度以及角度變換具有魯棒性。圖2所示為一幅人臉圖像在5個尺度、8個方向上的40個幅值圖像。但是使用二維Gabor小波算法會造成維度過高的問題,為解決此問題還需對特征提取后的圖像進(jìn)行PCA降維,通過計算數(shù)據(jù)的均方差大小來獲取高維數(shù)據(jù)的主要特征信息,去除冗余信息。 圖2 經(jīng)過二維Gabor小波的人臉圖像 將去除冗余后的特征模板先進(jìn)行可撤銷變換加密,對特征模板利用單向變換隨機(jī)矩陣的每一列分別做內(nèi)積,變換矩陣滿足不可逆性、局部平滑等特征。加密后的人臉特征序列記為imface,即imface=s·k,若特征模板k被破環(huán),可利用隨機(jī)生成的新的正交矩陣做變換生成新的可撤銷特征模板,即imface'=s'·k。由于s的隨機(jī)性,特征向量imface的特征點(diǎn)是獨(dú)立的,所以暴力攻擊變得十分困難。 將ORL人臉庫中每人5幅共200幅人臉圖像作為訓(xùn)練庫進(jìn)行加密分別保存到保險箱中,每人后5幅共200幅人臉圖像作為驗證庫用于解密。理論上來說模糊保險箱的雜湊點(diǎn)(vj,wj)數(shù)目越多,模糊保險箱的安全性越高,因為雜湊點(diǎn)多的時候攻擊者需要嘗試的次數(shù)越多。但由于平面直角坐標(biāo)的區(qū)域有限,雜湊點(diǎn)與真實點(diǎn)之間需要保持一定的距離,所以限制了雜湊點(diǎn)(vj,wj)的個數(shù)。實驗得出結(jié)論雜湊點(diǎn)個數(shù)在200至500間實驗效果最佳。 為了全面評估該算法的準(zhǔn)確性,選取了3種不同多項式長度和3種不同雜湊點(diǎn)分別進(jìn)行了實驗。實驗結(jié)果分析用正確接受率(genuine accept rate,GAR)和錯誤接受率(false accept rate,F(xiàn)AR)來評價。 該文測試了在不同多項式長度和不同雜湊點(diǎn)個數(shù)下算法的安全性和準(zhǔn)確性。如表1所示,當(dāng)多項式階數(shù)為7(d=7)雜湊點(diǎn)200到300時,算法的準(zhǔn)確性最高,在增加雜湊點(diǎn)的同時,算法的安全性也會提高,但是算法的準(zhǔn)確性會降低。如表2所示,當(dāng)多項式階數(shù)增加到11時,GAR大幅下降。實驗結(jié)果表明,當(dāng)d增大時,雜湊點(diǎn)個數(shù)增多時,GAR減小。 表1 不同多項式時算法的安全性和準(zhǔn)確性 在雜湊點(diǎn)為300時,分別計算三種不同多項式的錯誤接受率。其中d=11時錯誤接受率最低,這是因為在d=7時,入侵者會更容易找到模糊保險箱解碼階段恢復(fù)密鑰所需的8個真實的點(diǎn)。在d增加到11時,入侵者和用戶本身都很難檢索到12個真實的點(diǎn)去解鎖模糊保險箱。所以d值的增加會降低GAR和FAR。 表2 雜湊點(diǎn)為300時的算法準(zhǔn)確率 M. A. Dabbah等人[22]提出的將原始生物特征被多項式并轉(zhuǎn)換到安全域的可撤銷模板保護(hù)算法中,其最佳結(jié)果達(dá)到96%的識別率。Hooda R等人[18]提出了一種新的雜湊點(diǎn)生成方法,使用20個細(xì)節(jié)點(diǎn),與Clancy[16]的模糊保險箱算法識別率比較沒有變化,GAR為90%,F(xiàn)RR為10%,F(xiàn)AR為9%。但是運(yùn)行速度比傳統(tǒng)的Clancy算法快,以300雜湊點(diǎn)為基礎(chǔ)對比,Hooda R等人提出的算法生成雜湊點(diǎn)方式需要7.2毫秒,傳統(tǒng)方法需要10.5毫秒。文中算法在雜湊點(diǎn)生成方式上與傳統(tǒng)方法比沒有明顯變化,但在解密過程中,由于Berlekamp-Welch解碼算法在解碼時僅根據(jù)一個解碼集進(jìn)行重構(gòu),大大降低了解密過程的運(yùn)行時間。以d=7時的兩種方法執(zhí)行時間做比較,傳統(tǒng)方法需要1 120毫秒,文中算法需要940毫秒。并且由于可撤銷模板的引進(jìn),文中算法的正確接受率與Hooda R等人提出的算法相比也有了明顯的提升,最佳結(jié)果達(dá)到96%(見表3)。 表3 不同加密算法準(zhǔn)確率對比 續(xù)表3 提出了在人臉模糊保險箱加密和解密過程中,將人臉特征先進(jìn)行可撤銷變換,提高保險箱的安全性,彌補(bǔ)了傳統(tǒng)模糊保險箱的不足。在待識別人臉特征泄露時,攻擊者也無法竊取或重構(gòu)出原始人臉特征信息,并且可以隨時刪除并重新產(chǎn)生正交隨機(jī)矩陣,生成新的待識別人臉特征模板。實驗表明用正交隨機(jī)矩陣進(jìn)行置亂后的特征與原始特征相比有更好的正確接受率。在解碼階段用Berlekamp-Welch解碼算法代替CRC解碼算法,大大提高了算法的運(yùn)行時間,并且與現(xiàn)有的縮短運(yùn)行時間的算法相比,有著更高的準(zhǔn)確率。3 實驗結(jié)果分析與討論
3.1 圖庫選取
3.2 人臉圖像特征提取
3.3 安全性分析
3.4 實驗結(jié)果分析與討論
4 結(jié)束語