一種基于指紋特征與有限乘法群的共享模糊金庫方法
【專利摘要】本發(fā)明涉及一種基于指紋特征與有限乘法群的共享模糊金庫方法。現(xiàn)有方法存在雙方需要存儲不同的模糊金庫的問題。本發(fā)明中的共享信息產(chǎn)生階段:通過變換雙方指紋信息,利用指定交換方法得到共享信息。共享密鑰綁定階段:指紋信息變換后交換產(chǎn)生的共享信息與經(jīng)Diffie-Hellman密鑰交換協(xié)議產(chǎn)生的共享密綁定產(chǎn)生共享迷糊金庫。共享密鑰釋放階段:通過變換雙方指紋信息再次構(gòu)造出共享信息,解鎖模糊金庫,恢復(fù)出共享密鑰。本發(fā)明利用指紋模糊金庫算法保護(hù)共享秘鑰的同時,將模糊金庫減少到一個,并只有通過驗(yàn)證的雙方才能將綁定在共享指紋模糊金庫中的共享秘鑰釋放,使本發(fā)明具有更好的安全性。
【專利說明】一種基于指紋特征與有限乘法群的共享模糊金庫方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于模式識別和密碼學(xué)【技術(shù)領(lǐng)域】,具體涉及有限乘法群上Diffie-Hellman 密鑰交換方案與自動對齊的共享指紋模糊金庫方案。
【背景技術(shù)】
[0002] Diffie-Hellman密鑰交換方案是一種密鑰協(xié)議。Diffie-Hellman密鑰交換方案是 一種建立共享密鑰的方法,而不是加密方法。然而,Diffie-Hellman密鑰交換方案交換技術(shù) 允許雙方在沒有對方的先驗(yàn)知識的情況下,共同建立了一個可以用于加密、進(jìn)一步的密鑰 管理或其他的加密方式的共享秘密密鑰。安全地存儲密鑰是最重要的步驟之一。一般,密 鑰被存儲在用戶的計算機(jī)、智能卡或其他媒介中。雖然這些媒介都可以通過設(shè)置用戶口令 保護(hù)媒介中的密鑰,但用戶的口令可以被窮舉搜索攻擊獲得。存儲媒介有丟失或被盜風(fēng)險。
[0003] 在 2002 年 A.Juels 和 M. Sudan 提出了 "A Fuzzy Vault Scheme"。在她們提出的 模糊金庫算法中,將用戶唯一的集合A混合用戶的密鑰進(jìn)入基于Reed-So 1 omn的金庫中。用 戶可以利用與集合A有絕大多數(shù)元素相同的集合B恢復(fù)出密鑰。在2005年Yongwha Chung 等人提出了 "Automatic Alignment of fingerprint Features for Fuzzy Fingerprint Vault ",在他提出的方案中,利用幾何哈希技術(shù)對指紋特征進(jìn)行自動校準(zhǔn)。
[0004] 基于Yongwha Chung等人的自動對齊的指紋模糊金庫方案的思想,模糊金庫方案 可以用于保護(hù)共享密鑰。此時密鑰交換新型方法的密鑰安全是基于離散對數(shù)問題的難解性 及用戶生物特征未泄露。
【發(fā)明內(nèi)容】
[0005] 在真實(shí)可靠的實(shí)驗(yàn)條件下,本發(fā)明提供了一套實(shí)用化的一種基于指紋特征與有限 乘法群上密鑰交換協(xié)議的共享模糊金庫方法。
[0006] -種基于指紋特征與有限乘法群上密鑰交換協(xié)議的共享模糊金庫方法包括構(gòu)造 出共享信息,并利用共享信息綁定共享密鑰生成一個共享指紋模糊金庫階段和共享指紋模 糊金庫釋放階段。
[0007] 1.所述的一種新的方式來交換兩個用戶的相關(guān)信息,構(gòu)造共享信息,并利用共享 信息綁定共享密鑰得到共享指紋模糊金庫階段具體如下 :
[0008] 1. 1.假設(shè)用戶A和用戶B利用Diffie-Hellman密鑰交換產(chǎn)生共享密鑰,具體做法 如下(以下所有操作都是在有限乘法群G = F/上進(jìn)行的,g為G中的生成元;&表示伽羅 瓦域,P為大素數(shù)):
[0009] 1. 1. 1.用戶A秘密選定隨機(jī)自然數(shù)a e G,計算a = ga mod p ;將α發(fā)給用戶B。
[0010] 1. 1. 2.用戶Β秘密選定隨機(jī)自然數(shù)b e G,計算β = gb mod ρ ;將β發(fā)給用戶A。
[0011] 1· 1· 3.用戶 A 計算(gb)a mod p,然后清除 a。
[0012] 1. 1. 4.用戶 B 計算(ga)b mod p,然后清除 b。
[0013] 1.1.5.用戶A和用戶B得到的共享密鑰k = H(gab mod p),其中Η(·)是一個哈 希函數(shù)其輸出長度固定為128比特,即共享密鑰k長度為128比特。
[0014] 由于a和b是保密的,所以即使攻擊者知道了 p,g,α,β,也很難獲得用戶A和用 戶B的共享密鑰k。
[0015] 1.2.用戶A和用戶B利用共享密鑰k構(gòu)造多項(xiàng)式P(x),首先使用CRC循環(huán)冗余校 驗(yàn)碼為k添加16比特作為校驗(yàn)碼得到。,然后將。等分為9段作為多項(xiàng)式P (X)的9個 系數(shù),每段長度為16比特。
[0016] 這里多項(xiàng)式P(x)的結(jié)構(gòu)為:P(x) = a8x8+a7x7+…),并且該多項(xiàng)式 在有限乘法群1^ 5537中運(yùn)算,g卩p' =65537,保證每個系數(shù)可以用16位二進(jìn)制數(shù)表示而不會 產(chǎn)生溢出。
[0017] 1. 3用戶A和用戶B分別提取各自的指紋特征FA = (xAi, yAi, Θ Ai,tAi)和FB = (xBj, yBj, Θ Bj,tBj),其中i = 1,…,Sp j = 1,…,s2 ;x,y,Θ,t分別表示指紋細(xì)節(jié)點(diǎn)的平 面坐標(biāo),方向和特征類型,其中特征類型為端點(diǎn)或叉點(diǎn);Sl為用戶一真實(shí)細(xì)節(jié)點(diǎn)的個數(shù),s 2 為用戶二真實(shí)細(xì)節(jié)點(diǎn)的個數(shù);i的取值范圍為1到Si的自然數(shù),j的取值范圍為1到s2的自 然數(shù);有角標(biāo)A的字符表示用戶A的數(shù)據(jù),有角標(biāo)B的字符表示用戶B的數(shù)據(jù)(下同)。同 時,用戶A和用戶B輸入個人的注冊用戶名,分別記作Useiv User2。
[0018] 1· 4.分另lj 令 uAi = [xAi I I yAi] , uBj = [xBj I I yBj]。記集合 GA = {aAi = (uAi, Θ Ai, tAi) | i = 1, . . . , sj , GB = {aBJ = (uBJ, Θ BJ, tBJ) | j = 1,. . .,s2}。用戶A和用戶B通過信息的交換分別構(gòu)造共享信息點(diǎn)真實(shí)點(diǎn)集合
【權(quán)利要求】
1. 一種基于指紋特征與有限乘法群的共享模糊金庫方法,其特征在于包括兩大步: 第一步,利用一種新的方式來交換雙方的相關(guān)指紋信息,構(gòu)造共享信息,并利用共享信 息綁定共享密鑰生成一個共享指紋模糊金庫; 第二步,利用雙方指紋信息從共享指紋模糊金庫中恢復(fù)共享密鑰; 其中的第一步具體是: 1. 1.用戶A和用戶B利用Diffie-Hellman密鑰交換產(chǎn)生共享密鑰,以下所有操作都是 在有限乘法群G = F/上進(jìn)行的,g為G中的生成元;Fp表示伽羅華域,p為大素數(shù),具體如 下: 1. 1. 1.用戶A秘密選定隨機(jī)自然數(shù)a e G,計算a = ga mod p ;將α發(fā)給用戶B ; 1. 1. 2.用戶Β秘密選定隨機(jī)自然數(shù)b e G,計算β = gb mod ρ ;將β發(fā)給用戶A ; 1. 1. 3.用戶A計算(gb)a mod p,然后清除a ; 1. 1. 4.用戶B計算(ga)b mod p,然后清除b ; 1. 1. 5.用戶A和用戶B得到的共享密鑰k = H(gab mod p),其中H( ·)是一個哈希函 數(shù),其輸出長度固定為128比特,即共享密鑰k長度為128比特;由于a和b是保密的,所以 即使攻擊者知道了 P,g,α,β,也很難獲得用戶A和用戶B的共享密鑰k ; 1. 2.用戶A和用戶B利用共享密鑰k構(gòu)造多項(xiàng)式P (X),首先使用CRC循環(huán)冗余校驗(yàn)碼 為k添加16比特作為校驗(yàn)碼得到。,然后將1?。等分為9段作為多項(xiàng)式P (X)的9個系數(shù), 每段長度為16比特; 這里多項(xiàng)式P(x)的結(jié)構(gòu)為:P(x) =a8x8+a7x7+…),并且該多項(xiàng)式在有 限乘法群<5537中運(yùn)算,g卩p' =65537,保證每個系數(shù)可以用16位二進(jìn)制數(shù)表示而不會產(chǎn)生 溢出; 1. 3.用戶A和用戶B分別提取各自的指紋特征FA = (xAi, yAi, Θ Ai,tAi)和FB = (xBj, yBj, Θ Bj,tBj),其中i = 1,…,Sp j = 1,…,s2 ;x,y,Θ,t分別表示指紋細(xì)節(jié)點(diǎn)的平 面坐標(biāo),方向和特征類型,其中特征類型為端點(diǎn)或叉點(diǎn);Sl為用戶一真實(shí)細(xì)節(jié)點(diǎn)的個數(shù),s 2 為用戶二真實(shí)細(xì)節(jié)點(diǎn)的個數(shù);i的取值范圍為1到Si的自然數(shù),j的取值范圍為1到s2的自 然數(shù);有角標(biāo)A的字符表示用戶A的數(shù)據(jù),有角標(biāo)B的字符表示用戶B的數(shù)據(jù);同時,用戶A 和用戶B輸入個人的注冊用戶名,分別記作Useiv User2 ; 1· 4.分別令 uAi = [xAi I I yAi], uBj = [xBj I I yBj];記集合 Ga = {aAi = (uAi, 0Ai. tAi)|i = 1, . . . , sj , GB = {aBJ = (uBJ, Θ BJ, tBJ) | j = 1,. . .,s2};用戶A和用戶B通過信息的交換分別構(gòu)造共享信息點(diǎn)真實(shí)點(diǎn)集合 Qr=Q.4 =Qb = {{gB,t,M >P(gUBll,A'\g<)B'ej' ^β, λ^,)|ζ' = 1,...,5·1;7 = 1,...,52}; 1. 5.同時,用戶A和用戶B各自分別添加· s2和;Tij-Si · s2個隨機(jī)數(shù)作為雜湊點(diǎn), Γα、· s2和Γβ、· s2遠(yuǎn)遠(yuǎn)大于Si · s2,其集合記為 QA,Chaff = {(ck,dk,ek,tk)|ck,d k,ek,tk e Fpdk 尹 P(ck), (ck,ek)尹(uA,0A),k = Si · s2+l, ···, rA}; 1.6.最后將得到的用戶A的包括真實(shí)點(diǎn)和雜湊點(diǎn)在內(nèi)的所有細(xì)節(jié)點(diǎn)集合RA = U QA;c;haff與用戶B的包括真實(shí)點(diǎn)和雜湊點(diǎn)在內(nèi)的所有細(xì)節(jié)點(diǎn)集合RB = QK U QB;c;haff做合 并,即令 RAB = RA u (RB\QK); 1. 7.用戶A和用戶B得到了共享的模糊金庫VAB = {',(p',g,n)}; 1. 8.用戶A對集合FA運(yùn)用幾何哈希技術(shù)生成一個注冊哈希表,具體如下: 1. 8. 1.集合FA中的第一個點(diǎn)作為基準(zhǔn)點(diǎn),記為Mfl =(--),其它點(diǎn)依次記為 1. 8. 2.對指紋細(xì)節(jié)點(diǎn)進(jìn)行變換和量化;在凡被選作基準(zhǔn)點(diǎn)以后,其它點(diǎn) Μι,Μ2,···,<將根據(jù)凡進(jìn)行校準(zhǔn)操作,其變換公式為:
點(diǎn)Μη =(?<,#)變換后的橫坐標(biāo),縱坐標(biāo),脊線方向角值和類型記作 ;以M(|為基準(zhǔn)點(diǎn)時的變換特征點(diǎn)的集合 7; U...U:Ti?AVlW ;然后對集合TQ中的每一點(diǎn)進(jìn)行如下量化:
這里形成的點(diǎn)
是量化后的結(jié)果,其中坐標(biāo)值和角度 的量化參數(shù)λ和μ的選擇與注冊階段提取的細(xì)節(jié)點(diǎn)坐標(biāo)值范圍和驗(yàn)證階段系統(tǒng)要達(dá)到的 精度有關(guān),此時形成的集合
即是當(dāng)以凡為 基準(zhǔn)點(diǎn)時,其他各點(diǎn)形成的注冊哈希表中的其中一組值; 1. 8. 3.其它各組注冊哈希表的生成過程,只需重復(fù)1. 8. 1和1. 8. 2,直到所有其它的點(diǎn) (ΜρΜ,,.··,'」依次作為基準(zhǔn)點(diǎn)為止,其它各組的哈希值可以記為,最 后形成完整的注冊哈希表
1. 9.用戶B重復(fù)用戶A在步驟1. 8中所做的工作,得到用戶B的注冊哈希表拉·,至此密 鑰綁定過程完成,系統(tǒng)保存的數(shù)據(jù)為用戶A和用戶B的完整的注冊哈希表數(shù)據(jù)£〖和£=, 一個用戶A和用戶B共享的模糊金庫{RAB,(p',g,n)};其中保存注冊哈希表的目的 是校準(zhǔn)注冊指紋圖像和查詢指紋圖像的細(xì)節(jié)點(diǎn)特征信息; 其中的第二步具體是:用戶A與用戶B共享一個模糊金庫,即需要用戶A和用戶B合 作才能完成模糊金庫的解鎖過程,取得共享密鑰;用戶A或用戶B無法單獨(dú)進(jìn)行模糊金庫解 鎖,即無法單獨(dú)取得共享密鑰;假設(shè)用戶A想恢復(fù)共享密鑰,其需要做的工作如下: 2. 1.用戶A輸入個人的查詢用戶名記作User,判斷User是否為Useri,若用戶名正確 則尋找與useri相對應(yīng)的注冊哈希表拉;若不正確則向用戶提示錯誤,并要求重新輸入,直 至用戶名正確;否則一直停滯在此,不進(jìn)行其它操作; 2.2. 用戶A的查詢指紋圖像中每個細(xì)節(jié)點(diǎn)的平面坐標(biāo)和方向角均線性映射到[(1 255],分 別用8比特表示;真實(shí)細(xì)節(jié)點(diǎn)集合f A={(f Ai,太Ai,0' Ai,C = J, 其中X',y',θ',t'分別表示查詢指紋細(xì)節(jié)點(diǎn)的平面坐標(biāo),方向和類型; 2.3. 從F' a中任意選取一個細(xì)節(jié)點(diǎn)作為基準(zhǔn)點(diǎn),用注冊時使用的幾何哈希技 術(shù)生成含有^ i個元素的一組驗(yàn)證哈希表,將它與保存在系統(tǒng)中的注冊哈希表五i 中的Sl組數(shù)據(jù)進(jìn)行對比;將注冊哈希表中匹配數(shù)目最多的一組數(shù)據(jù)中的基準(zhǔn)點(diǎn) 添加到候選的真實(shí)細(xì)節(jié)點(diǎn)集合Q、,其中0 <basis」_彡V 1 ;重 新選擇基準(zhǔn)點(diǎn),并在計算得到了一組新哈希值后,再重新進(jìn)行匹配;直至遍歷選取F' A中 所有細(xì)節(jié)點(diǎn)作為基準(zhǔn)點(diǎn);如果真實(shí)細(xì)節(jié)點(diǎn)集合V A的個數(shù),即A|小于9,則無法從s' i 組哈希值中獲取一組匹配數(shù)目大于9的數(shù)據(jù),此次驗(yàn)證失敗,并要求用戶重新輸入指紋圖 像;當(dāng)用戶被要求輸入指紋圖像的次數(shù)超過3次,則告知用戶驗(yàn)證失敗,中止密鑰恢復(fù); 2. 4.經(jīng)過步驟2. 3用戶A得到真實(shí)的指紋細(xì)節(jié)點(diǎn)集合記作
, 得至IJ
;同時用戶A向用戶B發(fā)送釋放共享密鑰的請求; 2. 5.用戶B重復(fù)用戶A在步驟2. 2, 2. 3與2. 4的工作,驗(yàn)證指紋通過,得到
,其中V B為用戶B的 真實(shí)細(xì)節(jié)點(diǎn)集合,Q' B為用戶B串接后用于多項(xiàng)式計算真實(shí)細(xì)節(jié)點(diǎn)集合,|(Τ B|為用戶 B真實(shí)細(xì)節(jié)點(diǎn)的個數(shù);在收到釋放請求后,驗(yàn)證是否是合法的合作用戶A,不是則不發(fā)送消 息;是則在集合Q" B中隨機(jī)選取一個元素計算涔a e κ{1,· · ·,|Q,B|},并 將β' i發(fā)送給用戶A ; 2.6.用戶A收到用戶B發(fā)送的β' 1后,計算
2. 7.將集合VA與RAB相匹配,設(shè)經(jīng)過匹配算法,比對得到的候選真實(shí)細(xì)節(jié)點(diǎn)的集合為 ={(ι4,/^,Α〇|ζ· = 1,·.·,〇,丨彡9,最后運(yùn)用牛頓插值法重構(gòu)8次多項(xiàng)式p(x)得到包 含CRC校驗(yàn)碼的共享密鑰,并通過CRC循環(huán)冗余校驗(yàn)碼驗(yàn)證共享秘鑰的正確性; 2.8.用戶B也可以通過相同的步驟恢復(fù)共享密鑰。
【文檔編號】H04L9/08GK104104501SQ201410323824
【公開日】2014年10月15日 申請日期:2014年7月8日 優(yōu)先權(quán)日:2014年7月8日
【發(fā)明者】游林, 陳宇磊, 王毓娜, 張歡歡, 鄧頎 申請人:杭州電子科技大學(xué)