王科俊,曹逸,邢向磊
(哈爾濱工程大學(xué) 自動(dòng)化學(xué)院, 黑龍江 哈爾濱 150001)
由于如手指靜脈、指紋、虹膜等生物特征具有不易被偽造、唯一性且不易丟失等特性[1-2],基于生物特征的識(shí)別技術(shù)目前已經(jīng)是一項(xiàng)可靠的、可以替代傳統(tǒng)密碼識(shí)別的普及的技術(shù)[3-4]。
然而正因?yàn)樯锾卣鞯奈ㄒ恍院筒蛔冃裕乙粋€(gè)人的生物特征有限,一旦丟失就是永久丟失導(dǎo)致了安全和隱私方面的問題[5],生物特征模板被竊取將會(huì)帶來比傳統(tǒng)身份識(shí)別丟失密碼更為嚴(yán)重的后果,由此提出了生物特征加密系統(tǒng)的概念[6-7],該系統(tǒng)將被加密技術(shù)或其他特定的技術(shù)加密過的生物特征模板存儲(chǔ)到數(shù)據(jù)庫中[8],這種不可逆的加密過程可以使非法用戶無法直接從加密模板中得到原本的生物特征[9-10]。
手指靜脈特征具有其他手部特征(如指紋[11]、手形[12]、掌紋[13]等)不具有的獨(dú)特的優(yōu)越性:1)非活體無法采集到靜脈,所以更安全;2)手指內(nèi)部的靜脈不受到皮膚表面狀況的影響,且十根手指均可以用于特征提取,靈活性高;3)靜脈特征并不會(huì)如人臉一樣受年齡影響,而且靜脈紋路比指紋清晰,對(duì)相機(jī)的分辨率要求低于指紋特征采集;4)非接觸采集可防止細(xì)菌傳播且采集設(shè)備體積小,采集成本較低且易于被大眾接受。
由于靜脈識(shí)別在生物特征識(shí)別方面是后起之秀,盡管其具有良好性能,但是對(duì)其研究尚沒有像指紋識(shí)別那樣深入,目前對(duì)手指靜脈加密的研究則是剛剛起步,公開發(fā)表的論文只有我們課題組提出的基于糾錯(cuò)碼和細(xì)節(jié)點(diǎn)提取的指靜脈加密算法[14],該算法依賴于靜脈圖像的細(xì)節(jié)點(diǎn),對(duì)圖像質(zhì)量要求較高,而在寒冷天氣下由于手指冰涼,導(dǎo)致采集到的靜脈圖像對(duì)比度低,靜脈不清晰就難以提取有效特征點(diǎn),致使這種加密方案失效。而局部二進(jìn)制編碼(LBP)直接針對(duì)灰度圖像進(jìn)行編碼提取圖像的紋理特征的方法對(duì)圖像的質(zhì)量要求不高,而模糊承諾(fuzzy commitment)加密方案直接使用二進(jìn)制編碼,便于與 LBP相結(jié)合,能夠給出有效、簡(jiǎn)單快捷的指靜脈加密方法。
基于上述考慮本文提出了對(duì)指靜脈圖像采用多尺度塊中心對(duì)稱局部二進(jìn)制編碼(MB-CSLBP)和模糊承諾相結(jié)合的手指靜脈加密算法。
模糊承諾方案作為一種傳統(tǒng)的加密方法,雖然加解密過程與其他方法相比而言更為簡(jiǎn)便,但是其效果卻很好, 因此我們提出將模糊承諾方案與手指靜脈的局部二進(jìn)制模式相結(jié)合,研究相關(guān)的手指靜脈加密算法。局部二進(jìn)制模式(local binary patem)是由Ojala等[15]提出的一種能有效地描述圖像的紋理特征的紋理描述算子。紋理特征是對(duì)光照、姿態(tài)、背景或者成像等條件因素變化不敏感的圖像固有屬性,因此很適用于手指靜脈特征提取。在改進(jìn)的多尺度塊中心對(duì)稱的局部二進(jìn)模式( MB- CSLBP)算法的基礎(chǔ)上, 利用提取出的二進(jìn)制編碼作為指靜脈特征數(shù)據(jù),在模糊承諾方案的框架上結(jié)合 BCH編碼和 SHA-1安全散列算法對(duì)密進(jìn)行加密。
LBP基本思想:在一個(gè)3×3的窗口中依次比較中心點(diǎn)像素灰度值與其相鄰的8個(gè)點(diǎn)的灰度值,若該鄰域位置點(diǎn)的灰度值小則將該像素點(diǎn)置為0,否則置為1,從左上角像素點(diǎn)的位置起依次順時(shí)針(或逆時(shí)針)賦權(quán)值并與對(duì)應(yīng)二進(jìn)制數(shù)(0或1)相乘,再依次相加得到這個(gè)3×3窗口中心像素點(diǎn)的 LBP特征值,計(jì)算公式為

