游 林,楊 玲
(杭州電子科技大學通信工程學院,浙江杭州310018)
隨著全球信息化的日益普及和深化,以及計算機技術(shù)、通信技術(shù)的不斷發(fā)展,信息安全已成為廣為關(guān)注的課題。如何保證信息的機密性、真實性和完整性是信息安全領(lǐng)域的幾個重要課題。模糊金庫算法是一種保護秘密信息的機密性、真實性與完整性的算法。它很好地解決了生物特征的模糊性與密鑰機制的精確性間的問題[1]。模糊金庫算法被首次提出后[2],接著指紋模糊金庫算法被提出[3]。雖然模糊金庫算法實現(xiàn)了在密鑰和用戶身份之間建立聯(lián)系,但是它也存在生物特征模板泄露而造成信息安全的隱患。因為生物特征一旦泄露,就造成永久性地不能恢復的破壞,所以保護生物特征的安全很重要。本文提出了基于雙多項式和雙指紋的改進的模糊金庫算法。
模糊金庫算法定義在有限域Fq上,由上鎖算法、解鎖算法兩部分組成。構(gòu)造模糊金庫:用戶使用多項式p(x)來加密秘密S,然后計算集合A在p(x)上的投影。集合A可以是用戶的生物特征信息,如用戶的指紋、掌紋、虹膜和指靜脈等。為了隱藏投影后得到的真實點,隨機加入大量的干擾點構(gòu)成模糊金庫。其中干擾點的數(shù)目遠多于真實點的數(shù)目,這樣可以更好地隱藏集合A。解鎖模糊金庫:用戶使用集合B解鎖金庫。如果集合B與集合A的大部分元素都重合,那么集合B中就有許多點落在多項式p(x)上,通過拉格朗日插值可以重構(gòu)出p(x),從而獲得秘密S。
為了解決模糊金庫方案存在的密鑰長度決定多項式的冪次,繼而影響密鑰安全性的問題,指定多項式冪次的方法[4]被提出了。通過實驗證明此方案可以使錯誤接受率為0,錯誤拒絕率控制在可接受的范圍內(nèi)。但是它的多項式冪次較高,收斂性差,計算復雜并且密鑰恢復速度慢。不同的生物特征進行融合可以更好地保護密鑰,因此將指紋特征與掌紋特征或者與虹膜融合構(gòu)成模糊金庫[5、6]的方案被提出了。此方案加大了攻擊者攻破模糊金庫獲得密鑰的難度,但是不能避免攻擊者通過交叉比較的方法獲得密鑰,一旦攻擊者成功攻破模糊金庫,用戶的生物特征就失去了使用價值。因此,需要提出相應(yīng)的方案來克服模糊金庫的這些缺點。
有關(guān)研究表明,指紋具有唯一性和穩(wěn)定性。世界上每個人的指紋都不一樣,即兩個人之間不存在相同的指紋,并且每個人的指紋都是相當穩(wěn)定和固定的,幾乎不發(fā)生變化。所以指紋識別是目前應(yīng)用最廣泛的身份識別技術(shù)。指紋也常被應(yīng)用在模糊金庫中,形成指紋模糊金庫方案,但是,大多數(shù)模糊金庫方案只采用一個指紋來綁定密鑰,相當于給秘密密鑰設(shè)置了一把鎖。因為本方案采用了兩個多項式來綁定密鑰,所以相應(yīng)地采用兩個指紋來給秘密密鑰上鎖:(1)相當于給密鑰上了兩把鎖,加強了秘密密鑰的安全性;(2)可以解決密鑰長度決定多項式冪次的問題;(3)可以克服大多數(shù)現(xiàn)有模糊金庫方案中存在的交叉比較問題。
根據(jù)資料顯示,只有當用到不少于12個指紋細節(jié)點時,系統(tǒng)才算是安全的。因此,選用兩個多項式,每個多項式的系數(shù)由密鑰、隨機數(shù)和校驗值組成,這樣可以使得指紋細節(jié)點達到所需的最少數(shù)目。若取密鑰為128 bit,指紋細節(jié)點數(shù)為12,則需要構(gòu)造:
首先,把128 bit的密鑰從高位到低位依次分成8段,則每段為16 bit。其中前4段作為多項式f1(x)的前4個系數(shù)(a5,a4,a3,a2)。后4段為f2(x)的前4個系數(shù)(b5,b4,b3,b2)。再生成兩個隨機數(shù),分別作為 a1、b1。最后,(a5,a4,a3,a2)和(b5,b4,b3,b2)的校驗值分別為 a0和 b0(其中 a0=a5⊕a4⊕a3⊕a2,b0=b5⊕b4⊕b3⊕b2)。此時多項式的系數(shù)構(gòu)造好了。
在實現(xiàn)提出的方案時,僅考慮指紋細節(jié)點的坐標位置(x,y)信息而忽略其它相關(guān)的信息。其中秘密綁定與密鑰釋放分別如圖1、2所示。
圖1 密鑰綁定
圖2 密鑰釋放
密鑰綁定時,首先提取用戶的兩個不同指紋的細節(jié)特征點集合feature1={(x1i,y1i)|i=1,2,…,n1}和feature2={(x2i,y2i)|i=1,2,…,n2}。然后從feature1中選取12個細節(jié)點通過多項式f1(x)映射,得到相應(yīng)的真實點集合A1={(x1ti,y1ti)|i=1,2,…,12}。同樣由細節(jié)點集合feature2得到真實點集合A2={(x2ti,y2ti)|i=1,2,…,12}。再生成干擾點集合B={(ai,bi)|i=1,2,…,n}(其中 n 遠遠大于 24 且bi既不在f1(x)上,也不在f2(x)上)。最后把A1,A2,B合并為模糊金庫:Cvault=A1∪A2∪B。這樣原始密鑰Key就隱藏在集合Cvault中。密鑰釋放時,首先對訪問用戶的兩個指紋樣本進行預處理,然后分別提取細節(jié)點集合 Aq1={(xq1i,yq1i)|i=1,2,…,m1}和 Aq2={(xq2i,yq2i)|i=1,2,…,m2}。然后由集合Aq1和Aq2分別從模糊金庫Cvault中匹配出真實點集合和再分別從集合和中任意選取6個真實點,通過拉格朗日插值多項式來重構(gòu)多項式f1(x)和f2(x)。只要集合Aq1與A1、集合Aq2與A2中元素大部分能重合,兩個多項式就能成功重構(gòu),從而用戶能獲得原始密鑰Key。
為了驗證本文提出方法的性能,在中科院自動化指紋數(shù)據(jù)庫UPEK-part1(含有100個指紋,每個指紋有12幅指紋圖像)上應(yīng)用VC++工具進行編程實驗。因為需要兩個指紋生成模糊金庫,所以把數(shù)據(jù)庫中每兩個指紋作為一組。每組指紋圖像中選擇細節(jié)點數(shù)目最多的指紋圖像作為候選模板,每組指紋有兩個候選模板。從這兩個候選模板中分別隨機地選取12個細節(jié)點作為最終模板,其余指紋圖像則視為訪問指紋對已生成的模糊金庫進行訪問。對于每組指紋模板生成的模糊金庫,由真實點和200個干擾點共同組成。如圖3所示的實驗結(jié)果可以看出,只要提供有效的指紋細節(jié)點,被保護的密鑰就可成功地釋放出來。
圖3 密鑰綁定與釋放
應(yīng)用實驗數(shù)據(jù)庫中的指紋重復密鑰綁定和密鑰釋放的實驗,并統(tǒng)計實驗結(jié)果可以統(tǒng)計出相應(yīng)的錯誤接受率和錯誤拒絕率。應(yīng)用本文算法和文獻7方案分別進行實驗,實驗結(jié)果表明其錯誤接受率都為0,而錯誤拒絕率分別為30.256%和20.127%。文獻7需要兩個指紋分別從對應(yīng)的模糊金庫中恢復出其綁定的密鑰,只有當兩個指紋都能成功地恢復出其對應(yīng)的密鑰時,原始的密鑰才能成功地恢復出來。由于同一指紋的不同圖像存在偏差,所以在沒有真實指紋的情況下,隨機用兩個假冒的指紋去恢復隱藏在兩個模糊金庫中的密鑰的難度相當大,理論上兩種方法的錯誤接受率為0。文獻7方案的指紋模板是用全部的指紋細節(jié)點構(gòu)成的,而本文算法的指紋模板是由兩個指紋的部分指紋細節(jié)點共同構(gòu)成的,并且本文算法的多項式的冪次比文獻7的高,所以解密時用到的真實點數(shù)要多。相對而言,本文算法要從較少真實點的候選集中找出較多的真實點,而文獻7的方案是從較多真實點的候選集找出較少的真實點,所以文獻7方案用真實查詢指紋從對應(yīng)的模糊金庫中匹配出足夠真實點的可能性比本文算法要高。雖然本文算法的錯誤拒絕率較高,但是它的安全性比文獻7方案高。
本文提出的方法通過兩個多項式對密鑰進行綁定,解決了大多數(shù)現(xiàn)有方法加密長度較短的密鑰時安全性不足的問題。每個多項式對應(yīng)一個指紋,且每個指紋只有部分細節(jié)點在模板上,這樣來實現(xiàn)指紋模板的可撤銷性及模糊金庫的可撤銷性。實驗過程中發(fā)現(xiàn),少量指紋圖像由于質(zhì)量較差或部分殘缺,提取的細節(jié)點位置和數(shù)目不能滿足解密要求,導致了解密失敗,下一步的工作將致力于解決這類指紋圖像的解密問題。
[1] 鄒迎春.基于ECC的指紋身份認證系統(tǒng)[J].計算機安全,2010,7(6):19-21.
[2] Juels A,Sudan M.A Fuzzy Vault Scheme[C].Lausanne:International Symposium on Information Theory,2002:237 -257.
[3] Uludag U,Jain A.Securing fingerprint template:Fuzzy vault with helper data[C].New Jersey:Proc of the 2006 Conf on Computer Vision and Pattern Recognition Workshop,2006:163-165.
[4] 鄧見光,袁華強.基于FuzzyVault方案的指紋細節(jié)特征加密[J].計算機工程與設(shè)計,2010,10(4):720-723.
[5] Brindha V E.Biometric template security using fuzzy vault[C].Tamil Nadu:2011 IEEE 15th International Symposiums on Consumer Electronics,2011:384 -387.
[6] Nandakumar K,Jain A K.Multibiometric Template Security Using Fuzzy Vault[C].New York:2nd IEEE International Conference on Biometrics and Systems,2008:1 -6.
[7] Dao V H,Tran Q D,Nguyen T H L.A Multibiometric Encryption Key Algorithm Using Fuzzy Vault to Protect Private Key in BioPKI Based Security System[C].Vietnam:2010 IEEE RIVF International Conference on Computing and Communication Technologies,2010:1 -6.