王科俊,曹逸,邢向磊
(哈爾濱工程大學(xué) 自動化學(xué)院, 黑龍江 哈爾濱 150001)
由于如手指靜脈、指紋、虹膜等生物特征具有不易被偽造、唯一性且不易丟失等特性[1-2],基于生物特征的識別技術(shù)目前已經(jīng)是一項可靠的、可以替代傳統(tǒng)密碼識別的普及的技術(shù)[3-4]。
然而正因為生物特征的唯一性和不變性,且一個人的生物特征有限,一旦丟失就是永久丟失導(dǎo)致了安全和隱私方面的問題[5],生物特征模板被竊取將會帶來比傳統(tǒng)身份識別丟失密碼更為嚴(yán)重的后果,由此提出了生物特征加密系統(tǒng)的概念[6-7],該系統(tǒng)將被加密技術(shù)或其他特定的技術(shù)加密過的生物特征模板存儲到數(shù)據(jù)庫中[8],這種不可逆的加密過程可以使非法用戶無法直接從加密模板中得到原本的生物特征[9-10]。
手指靜脈特征具有其他手部特征(如指紋[11]、手形[12]、掌紋[13]等)不具有的獨特的優(yōu)越性:1)非活體無法采集到靜脈,所以更安全;2)手指內(nèi)部的靜脈不受到皮膚表面狀況的影響,且十根手指均可以用于特征提取,靈活性高;3)靜脈特征并不會如人臉一樣受年齡影響,而且靜脈紋路比指紋清晰,對相機的分辨率要求低于指紋特征采集;4)非接觸采集可防止細(xì)菌傳播且采集設(shè)備體積小,采集成本較低且易于被大眾接受。
由于靜脈識別在生物特征識別方面是后起之秀,盡管其具有良好性能,但是對其研究尚沒有像指紋識別那樣深入,目前對手指靜脈加密的研究則是剛剛起步,公開發(fā)表的論文只有我們課題組提出的基于糾錯碼和細(xì)節(jié)點提取的指靜脈加密算法[14],該算法依賴于靜脈圖像的細(xì)節(jié)點,對圖像質(zhì)量要求較高,而在寒冷天氣下由于手指冰涼,導(dǎo)致采集到的靜脈圖像對比度低,靜脈不清晰就難以提取有效特征點,致使這種加密方案失效。而局部二進制編碼(LBP)直接針對灰度圖像進行編碼提取圖像的紋理特征的方法對圖像的質(zhì)量要求不高,而模糊承諾(fuzzy commitment)加密方案直接使用二進制編碼,便于與 LBP相結(jié)合,能夠給出有效、簡單快捷的指靜脈加密方法。
基于上述考慮本文提出了對指靜脈圖像采用多尺度塊中心對稱局部二進制編碼(MB-CSLBP)和模糊承諾相結(jié)合的手指靜脈加密算法。
模糊承諾方案作為一種傳統(tǒng)的加密方法,雖然加解密過程與其他方法相比而言更為簡便,但是其效果卻很好, 因此我們提出將模糊承諾方案與手指靜脈的局部二進制模式相結(jié)合,研究相關(guān)的手指靜脈加密算法。局部二進制模式(local binary patem)是由Ojala等[15]提出的一種能有效地描述圖像的紋理特征的紋理描述算子。紋理特征是對光照、姿態(tài)、背景或者成像等條件因素變化不敏感的圖像固有屬性,因此很適用于手指靜脈特征提取。在改進的多尺度塊中心對稱的局部二進模式( MB- CSLBP)算法的基礎(chǔ)上, 利用提取出的二進制編碼作為指靜脈特征數(shù)據(jù),在模糊承諾方案的框架上結(jié)合 BCH編碼和 SHA-1安全散列算法對密進行加密。
LBP基本思想:在一個3×3的窗口中依次比較中心點像素灰度值與其相鄰的8個點的灰度值,若該鄰域位置點的灰度值小則將該像素點置為0,否則置為1,從左上角像素點的位置起依次順時針(或逆時針)賦權(quán)值并與對應(yīng)二進制數(shù)(0或1)相乘,再依次相加得到這個3×3窗口中心像素點的 LBP特征值,計算公式為
如圖1所示,一個3×3的窗口區(qū)域中中心像素點的灰度值為67,把該值與鄰近的8個像素點比較大小,順時針得到一個8位的二進制串01011001。
圖 1 LBP算子編碼過程Fig. 1 The encoding process of LBP
LBP算子具有以下幾個顯著優(yōu)點:1)該算子原理簡單、運算簡潔,且計算復(fù)雜度遠(yuǎn)低于離散小波變換、傅里葉變換等;2)LBP二進制編碼是由中心像素點和鄰近像素點灰度值比較得到的,這種對圖像紋理特征的描述方法對圖中的亮暗點和邊緣點等細(xì)節(jié)特征的描述能力較強,符合靜脈特征提取的需求;3)基于傳統(tǒng)子空間的方法,如ICA(獨立成分分析)、LDA(線性判別分析)、PCA(主成分分析)等均需要進行數(shù)據(jù)訓(xùn)練,而LBP提取到的二進制碼或直方圖向量不需要,因此便于推廣。
雖然LBP算子運算簡潔、原理簡單、紋理特征描述能力強,但該算子在具體應(yīng)用中仍存在很多問題,如以下幾個方面:
1) LBP二進制特征編碼模式過多:在一個大小為3×3的窗口中求得的LBP編碼特征是一個8位的二進制數(shù),所以對應(yīng)的紋理模式有28=256種。雖然越多的紋理模式中提取的紋理細(xì)節(jié)也越多,但過多的特征模式會降低LBP紋理描述的分辨能力,且并不是所有的紋理細(xì)節(jié)都對圖像信息的描述貢獻很大,其中有許多可以被舍棄的紋理特征。
2) LBP算子對劇烈噪聲和光照的魯棒性差:由于LBP碼值是由兩個單像素點的比較所得,因此劇烈光照和噪聲會影響相鄰像素的大小比較結(jié)果,從而會產(chǎn)生不同的LBP模式,如圖2所示。
圖 2 噪聲對LBP算子的影響Fig. 2 The impact of noise on LBP operator
圖2(a)和圖2(b)分別表示原始圖像和加入噪聲后的圖像,對大小為3×3的區(qū)域采用LBP算子提取特征編碼。圖2(a)中閾值為中心像素值67,得到LBP編碼值10010101,對應(yīng)特征值149。圖2(b)加入噪聲后閾值中心像素值64,得到LBP編碼值11010001,對應(yīng)特征值209。圖2(a)和圖2(b)本是同一紋理特征,但由于LBP編碼值不同故而認(rèn)為二者是不同紋理,由此可見LBP算子對噪聲和光照很敏感。
3) LBP算子對圖像拓?fù)渥兓?如旋轉(zhuǎn)變化等)的魯棒性差如圖3所示。
采用窗口大小為3×3的LBP算子對原始圖像(圖3(a))和原圖旋轉(zhuǎn)90°后的圖像(圖3(b))進行特征提取的過程。圖3(a)與圖3(b)中閾值均為3,但圖3(a)的LBP編碼值為10100110,對應(yīng)特征值166。圖3(b)的LBP編碼值為10101001,對應(yīng)特征值169。雖然是同一個紋理卻被認(rèn)為是不同的,由此可見LBP算子對圖像拓?fù)渥兓聂敯粜暂^差。
圖 3 拓?fù)渥兓瘜BP算子的影響Fig. 3 The impact of topological changes on LBP operator
4)當(dāng)采用LBP直方圖作為特征向量時,模式種類過多,過高的直方圖維數(shù)會增大計算量,且總特征點數(shù)是一定的,使得每種模式特征點數(shù)少,從而失去了統(tǒng)計意義降低了識別率。
5)一般的LBP算子對局部區(qū)域像素點做的是稀疏采樣[15],雖采用了雙線性差值方法來計算沒有落到像素點上的鄰域點的灰度值,但采樣過程仍不穩(wěn)定[19]。
6)專注于圖像鄰域間的紋理特征的LBP算子沒有考慮到圖像局部紋理間的聯(lián)系,并不能有效地處理大型復(fù)雜的紋理特征。
因此應(yīng)當(dāng)針對以上幾點做出某方面性能上的改進,也需要結(jié)合實際應(yīng)用使LBP算子能夠得到具有鮮明特征的紋理信息,解決實際具體的問題。
1.2.1 中心對稱局部二進制模式
中心對稱局部二進制模式(center-symmetric local binary pattern,CSLBP)的基本思想是基于LBP模式,對關(guān)于中心點對稱的一對像素灰度值做對比,得到的二進制串長度是基本LBP算子的一半[20],減小了需要的存儲空間,CSLBP算子計算方法如式(3):
如圖4中將閾值T置為2,依次比較3×3的窗口區(qū)域內(nèi)關(guān)于中心對稱的4對像素點的灰度差值,小于閾值T時相應(yīng)位置置0,否則置1,得到CSLBP碼值1011。
圖 4 CSLBP算子的編碼過程Fig. 4 The encoding process of CSLBP
1.2.2 多尺度塊中心對稱局部二進制模式(MBCSLBP)
LBP算子和CSLBP算子計算簡單且可以描述圖像的微觀結(jié)構(gòu)特征,但由于二者均是對圖像單個像素點做對比,對噪聲和拓?fù)渥兓聂敯粜圆睿瑹o法描述圖像宏觀結(jié)構(gòu)特征,影響了識別率。多尺度塊中心對稱局部二進模式(multi-scale block center- symmetric local binary pattern)[21]用像素塊區(qū)域的平均灰度值代替CSLBP算子中的單個像素點的灰度值進行編碼的求取,MB-CSLBP算子比LBP算子占用存儲空間更小、受到噪聲的影響更小,同時該算子可同時提取圖像的微觀結(jié)構(gòu)和宏觀結(jié)構(gòu)的特征,可以減小圖像宏觀特征信息的損失,完整表達(dá)圖像的信息可增強分類效果,彌補了1.1節(jié)中的LBP算子的不足。
MB-CSLBP算子的計算如式(4):
如圖5所示,當(dāng)閾值T=0時,依次比較關(guān)于中心正方形區(qū)域?qū)ΨQ的兩個正方形區(qū)域的灰度值之和得到二進制編碼0001,特征值為1。
圖 5 MB-CSLBP算子的編碼過程Fig. 5 The encoding process of MB-CSLBP
模糊承諾方案是利用糾錯碼的容錯能力,在基于漢明距離的度量空間內(nèi)將生物特征信息和糾錯碼技術(shù)相結(jié)合的一種密綁定方案。
因為MB-CSLBP編碼是長度固定的而本文使用的BCH編碼是一種變長數(shù)字編碼,便于在整個加密解密的過程中進行處理,因此,可以發(fā)現(xiàn)基于MB-CSLBP的二進制手指靜脈特征編碼非常適合于模糊承諾方案的應(yīng)用。
在模糊承諾方案中,需要用到密碼學(xué)中有關(guān)的知識和方法,因此首先介紹在本節(jié)中需要用到的BCH碼以及SHA-1安全散列算法的相關(guān)內(nèi)容。
2.1.1 BCH碼
自1959年發(fā)展起來的BCH碼(Bose、Ray-Chaudhuri、Hocquenghem)是一種能糾正多位錯誤的循環(huán)碼[22]。這種用來校正多個隨機錯誤的循環(huán)、多級、變長數(shù)字編碼在編碼理論尤其是糾錯碼方面中被廣泛地研究和應(yīng)用。
BCH碼的編碼與解碼是建立在有限域的域論和多項式基礎(chǔ)上的。在編碼過程中還可以構(gòu)建一個檢測多項式,此多項式用于在接受端對接受到的碼字進行檢測,看是否有錯誤。以基于有限域構(gòu)建一個能夠檢測并校正兩個錯誤的BCH碼為例。若是的一個根,由于將代入可得
BCH碼的解碼過程:
2)計算錯誤定位多項式;
3)解多項式,得到錯誤位置;
4)計算非 BCH 碼的錯誤位置的誤差值。
2.1.2 SHA-1安全散列算法
1993年美國國家標(biāo)準(zhǔn)和技術(shù)協(xié)會提出SHA算法,這種數(shù)據(jù)加密算法[23]被定義為安全散列標(biāo)準(zhǔn)。多年來SHA算法經(jīng)過了一系列的完善并被廣泛應(yīng)用到各個方面,成為了世界公認(rèn)的最安全的散列算法之一。SHA算法的主要思想:將明文以某種不可逆的變換化為長度更短的一段密文,簡言之,就是把一段輸入碼(預(yù)映射或信息)轉(zhuǎn)換位數(shù)固定且短的輸出序列(散列值或信息摘要)的過程。
1994年,對SHA算法的一個未被公開的缺陷進行了糾正得到了SHA-1算法。該算法要求接收的輸入文檔大小小于264bit,并產(chǎn)生160 bit的報文摘要[24]。在SHA-1安全散列算法中,不存在一個文本可使得其散列值與已知文本的散列值相等,舉例來說就是如果A對應(yīng)散列值,理論上來講不會找到一個B可使其散列值滿足,找到滿足上述條件且有特定內(nèi)容的文檔更是難上加難,依次打成SHA-1安全散列算法的目的。
基于MB-CSLBP的手指靜脈特征加密,是在經(jīng)過MB-CSLBP算子編碼之后,把得到的二進制編碼作為手指靜脈圖像的特征與經(jīng)過BCH編碼的密結(jié)合,對密進行加密。
加密階段的具體步驟如圖6。
圖 6 基于MB-CSLBP手指靜脈特征加密流程Fig. 6 The encryption process of finger vein feature based on MB-CSLBP
1)將注冊階段的手指靜脈圖像進行尺寸歸一化為96×64。利用式(4)中的MB-CSLBP算子對圖像進行編碼,其中取像素塊正方形區(qū)域的邊長,這樣我們會得到一個長度為448位的手指靜脈二進制特征編碼,在后面附上一定數(shù)量的0,使其長度變?yōu)?11位,這個511位二進制編碼就是最終的手指靜脈特征編碼,記為fvcode。
解密階段步驟如圖7。
圖 7 基于MB-CSLBP手指靜脈特征解密流程Fig. 7 The decryption process of finger vein feature based on MB-CSLBP
1)與加密階段一樣將用于解密的手指靜脈圖像進行尺寸歸一化處理并用MB-CSLBP算子從圖像中提取出用于解密的手指靜脈特征編碼。2)將與做異或運算得二元序列,再對進行BCH解碼得到待檢驗密。對通過SHA-1安全散列算法進行哈希變換得到哈希值并與之前保存的注冊密的哈希值比較,若,說明得到的密就是用于加密的密,解密成功。否則,解密失敗。
哈爾濱工程大學(xué)指靜脈庫包含105人每人5幅,共525幅大小為320像素×240像素的食指靜脈圖像,其中每人1幅共105幅作為指靜脈圖像訓(xùn)練庫,用于加密,每人另4幅共420幅圖像作為驗證庫,用于解密。使用BCH糾錯編碼來更正類內(nèi)變化,加密系統(tǒng)的性能取決于密長度和糾錯位數(shù)。為了比較不同的密長度對系統(tǒng)性能的影響,我們產(chǎn)生長度不同的密,用BCH編碼對這些密分別進行處理,計算不同情況下的拒真率和誤識率,計算結(jié)果記錄在表1中。
表 1 不同密鑰位數(shù)下的拒真率(FRR)和誤識率(FAR)Table 1 FRR and FAR of different keys
1)若非法用戶嘗試使用多張手指靜脈圖像來嘗試攻擊系統(tǒng),由于錯誤接受率為0.47%,那么非法用戶需要至少嘗試使用213(1/0.47%)張不同的手指靜脈圖像對系統(tǒng)進行攻擊,在短時間內(nèi)一般不可能找到這么多張不同的手指靜脈圖像。
2)若非法用戶嘗試直接生成手指靜脈特征編碼從而攻擊系統(tǒng)的話,對于一個511 b,容錯位數(shù)為24 b的編碼,需要生成487 b的正確序列才能成功,此概率為2–487,這是不太可能的。
4)若非法用戶想要通過生成SHA-1散列編碼反求出正確的密來攻擊系統(tǒng),因為散列編碼的長度為128 b,所以生成正確密的概率為2–128,這幾乎是不可能做到的。
通過結(jié)合實驗數(shù)據(jù),我們對不同的可能存在的非法用戶的攻擊嘗試進行了可行性的分析,不管是哪一種攻擊方式,想要成功攻擊系統(tǒng)在一定程度上來說都是不可能的,也充分說明了基于MB-CSLBP編碼的手指靜脈特征加密系統(tǒng)有很好的安全性。
本文提出了基于MB-CSLBP編碼的手指靜脈加密方案。該方法彌補了LBP算子的不足,結(jié)合了BCH糾錯碼和SHA-1散列算法對指靜脈圖像進行了加密和解密,得到了很好的結(jié)果。首先,介紹了LBP算子以及MB-CSLBP算子。然后,把得到的手指靜脈的MB-CSLBP二進制編碼作為手指靜脈圖像的特征,與經(jīng)過BCH編碼之后的密結(jié)合,對密進行加密。最后對其進行解密,得到了密長度不同時,加密系統(tǒng)的拒真率和誤識率。實驗結(jié)果表明,密的長度越長,系統(tǒng)的誤識率越低,滿足了系統(tǒng)安全性要求。結(jié)合實驗數(shù)據(jù)和理論數(shù)據(jù)對系統(tǒng)進行分析,結(jié)果表明本文提出的基于MB-CSLBP編碼的手指靜脈加密方案具有很高的魯棒性和安全性。本文僅使用了BCH碼進行編碼,而實際還有幾種糾錯碼可以應(yīng)用于加密,使用多種糾錯碼進行對比實驗是接下來要做的主要工作。