一種基于橢圓曲線與指紋模糊金庫的共享密鑰保護方法
【專利摘要】本發明涉及一種基于橢圓曲線與指紋模糊金庫的密鑰安全保護方法,為通信雙方提供一種共享密鑰從安全生成到安全存儲的方法。本發明包括一種基于橢圓曲線的共享密鑰安全生成及指紋模糊金庫實現的共享密鑰安全存儲方法。共享密鑰安全存儲方法包括共享密鑰綁定指紋模糊金庫階段、共享密鑰提取階段。本發明利用橢圓曲線算法生成共享密鑰的方法與有限乘法群方法比較,具有更強的安全性、更高的實現效率、更低的實現代價;利用指紋模糊金庫安全存儲共享密鑰的方法,只有在具備合法用戶及合法指紋下才能提取到帶有CRC校驗功能的共享密鑰,保證了共享密鑰安全存儲所要求的機密性、完整性、可用性。
【專利說明】一種基于橢圓曲線與指紋模糊金庫的共享密鑰保護方法
【技術領域】
[0001] 本發明屬于密碼學與生物特征識別【技術領域】,具體涉及橢圓曲線上的共享密鑰安 全生成方法與基于指紋模糊金庫的共享密鑰安全存儲方法。
【背景技術】
[0002] 橢圓曲線理論是代數幾何、數論等多個數學分支的一個交叉點,1985年由Neal Koblitz和Victor Miller將橢圓曲線和密碼學完美結合,提出了橢圓曲線密碼機制,已經 逐漸成為公鑰密碼學領域的一個重要研究課題。相對于建立在大整數分解問題難解性之上 的RSA密碼機制,建立在橢圓曲線離散對數問題難解性之上的ECC具有更強的安全性、更高 的實現效率、更低的實現代價,已經在很多主流安全系統中得到了應用,并已逐漸被國際各 大標準組織采納做為公鑰密碼標準。
[0003]在 2002 年 A. Juels 和 M. Sudan 提出了 "A Fuzzy Vault Scheme"。在其提出 的模糊金庫算法中,將用戶唯一的特征集合或其他屬性集合A混合用戶的密鑰進入基于 Reed-Solomn的金庫中。用戶可以利用與集合A有絕大多數元素相同的屬性集合B恢復出 密鑰。U. Uludag等人提出了一種基于指紋特征的模糊金庫算法,該算法在生成指紋密鑰之 前首先對模板和輸入的指紋進行校準消除由于旋轉等引起的角度變化,參與比對的是指紋 細節點的平面坐標值、方向場、細節點類型,如果前后兩個指紋的某兩個點的平面坐標值、 方向場相差在一個閾值之內,細節點類型相同,則認為是相同的點。基于指紋特征的模糊金 庫方案可以用于保護安全存儲共享密鑰。
[0004] 使用基于橢圓曲線共享密鑰安全產生方法和指紋模糊金庫方案的共享密鑰安全 存儲方法為核心的本發明,安全性保障由橢圓曲線離散對數問題的難解性以及用戶生物特 征唯一性提供。
【發明內容】
[0005] 在真實可靠的實驗條件下,本發明提供了一套實用化的一種基于橢圓曲線與指紋 模糊金庫的密鑰保護方法。
[0006] -種基于橢圓曲線與指紋模糊金庫的密鑰保護方法,包括三個部分:第一步,利用 一種基于橢圓曲線共享密鑰安全生成方法,通信雙方安全生成一個共享密鑰;第二步,利用 指紋模糊金庫綁定算法,將共享密鑰與經過相關處理的用戶指紋信息進行綁定,生成指紋 模糊金庫;第三步,利用經過驗證的用戶指紋信息從指紋模糊金庫中提取共享密鑰。
[0007] 其中的第一步具體是:
[0008] 用戶A和用戶B利用基于橢圓曲線共享密鑰安全生成方法,安全生成一個共享密 鑰,所有操作都是在推薦橢圓曲線下進行。橢圓曲線系統參數如下:有限域,其中q為一 個大素數;橢圓曲線石化,)方程y2 = x3+ax+bm〇dq上的兩個元素e & ;橢圓曲線£(巧) 的基點G = (xe,ye) (G關0),其中?,凡e ;并取n為基點G在£(F v>上的階。
[0009] 此外,規定一個密鑰派生函數KDF(Z, len)用以從一個共享的秘密比特串中派生 出密鑰數據,密鑰派生函數通過雜湊函數等方式實現;其中Z是一個共享的秘密比特串, len是要獲得的密鑰長度。根據橢圓曲線密碼體系安全性考慮,密鑰長度一般從128到256 比特不等。
[0010] 1. 1用戶A從橢圓曲線£(¥;)上獨立生成一個密鑰對作為自己的公私鑰對,包括用 戶A的私鑰dA和公鑰PA= [dA]G= (xA,yA);用戶B進行相同的工作得到一個公私鑰對,包 括用戶B的私鑰dB和公鑰PB = [dB]G = (xB, yB)。
[0011] 1.2用戶A秘密生成一個隨機整數rAe [l,n-l],在£(%:>上計算1^倍點RA= [rA] G= (Xl,yi),并將RA發送給用戶B;用戶B進行相同的工作得到隨機整數r Be [l,n-l],以 及£WV)上的rB倍點RB = [rB]G = (x2, y2),并將RB發送給用戶A。
[0012] 1 ? 3用戶A計算戰!^)上的點U = [dA] PB+ [rA] RB = (Xu, yj,用戶B進行相同的工 作計算鐵,f)上的點 V = [dB]PA+[rB]RA = (xv, yv)。
[0013] 1. 4 用戶 A 計算 KA = KDF(Xu| |yu, len),用戶 B 計算 KB = KDF(xv| |yv, len);易證, 這里KA = KB。至此,基于橢圓曲線算法的產生一個共享密鑰完畢。
[0014] 其中的第二步具體是:
[0015] 用戶A利用指紋模糊金庫綁定算法,將共享密鑰與經過相關處理的用戶指紋信息 進行綁定,生成指紋模糊金庫。用戶B通過相同工作生成模糊金庫。
[0016] 2. 1用戶A通過兩次訓練,提取、處理指紋信息得到一組相對穩定的用戶指紋細節 點集合;將得到的所有細節點的平面坐標分別量化到8個比特并串接得到一個長度為16的 比特串,然后將所有細節點的數據類型轉化為整數,則可以得到一組范圍在[0,2 16_1]內的 整數集合F,穩定細節點個數為f。
[0017] 指紋細節點訓練方法如下:將指紋樣本依次進行特征配準,配準時不區分細節點 類型;兩幅指紋可配準的細節點記為該枚指紋的真實細節點,取同一個真實細節點在兩幅 圖像取的兩組坐標值的均值,記錄為該真實細節點的坐標值;配準好的細節點與第三幅指 紋樣本再次進行特征配準;配準完成后得相對穩定的真實細節點集合。
[0018] 2. 2用戶A將第一步得到的共享密鑰進行格式化處理,格式化規則為每16比特 長度為一塊,記一共可以得到k塊;并將每塊數據類型轉化為整數,則可以得到一組范圍在 [0,2 16_1]內的整數集合K。
[0019] 2. 3用戶A根據密鑰格式化處理產生的塊數k,在有限域?;上構造一個形如
[0020] P(x) = a〇+a1x+a2x2+---+akx k(mod p) ⑵的多項式,模數p根據經驗推薦取值為 65537,最高次數k根據密鑰長度一般取值范圍從9到16。
[0021] 2. 4用戶A為待綁定的共享密鑰添加16比特長度的CRC循環冗余校驗碼,以增 加本發明保護密鑰的可靠性;并將該CRC碼數據類型轉化為整數,則可以得到一個范圍在 [0,2 16-1]內的整數。
[0022] 2. 5用戶A使用2. 3中提到的待綁定的共享密鑰與2. 4中的得到CRC校驗碼作為 多項式⑵的系數,其中%為CRC校驗碼,ai,…,ak為待綁定的共享密鑰塊。并將2.1得 到的穩定的用戶指紋信息集合F中的每個細節點數據作為多項式輸入值x帶入多項式(2) 中,求得點集{(X,P(X)) |x G F}即為模糊金庫中的真實點集合。
[0023] 2. 6用戶A為模糊金庫添加遠遠多于真實點集合個數的雜湊點集合,雜湊點集合 中的各組元素均隨機產生,并要求各組元素與真實點不相等,且各組元素必須不滿足的多 項式(2)。
[0024] 2. 7用戶A將真實點集合和雜湊點集合亂置,最終生成一個包含真實點集合、雜湊 點集合,模糊金庫基本信息(包括多項式最高次數k、模數p)在內的指紋模糊金庫。
[0025] 其中的第二步具體是:
[0026] 用戶A利用經過驗證的用戶指紋信息從指紋模糊金庫中提取共享密鑰。用戶B進 行相同工作可以從指紋模糊金庫提取共享密鑰。
[0027]3. 1用戶A通過相關處理、驗證指紋信息得到一組用戶查詢指紋細節點集合F', 細節點的個數為f'。
[0028] 3. 2用戶A將用戶查詢指紋細節點集合F'與模糊金庫中的各組數據進行遍歷對 t匕,若相符的點的個數不小于在模糊金庫中多項式最高次數k,則繼續執行;否則,提取密 鑰失敗。
[0029] 3. 3對找到的相符的點進行組合計算,每k+1個點為一組,對每組利用拉格朗日插 值法嘗試恢復可能密鑰,并將得到的可能密鑰進行CRC校驗。若通過CRC校驗,則可能密鑰 即為共享密鑰,提取密鑰成功;否則繼續下一組嘗試。直到嘗試完所有組合情況,仍未提取 到共享密鑰,則提取密鑰失敗。
[0030] 本發明的有益效果:與有限乘法群安全生成共享密鑰的方法相比較,本發明利用 橢圓曲線算法安全生成共享密鑰的方法具有更強的安全性、更高的實現效率、以及更低的 實現代價,為在移動終端等計算資源緊張的設備下使用提供可能;利用指紋模糊金庫安全 存儲共享密鑰的方法,保證只有合法用戶在合法指紋下才能提取到帶有CRC校驗功能的共 享密鑰,保障了共享密鑰安全存儲的機密性、完整性、可用性。
【專利附圖】
【附圖說明】
[0031] 圖1基于橢圓曲線和指紋特征的模糊金庫方法流程圖;
[0032] 圖2基于橢圓曲線的共享密鑰安全生成方法流程圖;
【具體實施方式】
[0033] 以下結合附圖對本發明作進一步說明。
[0034] 一種基于橢圓曲線與指紋模糊金庫的密鑰保護方法流程圖如圖1所示,主要包括 三個部分:利用一種基于橢圓曲線共享密鑰安全生成方法,通信雙方安全生成一個共享密 鑰;利用指紋模糊金庫綁定算法,將共享密鑰與經過相關處理的用戶指紋信息進行綁定,生 成指紋模糊金庫;利用經過驗證的用戶指紋信息從指紋模糊金庫中提取共享密鑰。
[0035] 1.其中的利用基于橢圓曲線共享密鑰安全生成方法,通信雙方安全生成一個共享 密鑰流程如圖2所示,所有操作都是在橢圓曲線下進行。本例橢圓曲線系統參數如下所示, 參數均采用16進制表示:
[0036] 橢圓曲線方程為:y2 = x3+ax+b mod q
[0037]素數 q:
[0038] FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000FFFFFFFF FFFFFFFF
[0039]系數 a:
[0040] FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF OOOOOOOOFFFFFFFF FFFFFFFC
[0041]系數 b:
[0042] 28E9FA9E 9D9F5E344D5A9E4B CF6509A7 F39789F515AB8F92DDBCBD414D940E93
[0043] 基點G = (xG, yG) (G關0),其階記為 n。
[0044]坐標 xG:
[0045] 32C4AE2C 1F1981195F9904466A39C9948FE30BBF F2660BE1715A4589334C74C7
[0046]坐標 yG:
[0047] BC3736A2 F4F6779C 59BDCEE36B692153 D0A9877C C62A474002DF32E52139F0A0
[0048]階 n:
[0049] FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B53BBF40939D54123
[0050] 本例中使用的橢圓曲線在有限域》>256上選取,其中q為一個長度為256比特 的大素數;橢圓曲線顯^,-256)方程為y2 =x3+ax+bmodq,其中;選取橢圓 曲線£(Ft/-256)的基點記為G = (xe,ye) (G關0),其中?,凡.e f;-256,并記n為基點G在 £(%-256)上的階。
[0051] 此外,規定一個密鑰派生函數KDF(Z, len)用以從一個共享的秘密比特串中派生 出密鑰數據,本例中密鑰固定輸出為160比特,派生函可以選用SHA-1 (Z)雜湊算法實現,只 需要保證輸入的比特串長度小于264。具體操作過程如下:
[0052] 1. 1用戶A從橢圓曲線£(▼,)上獨立生成一個比特長度為256的密鑰對作為自己 的公私鑰對,包括私鑰dA和公鑰PA= [dA]G= (xA,yA);用戶B進行相同的工作得到一個比 特長度為256的公私鑰對,包括私鑰dB和公鑰PB = [dB]G = (xB,yB)。
[0053] 1. 2用戶A秘密生成一個隨機整數rAg[1,n-1],在£(F,-256)上計算rA倍點ra = [rA]G= (Xl,yi),并將RA發送給用戶B;用戶B進行相同的工作得到隨機整數r Be [l,n-l], 以及£(%-256)上的;rB倍點rb= [rB]G= (x2,y2),并將RB發送給用戶A。
[0054] 1. 3用戶A計算離F,-256)上的點U= [dA]PB+ [rA]RB = (Xu,yu),用戶B進行相同的 工作計算只%-2-%)上的點V= [dB]PA+[rB]RA = (xv,yv)。
[0055] 1. 4 用戶 A 計算 KA = SHA-1 (Xu | | yd ,用戶 B 計算 KB = SHA-1 (xv | | yv);易證,這里 KA = KB。至此,基于橢圓曲線算法的產生一個共享密鑰完畢。
[0056]2、用戶A利用指紋模糊金庫綁定算法(流程圖如圖1所示),將共享密鑰與經過相 關處理的用戶指紋信息進行綁定,生成指紋模糊金庫。用戶B通過相同工作生成模糊金庫。 具體操作如下:
[0057] 2. 1用戶A通過兩次訓練,提取、處理指紋信息得到一組相對穩定的用戶指紋細節 點集合;將得到的所有細節點的平面坐標分別量化到8個比特并串接得到一個長度為16的 比特串,然后將所有細節點的數據類型轉化為整數,則可以得到一組范圍在[0,2 16_1]內的 整數集合F,穩定細節點個數為f。
[0058] 2. 2用戶A將第一步得到的160位共享密鑰進行格式化處理,格式化規則為每16 比特長度為一塊,記一共可以得到10塊;并將每塊數據類型轉化為整數,則可以得到一組 范圍在[0,2 16_1]內的整數集合K。
[0059] 2. 3用戶A根據密鑰格式化處理產生的塊數,在有限域1?537上構造多項式如下:
[0060] P (x) = a(l+a1x+a2x2+…+a1(lx 10 (mod 65537) (3)
[0061] 2. 4用戶A為160位共享密鑰添加16比特長度的CRC循環冗余校驗碼,以增加增 加本發明保護密鑰的可靠性;并將該CRC碼數據類型轉化為整數,則可以得到一個范圍在 [0,2 16-1]內的整數。
[0062] 2. 5用戶A使用10塊轉化過的密鑰塊集合K與2. 4中的得到CRC校驗碼作為多 項式⑶的系數,其中aQ為CRC校驗碼,,…,a1Q為整數集合K。并將2. 1得到的穩定的 用戶指紋信息集合F中的每個細節點數據作為多項式輸入值x帶入多項式(3),求得點集 {(x,P(x)) |x G F}即為模糊金庫中的真實點集合。
[0063] 2. 6用戶A為模糊金庫添加遠遠多于真實點集合個數的雜湊點集合,雜湊點集合 中的各組元素均隨機產生,并要求各組元素與真實點不相等,且各組元素必須不滿足多項 式(3)。
[0064] 2. 7用戶A將真實點集合和雜湊點集合亂置,最終生成一個包含真實點集合、雜湊 點集合,模糊金庫基本信息(包括多項式最高次數10、模數65537)在內的模糊金庫。
[0065] 3、用戶A利用經過驗證用戶指紋信息從指紋模糊金庫中提取共享密鑰(流程圖如 圖1所示)。用戶B進行相同工作可以從指紋模糊金庫提取共享密鑰。具體操作如下:
[0066] 3. 1用戶A通過相關處理、驗證指紋信息得到一組用戶查詢指紋細節點集合F', 細節點的個數為f'。
[0067] 3. 2用戶A將用戶查詢指紋細節點集合F'與模糊金庫中的各組數據進行遍歷對 t匕,若相符的點的個數不小于在模糊金庫中多項式最高次數10,則繼續執行;否則,提取密 鑰失敗。
[0068] 3. 3對找到的相符的點進行組合計算,每11個點為一組,對每組利用拉格朗日插 值法嘗試恢復可能密鑰,并將得到的可能密鑰進行CRC校驗。若通過CRC校驗,則可能密鑰 即為共享密鑰,提取密鑰成功;否則繼續下一組嘗試。直到嘗試完所有組合情況,仍未提取 到共享密鑰,則提取密鑰失敗。
[0069] 本【技術領域】中的普通技術人員應當認識到,以上實施例僅是用來說明本發明,而 并非作為對本發明的限定,只要在本發明的實質范圍內,對以上實施例的變化、變型都將落 在本發明的保護范圍。
【權利要求】
1. 一種基于橢圓曲線與指紋模糊金庫的共享密鑰保護方法,其特征在于該方法包括以 下步驟: 第一步,利用基于橢圓曲線共享密鑰安全生成方法,通信雙方安全生成一個共享密 鑰; 第二步,利用指紋模糊金庫綁定算法,將共享密鑰與經過相關處理的用戶指紋信息進 行綁定,生成指紋模糊金庫; 第三步,利用經過驗證的查詢指紋信息從指紋模糊金庫中提取共享密鑰。
2. 根據權利要求1所述的一種基于橢圓曲線與指紋模糊金庫的共享密鑰保護方法,其 特征在于: 用戶A和用戶B利用基于橢圓曲線共享密鑰安全生成方法,安全生成一個共享密鑰,所 有操作都是在安全橢圓曲線下進行;橢圓曲線系統參數如下:有限域Ff :其中q為一個大 素數;橢圓曲線£"(€,)方程y2 =x3+ax+bmodq,--,Λe;橢圓曲線 £(Fif)的基點G= (xG,yG) (G關0),其中eFi,;并取n為基點G在£(?)上的階; 此外,規定一個密鑰派生函數KDF(Z,Ien)用以從一個共享的秘密比特串中派生出一 個密鑰,其中Z是一個共享的秘密比特串,Ien是要獲得的密鑰的長度;根據橢圓曲線密碼 體系安全性考慮,密鑰長度一般從128到256比特不等; I. 1用戶A從橢圓曲線f(Fv)上獨立生成一個密鑰對作為自己的公私鑰對,包括用戶A 的私鑰dA和公鑰Pa= [dA]G= (xA,yA);用戶B進行相同的工作得到一個公私鑰對,包括用 戶B的私鑰dB和公鑰Pb = [dB]G= (xB,yB); 1.2用戶八秘密生成一個隨機整數1^£[1,11-1],在£(%)上計算^倍點1^=[^](; =(Xpy1),并將Ra發送給用戶B;用戶B進行相同的工作得到隨機整數rBe[l,n-l],以及 >上的rB倍點Rb = [rB]G= (x2,y2),并將Rb發送給用戶A; 1.3用戶A計算鐵Ff)上的點U= [dA]PB+[rA]RB= (Xu,yu),用戶B進行相同的工作計 算)上的點V= [dB]Pa+[rB]Ra = (xv,yv); 1. 4 用戶A計算Ka =KDF(XuIIYu,len),用戶B計算Kb =KDF(xvIIyv,len);易證,這里 Ka =Kb ;至此,產生一個共享密鑰完畢。
3. 根據權利要求1所述的一種基于橢圓曲線與指紋模糊金庫的共享密鑰保護方法,其 特征在于: 用戶A利用指紋模糊金庫綁定算法,將共享密鑰與經過相關處理的用戶指紋信息進行 綁定,生成指紋模糊金庫;用戶B通過相同工作生成模糊金庫; 2.1用戶A通過兩次訓練,提取、處理指紋信息得到一組相對穩定的用戶指紋細節點集 合;將得到的每個細節點的平面坐標分別量化到8個比特并串接得到一個長度為16的比特 串,然后將所有細節點的數據類型轉化為整數,則可以得到一組范圍在[〇,2 16-1]內的整數 集合F,穩定的真實細節點的個數記為f; 指紋細節點訓練如下:將指紋樣本依次進行特征配準,配準時不區分細節點類型;兩 幅指紋可配準的細節點記為該枚指紋的真實細節點,取同一個真實細節點在兩幅圖像取的 兩組坐標值的均值,記錄為該真實細節點的坐標值;配準好的細節點與第三幅指紋樣本再 次進行特征配準;配準完成后得相對穩定的真實細節點集合; 2. 2用戶A將第一步得到的共享密鑰進行格式化處理,格式化規則為每16比特長 度為一塊,記一共可以得到k塊;并將每塊數據類型轉化為整數,則可以得到一組范圍在 [0,216-1]內的整數集合K; 2. 3用戶A根據密鑰格式化處理產生的塊數k,在有限域^上構造一個多項式: P(x) =a〇+a1x+a2x2+···+akxk(modp) (I) 2. 4用戶A為待綁定的共享密鑰添加16比特長度的CRC循環冗余校驗碼;并將該CRC碼數據類型轉化為整數,則可以得到一個范圍在[〇,216-1]內的整數; 2. 5用戶A使用2. 3中提到的待綁定的共享密鑰與2. 4中的得到CRC校驗碼作為多項 式⑴的系數,其中%為CRC校驗碼,ai,…,ak為待綁定的共享密鑰塊;并將2. 1得到的穩 定的用戶指紋信息集合F中的每個細節點數據作為多項式輸入值X帶入多項式(1)中,求 得點集{(x,P(x))|xeF}即為模糊金庫中的真實點集合; 2. 6用戶A為模糊金庫添加遠遠多于真實點集合個數的雜湊點集合,雜湊點集合中的 各組元素均隨機產生,并要求各組元素與真實點不相等,且各組元素不滿足多項式(1); 2. 7用戶A將真實點集合和雜湊點集合亂置,最終生成一個包含真實點集合、雜湊點集 合,模糊金庫基本信息在內的指紋模糊金庫。
4.根據權利要求1所述的一種基于橢圓曲線與指紋模糊金庫的共享密鑰保護方法,其 特征在于: 用戶A利用經過驗證的用戶指紋信息從指紋模糊金庫中提取共享密鑰;用戶B進行相 同工作可以從指紋模糊金庫提取共享密鑰; 3. 1用戶A通過相關處理、驗證指紋信息得到一組用戶查詢指紋細節點集合F',細節 點的個數為f; 3. 2用戶A將用戶查詢指紋細節點集合F'與模糊金庫中的各組數據進行遍歷對比, 若相符的點的個數不小于在模糊金庫中多項式最高次數k,則繼續執行;否則,提取密鑰失 敗; 3. 3對找到的相符的點進行組合計算,每k+Ι個點為一組,對每組利用拉格朗日插值法 嘗試恢復可能密鑰,并將得到的可能密鑰進行CRC校驗;若通過CRC校驗,則可能密鑰即為 共享密鑰,提取密鑰成功;否則繼續下一組嘗試;直到嘗試完所有組合情況,仍未提取到共 享密鑰,則提取密鑰失敗。
【文檔編號】H04L9/08GK104320247SQ201410487457
【公開日】2015年1月28日 申請日期:2014年9月22日 優先權日:2014年9月22日
【發明者】游林, 陳宇磊 申請人:杭州電子科技大學