王金海, 魏 寧, 崔 軍, 李雪妍, 李秀艷
(天津工業(yè)大學(xué) 電子與信息工程學(xué)院, 天津 300387)
?
一種生物證書密鑰生成算法
王金海, 魏 寧, 崔 軍, 李雪妍, 李秀艷
(天津工業(yè)大學(xué) 電子與信息工程學(xué)院, 天津 300387)
生物特征數(shù)字證書涉及的RSA公私鑰對(duì)可以由近似隨機(jī)信號(hào)的生物特征密鑰派生,但是生物特征密鑰長度較短,而基于大素?cái)?shù)分解困難的RSA算法要求密鑰較長. 為了解決該問題,提出一種生物證書密鑰生成算法,結(jié)合對(duì)稱加密算法和大素?cái)?shù)生成算法生成生物大素?cái)?shù),并采用哈希算法對(duì)生物大素?cái)?shù)進(jìn)行可用性設(shè)計(jì),在解決密鑰長度問題的同時(shí)保證生物大素?cái)?shù)安全可用,以便用于生成生物特征數(shù)字證書中的RSA公私鑰對(duì). 基于VC6.0和MIRACL大數(shù)庫的實(shí)驗(yàn)結(jié)果表明:基于生物特征密鑰生成的生物大素?cái)?shù)滿足確定性和可用性,能夠應(yīng)用于生物數(shù)字證書之中. 本文所提算法行之有效,且具有實(shí)際應(yīng)用價(jià)值.
生物特征加密; 生物證書; 生物特征密鑰; RSA; 大素?cái)?shù)
近年來,快速發(fā)展的生物特征加密技術(shù)越來越實(shí)用化,其應(yīng)用到數(shù)字證書的研究與日俱增[1-3]. 文獻(xiàn)[4]于2007年提出了生物證書的概念,把生物證書定義成CA頒發(fā)的綁定了用戶身份及其生物特征信息并經(jīng)過CA簽名的數(shù)據(jù)結(jié)構(gòu). 國內(nèi)學(xué)者提出了一種基于生物屬性證書的生物認(rèn)證系統(tǒng),進(jìn)一步推動(dòng)了生物特征與數(shù)字證書的結(jié)合研究[5-6].
事實(shí)上,基于原始生物特征數(shù)據(jù)直接或間接生成的生物特征密鑰(簡稱BioKey,生物密鑰)是指一個(gè)穩(wěn)定的近似隨機(jī)的二進(jìn)制序列[7]. 它的長度是相對(duì)有限的,一般為百位左右比特量級(jí)[8],如Nandakumar[9]使用指紋庫FVC2002-DB2基于指紋Fuzzy Vault生成的BioKey長度為128 bits, George S. Eskander[10]基于各種生物特征使用Fuzzy Vault算法生成的各生物特征的密鑰熵為69 bits. 而數(shù)字證書對(duì)密鑰是有一定要求的,主要體現(xiàn)在RSA算法對(duì)密鑰的要求上. RSA算法是基于“對(duì)于兩個(gè)大素?cái)?shù)p和q,計(jì)算它們的乘積n(n的二進(jìn)制位數(shù)即為密鑰長度)十分容易,但要對(duì)n進(jìn)行因式分解得到p和q卻極其困難”的思想,將乘積n公開,作為公開密鑰. RSA算法的安全性依賴于大素?cái)?shù)n被分解的難度. 在實(shí)際應(yīng)用中,為保證加密的安全性和可靠性,RSA算法要求大素?cái)?shù)p和q均為512 bits,即RSA的密鑰長度為1024 bits[11].
針對(duì)長度較短的BioKey無法滿足數(shù)字證書中RSA算法對(duì)密鑰要求的問題,目前相關(guān)探討較少,僅在2012年,Vincenzo[12]提出了一種基于生物特征密鑰利用映射表生成RSA公私鑰對(duì)的方法,但是該文獻(xiàn)沒有詳細(xì)描述如何構(gòu)造映射表以及進(jìn)一步評(píng)估論證派生的大素?cái)?shù)p和q是否安全可用和唯一確定. 而且注意到,這個(gè)映射表中大素?cái)?shù)的個(gè)數(shù)是2n,是相對(duì)有限的,這樣肯定導(dǎo)致不同BioKey映射成相同大素?cái)?shù)p和q的碰撞概率較大. 但是通過增大2n值來降低碰撞概率顯然是不可取的,因?yàn)榇鎯?chǔ)映射表的智能卡存儲(chǔ)空間是有限的. 假設(shè)這個(gè)映射表里有100 000個(gè)512 bits的大素?cái)?shù),那么就要求智能卡的容量至少達(dá)到64 MB,而這個(gè)量級(jí)的存儲(chǔ)容量是當(dāng)前一般智能卡所不支持的.
因此,對(duì)基于較短BioKey構(gòu)造出長度相對(duì)較長的BioRSA大素?cái)?shù)p和q(簡稱BioPrimes,生物大素?cái)?shù))的密鑰擴(kuò)散問題進(jìn)行研究是很有必要的. 如何由BioKey生成BioPrimes是本文擬解決的首要問題,當(dāng)然,在此基礎(chǔ)上,生成的BioPrimes還應(yīng)滿足確定性(即同一個(gè)BioKey每次都會(huì)確定生成同一個(gè)BioPrimes)和可用性(即生成的BioPrimes可以無差錯(cuò)地應(yīng)用到RSA算法中). 因此,本文除了研究BioPrimes生成方法之外,還需要對(duì)生成的BioPrimes做關(guān)于可用性和確定性的設(shè)計(jì)與驗(yàn)證.
針對(duì)以上問題,本文基于長度較短的BioKey提出一種RSA大素?cái)?shù)生成方法,即由BioKey構(gòu)造出長度相對(duì)較長的BioRSA大素?cái)?shù)p和q,即BioPrimes.
1.1 RSA算法
RSA算法是一種典型的公鑰密碼算法,具有公開密鑰和私有密鑰兩個(gè)緊密相關(guān)但卻不同的密鑰,即公鑰和私鑰:1)公鑰可以公開給任何人,用于加密數(shù)據(jù)(僅對(duì)應(yīng)的私鑰能解密),或驗(yàn)證簽名(對(duì)應(yīng)私鑰進(jìn)行簽名);2)私鑰不能公開,必須安全保存. RSA算法的理論基礎(chǔ)是一種特殊的可逆模指數(shù)運(yùn)算,它的安全性基于分解大素?cái)?shù)n的困難性,其算法描述如下[13]:
1)獨(dú)立地選取兩個(gè)大素?cái)?shù)p和q(保密),計(jì)算n=pq(公開),φ(n)=(p-1)(q-1)(保密),其中φ(n)是歐拉函數(shù);
2)選取一個(gè)整數(shù)e,滿足1≤e<φ(n),且gcd(φ(n),e)=1,其中g(shù)cd()表示求最大公約數(shù);
3)計(jì)算d(保密),滿足ed=1mod φ(n),即d是e在模φ(n)下的乘法逆元;
4){e,n}為公鑰,{d,n}為私鑰,p和q則丟棄.
假設(shè)要加密的明文為M,密文為C,則加密過程為C=E(M)=Me(mod n),解密過程為M=D(C)=Cd(mod n).
RSA算法中的p、q、φ(n)和d是秘密保存的,只有私鑰擁有者才知曉. 如果要對(duì)RSA算法加密后的密文進(jìn)行破譯,唯一可能的破解方法就是對(duì)公鑰{e,n}中的n進(jìn)行因子分解. 對(duì)于大素?cái)?shù)的因子分解,分解次數(shù)與其長度有關(guān),隨著密鑰長度的增加,分解所需的時(shí)間就會(huì)成指數(shù)增加,密鑰就越難破譯,加密強(qiáng)度就越高.
由此可見,要使RSA加密的數(shù)據(jù)安全可靠,關(guān)鍵是生成兩個(gè)滿足長度要求的大素?cái)?shù)p和q. RSA加解密算法的安全性與其所使用的大素?cái)?shù)有密切關(guān)系,構(gòu)造符合RSA安全體系要求的大素?cái)?shù)是RSA算法實(shí)用化的基礎(chǔ). 因此,針對(duì)生物特征密鑰與公鑰數(shù)字證書的結(jié)合應(yīng)用,研究基于較短BioKey生成較長BioPrimes,對(duì)BioRSA算法的安全性具有實(shí)際應(yīng)用價(jià)值.
1.2 大素?cái)?shù)生成算法
素?cái)?shù)生成的核心問題是判斷一個(gè)數(shù)是否為素?cái)?shù). 目前,生成素?cái)?shù)的一般方法可以分為兩類,即確定性素?cái)?shù)生成算法和概率性素?cái)?shù)生成算法.
確定性素?cái)?shù)生成算法是指其生成的數(shù)一定是素?cái)?shù). 在確定性素?cái)?shù)生成算法中,素?cái)?shù)是按照一定公式或者能夠滿足素?cái)?shù)充分必要特性的規(guī)則進(jìn)行素?cái)?shù)生成. 現(xiàn)有的確定性素?cái)?shù)生成算法有許多,其中比較有代表性的是AKS算法[14]. 這類算法的優(yōu)點(diǎn)是生成的必然是素?cái)?shù),但卻帶有一定的限制. 假若算法設(shè)計(jì)不佳,便容易構(gòu)造出帶有規(guī)律性的素?cái)?shù),攻擊者能夠分析出素?cái)?shù)的變化,進(jìn)而可以猜到該系統(tǒng)中使用的素?cái)?shù). 另外確定性素?cái)?shù)生成算法運(yùn)行耗時(shí)太長,因此在實(shí)際應(yīng)用中較少采用.
概率性素?cái)?shù)生成算法與確定性素?cái)?shù)生成算法的最大不同是其生成的數(shù)可能是偽素?cái)?shù),盡管其生成合數(shù)的可能性很小,但不能為0. 此類方法缺點(diǎn)明確,即存在誤判的可能性;優(yōu)點(diǎn)也很明顯,就是生成速度較快,生成的素?cái)?shù)無規(guī)律. 概率性素?cái)?shù)生成算法是當(dāng)前素?cái)?shù)生成的主要方法,其中較為著名的算法有Miller-Rabin算法[15]等.
本文以這兩種大素?cái)?shù)生成算法為基礎(chǔ),通過合理設(shè)計(jì)與驗(yàn)證,選擇實(shí)用的大素?cái)?shù)生成算法,實(shí)現(xiàn)生物大素?cái)?shù)生成.
如何由長度相對(duì)較短的BioKey構(gòu)造出確定的BioPrimes,進(jìn)而保證其真正可用,最終生成BioRSA公私鑰對(duì)并應(yīng)用于證書中,本文將給出一種基于生物特征的生物證書密鑰生成算法,該方法分為注冊(cè)和驗(yàn)證兩個(gè)階段.
2.1 注冊(cè)階段
注冊(cè)階段旨在基于由生物特征圖像利用Fuzzy Vault算法生成的128 bits BioKey間接構(gòu)造出可用于RSA算法中的512 bits BioPrimes. BioKey應(yīng)用于BioRSA時(shí)必須保證其可用性,即保證生成的BioPrimes可以無差錯(cuò)地應(yīng)用到RSA算法中. 可能的問題點(diǎn):1)在驗(yàn)證階段,BioKey恢復(fù)時(shí)并不能保證與注冊(cè)時(shí)生成的BioKey完全相同;2)在生物大素?cái)?shù)生成方法中,不同的素?cái)?shù)生成算法會(huì)導(dǎo)致BioPrimes的生成概率不一定是百分之百,即不能完全保證同一個(gè)BioKey每次都會(huì)確定生成同一個(gè)BioPrimes. 所以,最終得到的BioPrimes并不一定能用于生成BioRSA公私鑰對(duì). 本文采用哈希算法解決這兩個(gè)問題.
哈希算法[16]是將任意長度的二進(jìn)制值映射為較短的固定長度的二進(jìn)制值,這個(gè)小的二進(jìn)制值稱為哈希值. 哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式. 如果修改一段明文而且哪怕只更改該段落的一個(gè)字母,隨后的哈希都將產(chǎn)生不同的值. 要找到哈希值相同的兩個(gè)不同的輸入,在計(jì)算上幾乎是不可能的. 目前比較常用的哈希算法是MD5和SHA-1.
參照?qǐng)D1,注冊(cè)階段具體包含以下幾個(gè)步驟:
1)輸入128 bits 注冊(cè)BioKey,并對(duì)其做隨機(jī)數(shù)測試[17],以保證BioKey為近似隨機(jī)數(shù);
2)將通過隨機(jī)數(shù)檢測的注冊(cè)BioKey做哈希運(yùn)算,得到注冊(cè)BioKey的哈希值;
3)隨機(jī)產(chǎn)生兩個(gè)512 bits通過隨機(jī)數(shù)測試的隨機(jī)數(shù)因子;
4)將BioKey作為對(duì)稱加密算法(如AES[17])密鑰用來加密兩個(gè)隨機(jī)數(shù)因子,得到兩個(gè)幫助數(shù)據(jù);
5)將BioKey分別與兩個(gè)隨機(jī)數(shù)因子異或,異或后的值利用大素?cái)?shù)生成方法生成512 bits BioPrimes;
6)512 bits BioPrimes一方面通過哈希運(yùn)算得到生成BioPrimes的哈希值,另一方面進(jìn)行BioRSA公私鑰對(duì)生成,以便用于證書中.
通過上述步驟,128 bits的近似偽隨機(jī)數(shù)BioKey首先間接生成512 bits大素?cái)?shù)BioPrimes,然后再由BioPrimes生成公私鑰對(duì),其中,在注冊(cè)階段得到的幫助數(shù)據(jù)和兩個(gè)哈希值均保存起來在驗(yàn)證階段輔助恢復(fù)出BioRSA公私鑰對(duì). 需要注意的是,由于素?cái)?shù)生成算法有確定性生成和概率性生成之分,前者可給出確定的結(jié)果但通常較慢,后者則反之. 因此,本文后面實(shí)驗(yàn)部分將通過仿真實(shí)驗(yàn),針對(duì)運(yùn)算性能和確定性,對(duì)確定性生成算法和概率性生成算法進(jìn)行實(shí)用性評(píng)估,以選擇實(shí)用的素?cái)?shù)生成算法為本文方法所用.
圖1 注冊(cè)階段
2.2 驗(yàn)證階段
驗(yàn)證階段過程與注冊(cè)階段過程最大的不同體現(xiàn)在:1)通過解密幫助數(shù)據(jù)得到隨機(jī)數(shù)因子;2)通過兩次比較哈希值以保證恢復(fù)的BioPrimes可用于恢復(fù)BioRSA公私鑰對(duì).
流程圖如圖2所示,具體步驟如下:
1)輸入128 bits驗(yàn)證BioKey,并對(duì)其做隨機(jī)數(shù)測試;
2)對(duì)通過隨機(jī)數(shù)檢測的驗(yàn)證BioKey做哈希運(yùn)算,得到驗(yàn)證BioKey的哈希值;
3)對(duì)比注冊(cè)BioKey與驗(yàn)證BioKey的哈希值,若相等轉(zhuǎn)步驟4),否則需重新輸入驗(yàn)證BioKey;
4)將注冊(cè)BioKey作為對(duì)稱加密算法密鑰用來解密幫助數(shù)據(jù),恢復(fù)出隨機(jī)數(shù)因子;
5)恢復(fù)出的隨機(jī)數(shù)因子與驗(yàn)證BioKey異或后利用大素?cái)?shù)隨機(jī)數(shù)方法恢復(fù)出512 bits BioPrimes;
6)512 bits BioPrimes通過哈希運(yùn)算,得到恢復(fù)BioPrimes的哈希值;
7)對(duì)比生成BioPrimes與恢復(fù)BioPrimes的哈希值,若相等則基于該BioPrimes恢復(fù)BioRSA公私鑰對(duì),否則需重生成BioPrimes.
步驟3)中,若注冊(cè)BioKey與驗(yàn)證BioKey的哈希值相等,則說明驗(yàn)證BioKey與注冊(cè)BioKey完全相同,保證了BioKey的可用性;步驟7)中,通過對(duì)比生成BioPrimes與恢復(fù)BioPrimes的哈希值,保證了同一個(gè)BioKey每次都會(huì)確定生成同一個(gè)BioPrimes,即保證了BioPrimes的可用性. 當(dāng)然,如果連續(xù)多次(例如3次)哈希值對(duì)比失敗,則可以認(rèn)為不是同一個(gè)BioKey導(dǎo)致,驗(yàn)證階段異常終止.
圖2 驗(yàn)證階段
針對(duì)BioPrimes素?cái)?shù)生成算法選擇實(shí)驗(yàn)、確定性驗(yàn)證實(shí)驗(yàn)和可用性驗(yàn)證實(shí)驗(yàn)進(jìn)行詳細(xì)闡述,根據(jù)實(shí)驗(yàn)結(jié)果選擇合適的素?cái)?shù)生成算法,并做確定性和可用性驗(yàn)證評(píng)估.
本文的算法均采用C++語言在VC6.0和MIRACL大數(shù)庫仿真環(huán)境下實(shí)現(xiàn). MIRACL大數(shù)庫(Multiprecision Integer and Rational Arithmetic C/C++ Library)是由Shamus Software Ltd.開發(fā)的關(guān)于大數(shù)運(yùn)算函數(shù)庫,用來設(shè)計(jì)與大數(shù)運(yùn)算相關(guān)的密碼學(xué)之應(yīng)用. 本文主要用到MIRACL庫中isprime函數(shù)、nxprime函數(shù)、AES加解密函數(shù)和SHA-1哈希函數(shù)等. 3.1 生物大素?cái)?shù)生成算法選擇實(shí)驗(yàn)
分別選用AKS算法和Miller-Rabin算法作為生物大素?cái)?shù)生成方法中的確定性、概率性素?cái)?shù)生成算法. 如果選擇AKS算法生成生物大素?cái)?shù),理論上同一個(gè)BioKey每次都會(huì)確定生成同一個(gè)BioPrimes,需要檢驗(yàn)其運(yùn)算性能是否符合實(shí)用要求;如果選擇Miller-Rabin算法,則還需要進(jìn)一步驗(yàn)證其理論上的不確定性在實(shí)際中體現(xiàn)為多少. 因此本文先實(shí)驗(yàn)對(duì)比這兩種算法生成的素?cái)?shù)和運(yùn)算性能(指時(shí)間消耗),從實(shí)用性角度選擇合適的素?cái)?shù)生成算法來輔助生成BioPrimes.
由于MIRACL函數(shù)庫已用isprime函數(shù)對(duì)Miller-Rabin算法進(jìn)行封裝,故本文僅需調(diào)用isprime函數(shù)做Miller-Rabin算法素性判斷即可.
先隨機(jī)生成一個(gè)n bits的二進(jìn)制數(shù)p并設(shè)高低位為1,高位設(shè)為1是為了保證隨機(jī)數(shù)的位數(shù),低位設(shè)為1是為了過濾掉偶數(shù). 然后,分別利用AKS算法和Miller-Rabin算法(isprime函數(shù))對(duì)p進(jìn)行素?cái)?shù)判定,若p是素?cái)?shù)則輸出p和運(yùn)行時(shí)間,反之p自加2再進(jìn)行素?cái)?shù)判定,直到找到比p大的第一個(gè)素?cái)?shù)(流程圖見圖3). 記錄分別用這兩種方法找到的n bits素?cái)?shù)p和其運(yùn)行所需時(shí)間,然后對(duì)比分析數(shù)據(jù)確定選用何種算法輔助生成BioPrimes.
圖3 生物大素?cái)?shù)生成算法選擇實(shí)驗(yàn)流程圖
Fig.3 Flowchart of the selection of BioPrimes generation algorithm
根據(jù)圖3,編寫調(diào)試C++程序,并以表格形式給出分別用AKS算法和Miller-Rabin算法(isprime函數(shù))找到的n bits素?cái)?shù)p與運(yùn)行所需時(shí)間的數(shù)據(jù)結(jié)果(見表1).
表1 AKS算法和Miller-Rabin算法對(duì)比
由表1的前四行可以看出,當(dāng)n一定時(shí),利用AKS算法和Miller-Rabin算法(isprime函數(shù))產(chǎn)生的素?cái)?shù)相同,但運(yùn)行時(shí)間卻相差很大. 如當(dāng)n為40時(shí),利用AKS算法找到素?cái)?shù)EDD71C57CD的時(shí)間為7 303.633 s(約為121.73 min),而利用Miller-Rabin算法(isprime函數(shù))找到的素?cái)?shù)相同,運(yùn)行時(shí)間卻是0.035 s. 當(dāng)n>40 bits時(shí),AKS算法素?cái)?shù)生成整個(gè)過程消耗的時(shí)間將不可估量,而利用Miller-Rabin算法(isprime函數(shù))生成128位素?cái)?shù)僅需0.146 s. 理論上,AKS算法的時(shí)間復(fù)雜度是O((logn)),而Miller-Rabin算法的時(shí)間復(fù)雜度是O((logn)/7),這一實(shí)驗(yàn)結(jié)果也驗(yàn)證了二者的時(shí)間復(fù)雜度問題. 所以,AKS算法由于時(shí)間消耗問題并不適合大整數(shù)的素性檢測,故選用Miller-Rabin算法(isprime函數(shù))作為本文所提生物大素?cái)?shù)生成方法中的素?cái)?shù)生成算法.
3.2 生物大素?cái)?shù)確定性驗(yàn)證實(shí)驗(yàn)
由于Miller-Rabin算法屬于概率性素?cái)?shù)生成算法,在其素?cái)?shù)判斷過程中可能會(huì)誤判,所以需要進(jìn)一步驗(yàn)證其理論上的不確定性在實(shí)際中體現(xiàn)為多少,即解決保證同一個(gè)BioKey每次都會(huì)確定生成同一個(gè)BioPrimes(即確定性)問題.
進(jìn)行多次測試,將每次針對(duì)同一BioKey生成的BioPrimes'與第一次生成的BioPrimes對(duì)比,以表格形式統(tǒng)計(jì)記錄實(shí)驗(yàn)結(jié)果(見表2),探究其確定生成的概率.
由表2可知,通過把多次測試的數(shù)據(jù)與第一次生成的BioPrimes做對(duì)比,可認(rèn)為在一定測試次數(shù)范圍內(nèi),同一BioKey確定生成同一BioPrimes的概率為100%,即認(rèn)為采用Miller-Rabin算法(isprime函數(shù))作為素性檢測算法生成BioPrimes滿足確定性. 與128 bits BioKey相比,第一次生成的BioPrimes長度變?yōu)?12 bits,但是該方法并沒有改變其隨機(jī)特性,BioPrimes依然是隨機(jī)數(shù).
表2 多次測試統(tǒng)計(jì)結(jié)果
3.3 生物大素?cái)?shù)可用性驗(yàn)證實(shí)驗(yàn)
上述實(shí)驗(yàn)中,若超出測試范圍,BioPrimes的確定生成概率可能達(dá)不到100%,本文通過哈希值對(duì)比對(duì)其做了可用性設(shè)計(jì),以保證即使BioPrimes的確定生成概率不為100%,它也可以用于生成BioRSA公私鑰對(duì). 在注冊(cè)與驗(yàn)證階段得到的哈希值如表3所示.
表3 注冊(cè)與驗(yàn)證階段哈希值對(duì)比
Tab.3 Comparison of the hash value of registration and verification phase
名稱注冊(cè)階段驗(yàn)證階段BioKey哈希值da73b78f7df87397d79089025216c118066db51ada73b78f7df87397d79089025216c118066db51aBioPrimes哈希值1bab53e18743f29a42e44c2944f7a3839e7128cd2bab53e18743f29a42e44c2944f7a3839e7128cd2BioPrimes哈希值25cd40a56a505eb58951b17be8d412e3a034363315cd40a56a505eb58951b17be8d412e3a03436331
注:注冊(cè)階段和驗(yàn)證階段的運(yùn)行時(shí)間分別為1.920和1.561 s
從表3可以看出,注冊(cè)與驗(yàn)證階段BioKey的哈希值相等,說明在驗(yàn)證階段恢復(fù)出的BioKey與注冊(cè)時(shí)生成的BioKey完全相同. 通過對(duì)比表3中注冊(cè)階段與驗(yàn)證階段生成的BioPrimes的哈希值,發(fā)現(xiàn)它們各自相等,說明生成的BioPrimes可用于生成BioRSA公私鑰對(duì). 注冊(cè)階段與驗(yàn)證階段的運(yùn)行時(shí)間均不到2 s,說明本文所提方法行之有效. 另一方面,基于哈希算法和對(duì)稱加密算法的安全性,表3中的這3個(gè)哈希值以及注冊(cè)階段得到的幫助數(shù)據(jù)可以安全公開,同時(shí)也避免了文獻(xiàn)[12]中存在的把映射表存儲(chǔ)在智能卡引起的存儲(chǔ)容量問題.
以上結(jié)果表明,基于BioKey能夠生成滿足隨機(jī)性、確定性和可用性要求的BioRSA公私鑰對(duì)應(yīng)用于生物證書中,本文提出的生物證書密鑰生成算法是有實(shí)用價(jià)值的.
通過研究生物特征密鑰應(yīng)用到公鑰數(shù)字證書的趨勢,針對(duì)生物特征密鑰BioKey的長度無法滿足基于時(shí)間復(fù)雜度的RSA算法對(duì)素?cái)?shù)的要求的問題,提出一種生物證書密鑰生成算法. 通過哈希算法、對(duì)稱加密算法和大素?cái)?shù)生成方法,128 bits生物特征密鑰BioKey能夠生成512 bits生物大素?cái)?shù)BioPrimes,進(jìn)而生成BioRSA公私鑰對(duì),最終可應(yīng)用于生物證書中. 基于VC6.0和MIRACL大數(shù)庫實(shí)驗(yàn)選擇合適的素?cái)?shù)生成算法,并對(duì)BioPrimes做確定性和可用性驗(yàn)證與評(píng)估. 本文所提方法簡單、易實(shí)現(xiàn),滿足RSA算法安全性的實(shí)際應(yīng)用需求,實(shí)現(xiàn)了從BioKey到BioRSA的映射,為生物特征密鑰應(yīng)用到數(shù)字證書提供了極大的便利.
[1] LAKAHMI A J, KIRAN P S. PKI key generation based on multimodal biometrics[J]. International Journal OfComputers & Communications, 2012, 1(1): 9-16.
[2] KALAMA A E, IBJAOUN S, OUAHMAN A A. Biometric authentication systems based on hand pattern vein, digital certificate and smart cards[C]// Security Days, 2013 National. Rabat: IEEE, 2013: 1-8.
[3] WANG W, LU Y, FANG Z. Biometric template protection based on biometric certificate and fuzzy fingerprint vault[C]// Advanced Data Mining and Applications. Hangzhou: Springer Berlin Heidelberg, 2013: 241-252.
[4] CHUNG Y, MOON K, LEE H W. Biometric certificate based biometric digital key generation with protection mechanism[C]// Frontiers in the Convergence of Bioscience and Information Technologies. Washington DC: IEEE Computer Society, 2007: 709-714.
[5]李超, 辛陽, 紐心忻, 等. 一種基于生物證書的身份認(rèn)證方案[J]. 計(jì)算機(jī)工程, 2007, 33(20): 159-161.
LI Chao, XIN Yang, NIU Xinxin, et al. Identity Authentication Scheme Based on Biometric Certificate[J]. computer engineering, 2007, 33(20): 159-161.
[6]辛陽, 魏景芝, 李超, 等. 基于PKI和PMI的生物認(rèn)證系統(tǒng)研究[J]. 電子與信息學(xué)報(bào), 2008, 30(01): 1-5.
XIN Yang, WEI Jingzhi, LI Chao, et al. Research on the Telebiometric Authentication System Based on PKI and PMI[J]. Journal of Electronics and Information Technology, 2008, 30(01): 1-5.
[7]陳熙. 鑒別生物特征提取及密鑰生成研究[D]. 成都:西南交通大學(xué), 2011.
CHEN Xi. Research on discriminative biometrics feature extraction and key generation[D]. Chengdu:Southwest Jiaotong University, 2011.
[8] RATHGEB C, UHL A. A survey on biometric cryptosystems andcancelable biometrics[J]. EURASIP Journal on Information Security, 2011, 3(1): 1-25.
[9] NANDAKUMAR K, JAIN A K, PANKANTI S. Fingerprint-based fuzzy vault:Implementation and performance[J]. IEEE Transactions on Information Forensics and Security, 2007, 2(4): 744-757.
[10]ESKANDER G S, SABOURIN R, GRANGER E. A dissimilarity-based approach for biometric fuzzy vaults-application to handwritten signature images[C]// New Trends in Image Analysis and Processing-ICIAP 2013. Naples: ICIAP 2013 International Workshops, 2013: 95-102.
[11]劉新星, 鄒瀟湘, 譚建龍. 大數(shù)因子分解算法綜述[J]. 計(jì)算機(jī)應(yīng)用研究, 2014, 31(11): 3201-3207.
LIU Xinxing, ZOU Xiaoxiang, TAN Jianlong. Survey of large integer factorization algorithms[J]. Application Research of Computers, 2014, 31(11): 3201-3207.
[12]CONTI V, VITABILE S, SORBELLO F. Fingerprint traits and RSA algorithm fusion technique[C]// Complex, Intelligent and Software Intensive Systems (CISIS). Palermo: IEEE, 2012: 351-356.
[13]RSA(cryptosystem) [EB/OL].
[2014.11]. http://en.wikipedia.org/wiki/RSA_(cryptosystem).
[14]AGRAWAL M, KAYAL K, SAXENA N. Primes is in P[J]. Annals of Mathematics, 2004, 160(2): 781-793.
[15]龍建超. 公鑰算法中大素?cái)?shù)生成方法的研究與改進(jìn)[D]. 昆明: 云南大學(xué), 2014.
LONG Jianchao. Research and improvement on the method of generating large prime number in public key algorithm[D]. Kunming: Yunnan University, 2014.
[16]STALLINGS W.密碼編碼學(xué)與網(wǎng)絡(luò)安全:原理與實(shí)踐[M]. 王張宜, 楊敏, 杜瑞穎, 等, 譯. 北京: 電子工業(yè)出版社, 2012: 104-131, 236-257.
STALLINGS W. Cryptography and NetworkSecurtiy: Principles and Practice[M]. Bei Jing: Electronic Industry Press, 2012: 104-131, 236-257.
[17]NIST SP800-22. A statistical test suite for random and pseudorandom number generators for cryptographic applications[S]. Gaithersburg: ITLB, 2001.
(編輯 王小唯 苗秀芝)
Biometric certificate key generation algorithm
WANG Jinhai, WEI Ning, CUI Jun, LI Xueyan, LI Xiuyan
(School of Electronic and Information Engineering, Tianjin Polytechnic University, Tianjin 300387, China)
The RSA public and private keys of biometric certificate can be generated from biometric key which can be seen as random numbers.However, the size of biometric key is shorter than the RSA public and private keys. To overcome this limitation, a biometric certificate key generation algorithm is proposed. In this method, the biometric primes is generated by the combination of symmetric key encryption algorithm and prime generation algorithm, in addition, the hashing algorithm is used to ensure the feasibility of the biometric primes. The generated biometric primes are safe and usable so that they can be applied to generate the RSA public and private keys of biometric certificate. Experimental results using VC6.0 and MIRACL show that the proposed method not only is feasible, but also has practical application value.
biometric encryption; biometric certificate; biometric key; RSA; big primes
10.11918/j.issn.0367-6234.2016.11.014
2015-06-29
天津市高等學(xué)??萍及l(fā)展基金計(jì)劃項(xiàng)目(20140805)
王金海(1966—),男,博士,教授
崔 軍,cuijunlq@126.com
TP309.2
A
0367-6234(2016)11-0090-06