如圖1所示,一個(gè)3×3的窗口區(qū)域中中心像素點(diǎn)的灰度值為67,把該值與鄰近的8個(gè)像素點(diǎn)比較大小,順時(shí)針得到一個(gè)8位的二進(jìn)制串01011001。

圖 1 LBP算子編碼過程Fig. 1 The encoding process of LBP
LBP算子具有以下幾個(gè)顯著優(yōu)點(diǎn):1)該算子原理簡(jiǎn)單、運(yùn)算簡(jiǎn)潔,且計(jì)算復(fù)雜度遠(yuǎn)低于離散小波變換、傅里葉變換等;2)LBP二進(jìn)制編碼是由中心像素點(diǎn)和鄰近像素點(diǎn)灰度值比較得到的,這種對(duì)圖像紋理特征的描述方法對(duì)圖中的亮暗點(diǎn)和邊緣點(diǎn)等細(xì)節(jié)特征的描述能力較強(qiáng),符合靜脈特征提取的需求;3)基于傳統(tǒng)子空間的方法,如ICA(獨(dú)立成分分析)、LDA(線性判別分析)、PCA(主成分分析)等均需要進(jìn)行數(shù)據(jù)訓(xùn)練,而LBP提取到的二進(jìn)制碼或直方圖向量不需要,因此便于推廣。
雖然LBP算子運(yùn)算簡(jiǎn)潔、原理簡(jiǎn)單、紋理特征描述能力強(qiáng),但該算子在具體應(yīng)用中仍存在很多問題,如以下幾個(gè)方面:
1) LBP二進(jìn)制特征編碼模式過多:在一個(gè)大小為3×3的窗口中求得的LBP編碼特征是一個(gè)8位的二進(jìn)制數(shù),所以對(duì)應(yīng)的紋理模式有28=256種。雖然越多的紋理模式中提取的紋理細(xì)節(jié)也越多,但過多的特征模式會(huì)降低LBP紋理描述的分辨能力,且并不是所有的紋理細(xì)節(jié)都對(duì)圖像信息的描述貢獻(xiàn)很大,其中有許多可以被舍棄的紋理特征。
2) LBP算子對(duì)劇烈噪聲和光照的魯棒性差:由于LBP碼值是由兩個(gè)單像素點(diǎn)的比較所得,因此劇烈光照和噪聲會(huì)影響相鄰像素的大小比較結(jié)果,從而會(huì)產(chǎn)生不同的LBP模式,如圖2所示。

圖 2 噪聲對(duì)LBP算子的影響Fig. 2 The impact of noise on LBP operator
圖2(a)和圖2(b)分別表示原始圖像和加入噪聲后的圖像,對(duì)大小為3×3的區(qū)域采用LBP算子提取特征編碼。圖2(a)中閾值為中心像素值67,得到LBP編碼值10010101,對(duì)應(yīng)特征值149。圖2(b)加入噪聲后閾值中心像素值64,得到LBP編碼值11010001,對(duì)應(yīng)特征值209。圖2(a)和圖2(b)本是同一紋理特征,但由于LBP編碼值不同故而認(rèn)為二者是不同紋理,由此可見LBP算子對(duì)噪聲和光照很敏感。
3) LBP算子對(duì)圖像拓?fù)渥兓?如旋轉(zhuǎn)變化等)的魯棒性差如圖3所示。
采用窗口大小為3×3的LBP算子對(duì)原始圖像(圖3(a))和原圖旋轉(zhuǎn)90°后的圖像(圖3(b))進(jìn)行特征提取的過程。圖3(a)與圖3(b)中閾值均為3,但圖3(a)的LBP編碼值為10100110,對(duì)應(yīng)特征值166。圖3(b)的LBP編碼值為10101001,對(duì)應(yīng)特征值169。雖然是同一個(gè)紋理卻被認(rèn)為是不同的,由此可見LBP算子對(duì)圖像拓?fù)渥兓聂敯粜暂^差。

