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