王科俊,曹逸,姜博威,徐怡博,邢向磊
(哈爾濱工程大學(xué) 自動化學(xué)院 黑龍江 哈爾濱 150001)
基于糾錯碼的指靜脈加密算法
王科俊,曹逸,姜博威,徐怡博,邢向磊
(哈爾濱工程大學(xué) 自動化學(xué)院 黑龍江 哈爾濱 150001)
對指靜脈加密算法進(jìn)行整體介紹,并加入糾錯機制,設(shè)計了帶糾錯功能的指靜脈加密算法。利用二進(jìn)制序列發(fā)生器隨機生成一個多項式系數(shù)形式的密鑰,將指靜脈特征點加密,在密鑰恢復(fù)階段用拉格朗日插值來恢復(fù)多項式,并利用循環(huán)冗余校驗碼進(jìn)行校驗,該方法可以找到最精確的密鑰來保證多項式的準(zhǔn)確度。實驗結(jié)果表明:利用帶有糾錯碼的模糊金庫算法很好地實現(xiàn)了指靜脈模板的加密和解密,從而達(dá)到了保護(hù)生物信息安全的要求;通過密鑰長度增長可以提高系統(tǒng)的安全性能。
指靜脈加密;糾錯碼;指靜脈特征點;生物加密;隨機密鑰;模糊金庫算法
生物識別技術(shù)已經(jīng)取代傳統(tǒng)的密碼或ID卡,成為一項方便可靠的驗證人身份的技術(shù)[1]。作為人的身體特征,生物特征(指紋、虹膜、靜脈等)不會被遺忘或丟失,而且很難被偽造[2-3]。一般的生物特征識別方法是從原始樣本中提取出生物特征模板并存儲于模板庫中用于匹配和比對。
因為生物特征不能像密碼或ID卡一樣被更換或復(fù)位,因此可能會帶來嚴(yán)重的安全和隱私問題[4]。一個人的生物特征有限,如果被他人別有用心地竊取到,那么生物特征模板也就會被竊取到,這將會帶來嚴(yán)重的后果。生物特征加密系統(tǒng)的提出解決了上述問題[5]。生物特征加密系統(tǒng)使用加密技術(shù)或其他特定的技術(shù)在加密域生成生物特征加密模板,然后將加密模板存儲到數(shù)據(jù)庫中[6]。這樣的加密過程是不可逆的,即原本的生物特征不能直接從加密模板中得到[7]。
相比于指紋[8]、手形[9]、掌紋[10]等手部特征,采用手指靜脈特征進(jìn)行加密具有獨特的優(yōu)越性。在加密時,采用了Fuzzy Vault(模糊保險箱)方案[11]。首先,用指靜脈的特征模板編碼密鑰;然后,再處理指靜脈的特征模板,將模板以點對的形式混雜在大量的干擾數(shù)據(jù)中。攻擊者很難從混雜的大量數(shù)據(jù)中提取出真實的指靜脈特征,這樣便起到了加密的作用。只有擁有真實樣本的解密者才能成功解密,得到密鑰。
為了更加精確地完成加密和解密生物模板的功能,我們采用帶有循環(huán)冗余檢驗碼的指靜脈密鑰綁定算法。這種算法能夠降低錯誤匹配指靜脈的概率,同時能提高加密的準(zhǔn)確性,降低加密信息被攻擊者破解的概率。
1.1 CRC算法的定義
CRC利用n維實多項式線性空間進(jìn)行編碼[12-13]。任意要處理的二進(jìn)制數(shù)據(jù)都可以寫成一個n階的實多項式:
例如,11001110這個二進(jìn)制數(shù),在實多項式線性空間的表示為
1x7+1x6+0x5+0x4+1x3+1x2+1x1+0
采用CRC算法時,發(fā)送方和接收方利用同一個二進(jìn)制在多項式線性空間進(jìn)行表示。需要使多項式的最高階元素和最低階元素的系數(shù)同時為1。在校驗時,若數(shù)據(jù)幀無錯誤地傳輸,則校驗結(jié)果應(yīng)為零。
CRC校驗可以檢測出所有奇數(shù)個隨機的錯誤和長度小于多項式階數(shù)的錯誤。因此,為了降低誤判的概率,可以采用更高階次的生成多項式。例如,使用CRC-16算法,即采用16 bit的CRC校驗可以保證1 014 bit的碼元中僅有一個未被檢測出錯誤。它的生成多項式為
1.2 CRC校驗碼的算法分析
CRC校驗碼的編碼過程為:首先將要發(fā)送的二進(jìn)制數(shù)在多項式線性空間線性表示為g(x),然后除以xyt(x)生成多項式,最后取余數(shù)y(x)作為CRC校驗碼。具體步驟如下:
將待發(fā)送的m位二進(jìn)制數(shù)在多項式線性空間表示為t(x),設(shè)生成多項式g(x)為r階多項式,在待發(fā)送數(shù)據(jù)的末尾添加r個0,使多項式長度變?yōu)閙+r位,則待發(fā)送數(shù)據(jù)構(gòu)成的新多項式為xyt(x)。
生成多項式g(x)除以多項式xyt(x),取余數(shù)得到一個r-1階次的多項式y(tǒng)(x),即為t(x)的校驗碼。
待發(fā)送數(shù)據(jù)構(gòu)造的新多項式xyt(x)除以2取模再減去y(x),得到xrt′(x)。xrt′(x)系數(shù)就是經(jīng)過CRC編碼的待發(fā)送二進(jìn)制數(shù)據(jù)??梢钥闯?,經(jīng)過CRC編碼后待發(fā)送的數(shù)據(jù)構(gòu)成的任意多項式t(x)被構(gòu)造成了可以被g(x)除盡的多項式xrt′(x)。解碼時只需要用接收到的數(shù)據(jù)生成多項式,并且除以生成多項式g(x),若能整除則證明傳輸?shù)臄?shù)據(jù)正確,反之則有誤。同時,由構(gòu)造xrt′(x)的方法可知,在解碼得到多項式xrt′(x)之后,只需要去掉數(shù)據(jù)尾部的r位二進(jìn)制數(shù),即可還原加密的數(shù)據(jù)。
2.1 指靜脈圖像預(yù)處理
在各種外界因素(例如光線變化等)的影響下,采集到的指靜脈圖像是含有大量噪聲的灰度圖像。噪聲的存在嚴(yán)重干擾了指靜脈識別的準(zhǔn)確性。所以在識別指靜脈圖像之前,要對圖像做濾波等處理,使圖像變得清晰易識別,便于提取指靜脈特征。
指靜脈圖像的預(yù)處理過程一般包括歸一化、方向濾波、圖像增強、細(xì)化等部分。所以在指靜脈特征點提取之前做了必要的圖像預(yù)處理。文中參考其他文獻(xiàn)對指靜脈預(yù)處理的方法[14-15],在提取指靜脈圖像時采用了區(qū)域合并和分水嶺的算法。在經(jīng)過預(yù)處理后,提取指靜脈圖像上的交叉點作為特征點,如圖1所示。
圖1 指靜脈圖像預(yù)處理與特征點提取Fig.1 Finger vain image preprocessing and feature point extraction
2.2 基于糾錯碼的指靜脈加密算法流程圖(如圖2)
圖2 加密流程圖Fig.2 The flow chart of encryption
2.3 基于糾錯碼的指靜脈加密實現(xiàn)方法
在實際應(yīng)用中受各種條件影響,一幅指靜脈圖像可提取出的指靜脈特征點數(shù)量是隨機的。但是,特征點個數(shù)n需要考慮密鑰長度的問題。若n的取值過小,則密鑰的準(zhǔn)確性和安全性均會下降。因此,為保證運算域足夠大,以及考慮到解密的準(zhǔn)確性和保險箱的安全性,運算選擇在有限域GF(216)中進(jìn)行。
節(jié)點用平面坐標(biāo)系中的坐標(biāo)來表示,用M表示指靜脈特征點坐標(biāo)集合,即
式中:li1、li2是第i個指靜脈特征點分別到相鄰兩特征點距離的最大值;θi是兩個距離之間的夾角;Ng是指靜脈特征點的總數(shù)。因為
將ui轉(zhuǎn)換成16 bit的二進(jìn)制串作為加密單元,從而形成特征點集合,即
用m序列發(fā)生器產(chǎn)生192 bit的隨機二進(jìn)制數(shù)作為密鑰,并在多項式線性空間中表示為[16]
式中:a12到a1是將192 bit的二進(jìn)制數(shù)串平分為12個長度為16 bit的二進(jìn)制串;a0是由CRC-16算法產(chǎn)生的,用來進(jìn)行解碼校驗。將所有的ui代入p(u)中,所有的結(jié)果構(gòu)成的集合為
為了保證特征點安全加入雜湊點集合,集合定義為
式中:Nc是雜湊點集合中雜湊點的數(shù)量。雜湊點(xi,yi)不滿足多項式p(u),即yi≠p(xi),?i=1,2,…,Nc。如圖3所示,將雜湊點集合與特征點集合無序地混合在一起就形成了保險箱,即
式中Nc?Ng,這樣可以增加攻擊者破譯的難度和提高密鑰的安全性。
(a) 真實點集合
(b)特征點和雜湊點的集合圖3 特征點和雜湊點的集合Fig.3 The formation of Fuzzy vault
圖4 解密流程圖Fig.4 The flow chart of decryption
2.4 密鑰恢復(fù)
密鑰恢復(fù)階段,解密流程如圖4所示,首先提供指靜脈模板和保險箱,由系統(tǒng)預(yù)處理,從指靜脈模板中提取出用于查詢指靜脈特征點的集合:
Q={(l1q0,l2q0,θ0),(l1q1,l2q1,θ1),…,(l1qN*,l2qN*,θN*)}
假設(shè)在加入雜湊點之后,指靜脈有r個點,t個特征點,生成多項式的階數(shù)為k-1。則暴力破解密鑰和合法拿到密鑰的復(fù)雜性比值為
非合法用戶想要獲得密鑰的難度將會非常大。在理論上對密鑰的保護(hù)是可以達(dá)到非常好的效果的,只有合法用戶使用正確的模板才能獲得正確的密鑰。
若想增加加密的安全性,則需要增加雜湊點M的數(shù)目,M越大,攻擊者需要嘗試的次數(shù)就越多。但同時,由于平面坐標(biāo)區(qū)域有限,并且雜湊點和真實點之間要保持一定距離,限制了雜湊點M的個數(shù)。一般來說,雜湊點的數(shù)目取200~500。
在哈爾濱工程大學(xué)自動化學(xué)院的手指靜脈庫中,選取300幅圖像大小為320×240像素的食指靜脈圖像作為指靜脈圖像訓(xùn)練庫,用于加密。將這300人每人另采集4幅共1 200幅食指圖像,組成驗證庫,用于解密。在點的選擇方面,選取真實點16個,多項式階數(shù)為7~12,雜湊點個數(shù)為200個。實驗結(jié)果如表1和表2所示。
表1 不同多項式階數(shù)下的拒真率(FRR)和誤識率(FAR)
表2 不同密鑰位數(shù)下的拒真率(FRR)和誤識率(FAR)
從表1中可以得到,F(xiàn)RR和FAR隨著多項式階數(shù)的增加而下降,當(dāng)多項式階數(shù)為12時,誤識率為0。
從表2中可以得到,F(xiàn)RR和FAR隨著密鑰長度的增加而下降,當(dāng)密鑰長度為128 bit時,誤識率為0。
從實驗結(jié)果來看,本文加密算法的拒真率略高,但在可接受范圍內(nèi),而誤識率很低,說明此算法安全性很高,能夠很好地防止非法者獲取密鑰。
通過實驗證明,模糊保險箱算法能夠確保模板的安全,并且隨著多項式階數(shù)的增加,識別指靜脈的錯誤率也在降低。為防止多項式次數(shù)的增加導(dǎo)致對指靜脈圖像質(zhì)量要求高而產(chǎn)生錯誤,在算法中引入了CRC碼用來糾錯,從而保證了系統(tǒng)的魯棒性,實現(xiàn)了容錯模糊保險箱算法。
本文介紹了模糊保險箱(fuzzy vault)算法,研究了基于糾錯碼的指靜脈加密算法。首先,對采集到的指靜脈圖像進(jìn)行預(yù)處理,使含有大量噪聲的圖像盡量清晰,易于提取特征;然后,用循環(huán)冗余檢驗碼對指靜脈模板進(jìn)行加密和解密,在MATLAB中通過仿真驗證了算法的可靠性;最后,利用實際實驗,給出了多項式階數(shù)和密鑰長度對誤識率和拒真率的影響,方便針對不同的性能選取多項式和密鑰的長度。
雖然通過模糊保險箱算法得到的結(jié)果符合要求,但該算法仍然有很多需要改進(jìn)的地方:圖像預(yù)處理技術(shù)需要進(jìn)一步提高,以改善得到指靜脈圖像的清晰度;特征點提取和雜湊點的生成有待改善,使提取到的特征點盡量準(zhǔn)確,使雜湊點遠(yuǎn)離真實點的同時防止真實點被提取;該算法對提取到的指靜脈圖像質(zhì)量要求較高,并且該算法時間復(fù)雜度也很高;實驗還存在少量的指靜脈圖像由于質(zhì)量問題導(dǎo)致特征點提取不合格從而造成最后的解密失敗的問題;另外,實驗中的拒真率雖然在可接受的范圍內(nèi),但是仍然略高,導(dǎo)致解密的復(fù)雜度偏高。以上提出的問題也是下一步需要研究并改進(jìn)的地方。
[1]戚文靜,張素,于承新,等.幾種身份認(rèn)證技術(shù)的比較及其發(fā)展方向[J]. 山東建筑工程學(xué)院學(xué)報, 2004, 19(2): 84-87. QI Wenjing, ZHANG Su, YU Chengxin, et al. Developing trend comparison of several authentication techniques[J]. Journal of Shandong university of architecture and engineering, 2004, 19(2): 84-87.
[2]JAIN A, FLYNN P, ROSS A A. Handbook of biometrics[M]. US: Springer, 2008.
[3]符艷軍, 程詠梅, 董淑福, 等. 結(jié)合人臉特征和密碼技術(shù)的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)[J]. 計算機應(yīng)用研究, 2010, 27(2): 737-739. FU Yanjun, CHENG Yongmei, DONG Shufu, et al. Authentication system based on combination[J]. Application research of computers, 2010, 27(2): 737-739.
[4]RATHA N K, CONNELL J H, BOLLE R M. An analysis of minutiae matching strength[M]//BIGUN J, SMERALDI F. Audio-and Video-Based Biometric Person Authentication. Berlin Heidelberg: Springer, 2001: 223-228.
[5]JAIN A K, NANDAKUMAR K, NAGAR A. Biometric template security[J]. EURASIP journal on advances in signal processing, 2008, 2008: 579416.
[6]CHUNG Y, MOON D, LEE S, et al. Automatic alignment of fingerprint features for fuzzy fingerprint vault[M]//FENG Dengguo, LIN Dongdai, YUNG M. Information Security and Cryptology. Berlin Heidelberg: Springer, 2005: 358-369.
[7]ULUDAG U, PANKANTI S, PRABHAKAR S, et al. Biometric cryptosystems: issues and challenges[J]. Proceedings of the IEEE, 2004, 92(6): 948-960.
[8]PERALTA D, TRIGUERO I, SANCHEZ-REILLO R, et al. Fast fingerprint identification for large databases[J]. Pattern recognition, 2014, 47(2): 588-602.
[9]CHAUDHARY D R, SHARMA A. Hand geometry based recognition system[C]//Proceedings of 2012 Nirma University International Conference on Engineering. Ahmedabad, India, 2012: 1-5.
[10]ZHANG D, ZUO Wangmeng, YUE Feng. A comparative study of palmprint recognition algorithms[J]. ACM computing surveys (CSUR), 2012, 44(1): 2.
[11]JUELS A, SUDAN M. A fuzzy vault scheme[C]//Proceedings of 2002 International Symposium on Information Theory. Lausanne, Switzerland, 2002: 408.
[12]張平安. 16位循環(huán)冗余校驗碼(CRC)的原理和性能分析[J]. 山西科技, 2005(5): 123-125. ZHANG Ping’an. An analysis of the principle and performance of 16-bit circulation redundancy check (CRC)[J]. Shanxi science and technology, 2005(5): 123-125.
[13]YANG Bian, CHU Huiguang, LI Guoqiang, et al. Cloud password manager using privacy-preserved biometrics[C]//Proceedings of 2014 IEEE International Conference on Cloud Engineering. Boston, USA, 2014: 505-509.
[14]熊新炎, 王科俊, 賁峴燁, 等. 一種新的近紅外手背靜脈模式骨架提取方法[J]. 哈爾濱工業(yè)大學(xué)學(xué)報, 2008, 40(1): 147-150. XIONG Xinyan, WANG Kejun, BEN Xianye, et al. A new method of near-infrared hand vein pattern skeleton extraction[J]. Journal of Harbin institute of technology, 2008, 40(1): 147-150.
[15]王科俊, 丁宇航, 王大振. 基于靜脈識別的身份認(rèn)證方法研究[J]. 科技導(dǎo)報, 2005, 23(1): 35-37. WANG Kejun, DING Yuhang, WANG Dazhen. A study of hand vein-based identity authentication method[J]. Science & technology review, 2005, 23(1): 35-37.
[16]ULUDAG U, PANKANTI S, JAIN A K. Fuzzy vault for fingerprints[C]//KANADE T, JAIN A, RATHA N K. Audio-and Video-Based Biometric Person Authentication. Berlin Heidelberg: Springer, 2005: 310-319.
[17]馮全, 蘇菲, 蔡安妮. 一種利用多元線性函數(shù)綁定指紋細(xì)節(jié)點與密鑰的新方法[J]. 蘭州大學(xué)學(xué)報: 自然科學(xué)版, 2008, 44(2): 137-141. FENG Quan, SU Fei, CAI Anni. A new method for binding minutiae and cryptographic key using a multivariable linear function[J]. Journal of Lanzhou university: natural sciences, 2008, 44(2): 137-141.
[18]馮全, 蘇菲, 蔡安妮. GRS解碼在Fuzzy Vault中應(yīng)用[J]. 計算機工程與應(yīng)用, 2008, 44(13): 114-116. FENG Quan, SU Fei, CAI Anni. Application of GRS decoding in fuzzy vault[J]. Computer engineering and applications, 2008, 44(13): 114-116.
[19]NANDAKUMA K, JAIN A K, PANKANT S. Fingerprint-based fuzzy vault: implementation and performance[J]. IEEE transactions on information forensics and security, 2007, 2(4): 744-757.
Finger vain encryption algorithm based on an error-correcting code
WANG Kejun, CAO Yi ,JIANG Bowei, XU Yibo,XING Xianglei
(College of Automation,Harbin Engineering University, Harbin 150001,China)
This study presents an overall introduction of a finger vain encryption algorithm. A finger vain encryption algorithm with error correction is then designed by adding an error correction mechanism. This new finger vain encryption algorithm can produce a stochastic key in the form of a multinomial coefficient using a binary system sequencer, an encrypt finger vain, and the Lagrange interpolation value to restore the multinomial during authentication. The accuracy of this algorithm can be ensured using the cyclic redundancy check the code to determine the most accurate key. The experimental results indicate that the fuzzy vault algorithm with error correction can realize well the encryption and decryption of a vein template and meet the requirements of biological information security protection. In addition, the algorithm also indicates that the syste’s safety performance can be enhanced by changing the keys’ length.
finger vain encryption; error correcting code; finger vain minutiae; biometric encryption; random key; fuzzy vault algorithm
王科俊,男,1962年生,教授,博士生導(dǎo)師,學(xué)科帶頭人,主要研究方向為模糊混沌神經(jīng)網(wǎng)絡(luò)、自適應(yīng)逆控制理論、可拓控制、網(wǎng)絡(luò)智能控制、模式識別、多模態(tài)生物特征識別、聯(lián)脫機指紋考試身份鑒別系統(tǒng)、微小型機器人系統(tǒng)。發(fā)表學(xué)術(shù)論文200余篇,出版學(xué)術(shù)專著3部,主審教材2部。
曹逸,女,1993年生,碩士研究生,主要研究方向為模式識別和生物特征識別。
邢向磊,男,1983年生,講師,博士,主要研究方向為多集合度量學(xué)習(xí)和遠(yuǎn)離身份識別工作。
10.11992/tis.201609028
http://kns.cnki.net/kcms/detail/23.1538.TP.20170228.0832.002.html
2016-09-29.
日期:2017-02-28.
國家自然科學(xué)基金面上項目(61573114);黑龍江省自然科學(xué)基金面上項目(F2015033);中央高?;究蒲谢痦椖?(HEUCF160415)
邢向磊. E-mail:xingxl@hrbeu.edu.cn.
TP391.41
A
1673-4785(2017)01-0055-05
王科俊,曹逸,姜博威,等.基于糾錯碼的指靜脈加密算法[J]. 智能系統(tǒng)學(xué)報, 2017, 12(1): 55-59.
英文引用格式:WANG Kejun, CAO Yi, JIANG Bowei,et al. Finger vain encryption algorithm based on an error-correcting code[J]. CAAI transactions on intelligent systems, 2017, 12(1): 55-59.