圖 3 拓?fù)渥兓瘜?duì)LBP算子的影響Fig. 3 The impact of topological changes on LBP operator
4)當(dāng)采用LBP直方圖作為特征向量時(shí),模式種類過多,過高的直方圖維數(shù)會(huì)增大計(jì)算量,且總特征點(diǎn)數(shù)是一定的,使得每種模式特征點(diǎn)數(shù)少,從而失去了統(tǒng)計(jì)意義降低了識(shí)別率。
5)一般的LBP算子對(duì)局部區(qū)域像素點(diǎn)做的是稀疏采樣[15],雖采用了雙線性差值方法來計(jì)算沒有落到像素點(diǎn)上的鄰域點(diǎn)的灰度值,但采樣過程仍不穩(wěn)定[19]。
6)專注于圖像鄰域間的紋理特征的LBP算子沒有考慮到圖像局部紋理間的聯(lián)系,并不能有效地處理大型復(fù)雜的紋理特征。
因此應(yīng)當(dāng)針對(duì)以上幾點(diǎn)做出某方面性能上的改進(jìn),也需要結(jié)合實(shí)際應(yīng)用使LBP算子能夠得到具有鮮明特征的紋理信息,解決實(shí)際具體的問題。
1.2.1 中心對(duì)稱局部二進(jìn)制模式
中心對(duì)稱局部二進(jìn)制模式(center-symmetric local binary pattern,CSLBP)的基本思想是基于LBP模式,對(duì)關(guān)于中心點(diǎn)對(duì)稱的一對(duì)像素灰度值做對(duì)比,得到的二進(jìn)制串長(zhǎng)度是基本LBP算子的一半[20],減小了需要的存儲(chǔ)空間,CSLBP算子計(jì)算方法如式(3):

如圖4中將閾值T置為2,依次比較3×3的窗口區(qū)域內(nèi)關(guān)于中心對(duì)稱的4對(duì)像素點(diǎn)的灰度差值,小于閾值T時(shí)相應(yīng)位置置0,否則置1,得到CSLBP碼值1011。

圖 4 CSLBP算子的編碼過程Fig. 4 The encoding process of CSLBP
1.2.2 多尺度塊中心對(duì)稱局部二進(jìn)制模式(MBCSLBP)
LBP算子和CSLBP算子計(jì)算簡(jiǎn)單且可以描述圖像的微觀結(jié)構(gòu)特征,但由于二者均是對(duì)圖像單個(gè)像素點(diǎn)做對(duì)比,對(duì)噪聲和拓?fù)渥兓聂敯粜圆睿瑹o法描述圖像宏觀結(jié)構(gòu)特征,影響了識(shí)別率。多尺度塊中心對(duì)稱局部二進(jìn)模式(multi-scale block center- symmetric local binary pattern)[21]用像素塊區(qū)域的平均灰度值代替CSLBP算子中的單個(gè)像素點(diǎn)的灰度值進(jìn)行編碼的求取,MB-CSLBP算子比LBP算子占用存儲(chǔ)空間更小、受到噪聲的影響更小,同時(shí)該算子可同時(shí)提取圖像的微觀結(jié)構(gòu)和宏觀結(jié)構(gòu)的特征,可以減小圖像宏觀特征信息的損失,完整表達(dá)圖像的信息可增強(qiáng)分類效果,彌補(bǔ)了1.1節(jié)中的LBP算子的不足。
MB-CSLBP算子的計(jì)算如式(4):

如圖5所示,當(dāng)閾值T=0時(shí),依次比較關(guān)于中心正方形區(qū)域?qū)ΨQ的兩個(gè)正方形區(qū)域的灰度值之和得到二進(jìn)制編碼0001,特征值為1。

圖 5 MB-CSLBP算子的編碼過程Fig. 5 The encoding process of MB-CSLBP
模糊承諾方案是利用糾錯(cuò)碼的容錯(cuò)能力,在基于漢明距離的度量空間內(nèi)將生物特征信息和糾錯(cuò)碼技術(shù)相結(jié)合的一種密綁定方案。
因?yàn)镸B-CSLBP編碼是長(zhǎng)度固定的而本文使用的BCH編碼是一種變長(zhǎng)數(shù)字編碼,便于在整個(gè)加密解密的過程中進(jìn)行處理,因此,可以發(fā)現(xiàn)基于MB-CSLBP的二進(jìn)制手指靜脈特征編碼非常適合于模糊承諾方案的應(yīng)用。
在模糊承諾方案中,需要用到密碼學(xué)中有關(guān)的知識(shí)和方法,因此首先介紹在本節(jié)中需要用到的BCH碼以及SHA-1安全散列算法的相關(guān)內(nèi)容。
2.1.1 BCH碼
自1959年發(fā)展起來的BCH碼(Bose、Ray-Chaudhuri、Hocquenghem)是一種能糾正多位錯(cuò)誤的循環(huán)碼[22]。這種用來校正多個(gè)隨機(jī)錯(cuò)誤的循環(huán)、多級(jí)、變長(zhǎng)數(shù)字編碼在編碼理論尤其是糾錯(cuò)碼方面中被廣泛地研究和應(yīng)用。
BCH碼的編碼與解碼是建立在有限域的域論和多項(xiàng)式基礎(chǔ)上的。在編碼過程中還可以構(gòu)建一個(gè)檢測(cè)多項(xiàng)式,此多項(xiàng)式用于在接受端對(duì)接受到的碼字進(jìn)行檢測(cè),看是否有錯(cuò)誤。以基于有限域構(gòu)建一個(gè)能夠檢測(cè)并校正兩個(gè)錯(cuò)誤的BCH碼為例。若是的一個(gè)根,由于將代入可得

BCH碼的解碼過程:
2)計(jì)算錯(cuò)誤定位多項(xiàng)式;
3)解多項(xiàng)式,得到錯(cuò)誤位置;
4)計(jì)算非 BCH 碼的錯(cuò)誤位置的誤差值。
2.1.2 SHA-1安全散列算法
1993年美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)協(xié)會(huì)提出SHA算法,這種數(shù)據(jù)加密算法[23]被定義為安全散列標(biāo)準(zhǔn)。多年來SHA算法經(jīng)過了一系列的完善并被廣泛應(yīng)用到各個(gè)方面,成為了世界公認(rèn)的最安全的散列算法之一。SHA算法的主要思想:將明文以某種不可逆的變換化為長(zhǎng)度更短的一段密文,簡(jiǎn)言之,就是把一段輸入碼(預(yù)映射或信息)轉(zhuǎn)換位數(shù)固定且短的輸出序列(散列值或信息摘要)的過程。
1994年,對(duì)SHA算法的一個(gè)未被公開的缺陷進(jìn)行了糾正得到了SHA-1算法。該算法要求接收的輸入文檔大小小于264bit,并產(chǎn)生160 bit的報(bào)文摘要[24]。在SHA-1安全散列算法中,不存在一個(gè)文本可使得其散列值與已知文本的散列值相等,舉例來說就是如果A對(duì)應(yīng)散列值,理論上來講不會(huì)找到一個(gè)B可使其散列值滿足,找到滿足上述條件且有特定內(nèi)容的文檔更是難上加難,依次打成SHA-1安全散列算法的目的。
基于MB-CSLBP的手指靜脈特征加密,是在經(jīng)過MB-CSLBP算子編碼之后,把得到的二進(jìn)制編碼作為手指靜脈圖像的特征與經(jīng)過BCH編碼的密結(jié)合,對(duì)密進(jìn)行加密。
加密階段的具體步驟如圖6。

圖 6 基于MB-CSLBP手指靜脈特征加密流程Fig. 6 The encryption process of finger vein feature based on MB-CSLBP
1)將注冊(cè)階段的手指靜脈圖像進(jìn)行尺寸歸一化為96×64。利用式(4)中的MB-CSLBP算子對(duì)圖像進(jìn)行編碼,其中取像素塊正方形區(qū)域的邊長(zhǎng),這樣我們會(huì)得到一個(gè)長(zhǎng)度為448位的手指靜脈二進(jìn)制特征編碼,在后面附上一定數(shù)量的0,使其長(zhǎng)度變?yōu)?11位,這個(gè)511位二進(jìn)制編碼就是最終的手指靜脈特征編碼,記為fvcode。
解密階段步驟如圖7。

圖 7 基于MB-CSLBP手指靜脈特征解密流程Fig. 7 The decryption process of finger vein feature based on MB-CSLBP
1)與加密階段一樣將用于解密的手指靜脈圖像進(jìn)行尺寸歸一化處理并用MB-CSLBP算子從圖像中提取出用于解密的手指靜脈特征編碼。2)將與做異或運(yùn)算得二元序列,再對(duì)進(jìn)行BCH解碼得到待檢驗(yàn)密。對(duì)通過SHA-1安全散列算法進(jìn)行哈希變換得到哈希值并與之前保存的注冊(cè)密的哈希值比較,若,說明得到的密就是用于加密的密,解密成功。否則,解密失敗。
哈爾濱工程大學(xué)指靜脈庫包含105人每人5幅,共525幅大小為320像素×240像素的食指靜脈圖像,其中每人1幅共105幅作為指靜脈圖像訓(xùn)練庫,用于加密,每人另4幅共420幅圖像作為驗(yàn)證庫,用于解密。使用BCH糾錯(cuò)編碼來更正類內(nèi)變化,加密系統(tǒng)的性能取決于密長(zhǎng)度和糾錯(cuò)位數(shù)。為了比較不同的密長(zhǎng)度對(duì)系統(tǒng)性能的影響,我們產(chǎn)生長(zhǎng)度不同的密,用BCH編碼對(duì)這些密分別進(jìn)行處理,計(jì)算不同情況下的拒真率和誤識(shí)率,計(jì)算結(jié)果記錄在表1中。

表 1 不同密鑰位數(shù)下的拒真率(FRR)和誤識(shí)率(FAR)Table 1 FRR and FAR of different keys
1)若非法用戶嘗試使用多張手指靜脈圖像來嘗試攻擊系統(tǒng),由于錯(cuò)誤接受率為0.47%,那么非法用戶需要至少嘗試使用213(1/0.47%)張不同的手指靜脈圖像對(duì)系統(tǒng)進(jìn)行攻擊,在短時(shí)間內(nèi)一般不可能找到這么多張不同的手指靜脈圖像。
2)若非法用戶嘗試直接生成手指靜脈特征編碼從而攻擊系統(tǒng)的話,對(duì)于一個(gè)511 b,容錯(cuò)位數(shù)為24 b的編碼,需要生成487 b的正確序列才能成功,此概率為2–487,這是不太可能的。
4)若非法用戶想要通過生成SHA-1散列編碼反求出正確的密來攻擊系統(tǒng),因?yàn)樯⒘芯幋a的長(zhǎng)度為128 b,所以生成正確密的概率為2–128,這幾乎是不可能做到的。
通過結(jié)合實(shí)驗(yàn)數(shù)據(jù),我們對(duì)不同的可能存在的非法用戶的攻擊嘗試進(jìn)行了可行性的分析,不管是哪一種攻擊方式,想要成功攻擊系統(tǒng)在一定程度上來說都是不可能的,也充分說明了基于MB-CSLBP編碼的手指靜脈特征加密系統(tǒng)有很好的安全性。
本文提出了基于MB-CSLBP編碼的手指靜脈加密方案。該方法彌補(bǔ)了LBP算子的不足,結(jié)合了BCH糾錯(cuò)碼和SHA-1散列算法對(duì)指靜脈圖像進(jìn)行了加密和解密,得到了很好的結(jié)果。首先,介紹了LBP算子以及MB-CSLBP算子。然后,把得到的手指靜脈的MB-CSLBP二進(jìn)制編碼作為手指靜脈圖像的特征,與經(jīng)過BCH編碼之后的密結(jié)合,對(duì)密進(jìn)行加密。最后對(duì)其進(jìn)行解密,得到了密長(zhǎng)度不同時(shí),加密系統(tǒng)的拒真率和誤識(shí)率。實(shí)驗(yàn)結(jié)果表明,密的長(zhǎng)度越長(zhǎng),系統(tǒng)的誤識(shí)率越低,滿足了系統(tǒng)安全性要求。結(jié)合實(shí)驗(yàn)數(shù)據(jù)和理論數(shù)據(jù)對(duì)系統(tǒng)進(jìn)行分析,結(jié)果表明本文提出的基于MB-CSLBP編碼的手指靜脈加密方案具有很高的魯棒性和安全性。本文僅使用了BCH碼進(jìn)行編碼,而實(shí)際還有幾種糾錯(cuò)碼可以應(yīng)用于加密,使用多種糾錯(cuò)碼進(jìn)行對(duì)比實(shí)驗(yàn)是接下來要做的主要工作。