ECC加密算法在指紋加密技術(shù)中的應(yīng)用

隨著近年來開始逐漸成熟的生物特征識(shí)別技術(shù)的發(fā)展,將其應(yīng)用在信息安全上,利用生物特征的惟一性、穩(wěn)定性等特點(diǎn)與加密算法融合,為網(wǎng)絡(luò)信息安全提供保障。那么我們利用加密技術(shù)中著名的ECC加密算法,設(shè)計(jì)了指紋信息加密方案,在使用指紋信息作為身份認(rèn)證密碼的系統(tǒng)中,可使指紋信息的傳輸更安全可靠。

一、ECC加密算法

目前常用的公鑰密碼體制根據(jù)其所依據(jù)的難題,一般分為兩大類:大整數(shù)分解問題類和離散對(duì)數(shù)問題類。ECC加密算法可歸為離散對(duì)數(shù)類。ECC加密算法來源于對(duì)橢圓曲線的研究,在橢圓曲線加密(ECC)中,利用即定義在有限域上的橢圓曲線。其方程如下:

y2=x3+b(mod p)

這里p是素?cái)?shù),a和b為兩個(gè)小于p的非負(fù)整數(shù),它們滿足:

4a3+27b2(mod p)≠0, x,y,a,b∈Fp

則滿足y2=x3+ax+b(mod p)的點(diǎn)(x,y)和一個(gè)無窮點(diǎn)O就組成了橢圓曲線E。

橢圓曲線離散對(duì)數(shù)問題ECDLP定義如下:在給定橢圓曲線E,選取橢圓上一個(gè)點(diǎn)P,在給定整數(shù)k的情況下,進(jìn)行如下的點(diǎn)積運(yùn)算。

Q=kp=p*p*p...*p_(k個(gè)p)

其中:點(diǎn)P1(x1,y1)和點(diǎn)P2(x2,y2)的點(diǎn)積運(yùn)算R(x,y)=p1*p2定義如下:

x=t2-x1-x2 _ y=t(x1-x)-y1

當(dāng)P1≠P2時(shí),t=(y1-y2)/(x1-x2) ,當(dāng)P1=P2時(shí) t=3(x12+a)/2y

可以證明,已知k和P計(jì)算Q比較容易,而由Q和P計(jì)算k則比較困難,至今沒有有效的方法來解決這個(gè)問題,這就是橢圓曲線加密算法原理之所在。我們把點(diǎn)P稱為基點(diǎn)(base point),k(k<n, n為基點(diǎn)P的階)稱為私有密鑰(private key), Q稱為公開密鑰(public key)。

ECC加密算法的安全性基于橢圓曲線離散對(duì)數(shù)問題的難解性。從目前的研究成果來看,橢圓曲線上的離散對(duì)數(shù)問題比有限域上的離散對(duì)數(shù)似乎更難處理。迄今還沒有出現(xiàn)類似于解有限域上離散對(duì)數(shù)問題的index-calculus算法來解一般橢圓曲線上的離散對(duì)數(shù)問題。這就意味著可以在ECC加密算法中采用較小的數(shù)以達(dá)到與使用更大的有限域同樣的安全性。

二、ECC加密算法在指紋加密技術(shù)中的應(yīng)用

1、采集端與認(rèn)證端相分離的系統(tǒng)設(shè)計(jì)方案

用戶指紋采集端與認(rèn)證端分離、兩者之間利用Internet進(jìn)行特征傳輸是基于指紋識(shí)別系統(tǒng)的最大特點(diǎn)。在用戶端首先通過指紋提取儀將用戶活體指紋采集下來,以數(shù)字圖像的形式傳輸給用戶端計(jì)算機(jī),再進(jìn)行相應(yīng)的預(yù)處理及特征提取操作,將指紋圖像轉(zhuǎn)換成特征序列,最后經(jīng)數(shù)字加密后通過企業(yè)Internet傳輸給認(rèn)證端,進(jìn)而完成相應(yīng)的解密、特征檢索及對(duì)比,并將比對(duì)結(jié)果返回給用戶端,從而實(shí)現(xiàn)網(wǎng)絡(luò)認(rèn)證功能。

采集端與認(rèn)證端相分離的系統(tǒng)設(shè)計(jì)方案用戶指紋采集端與認(rèn)證端分離、兩者之間利用Internet進(jìn)行特征傳輸是基于指紋識(shí)別系統(tǒng)的最大特點(diǎn)。在用戶端首先通過指紋提取儀將用戶活體指紋采集下來,以數(shù)字圖像的形式傳輸給用戶端計(jì)算機(jī),再進(jìn)行相應(yīng)的預(yù)處理及特征提取操作,將指紋圖像轉(zhuǎn)換成特征序列,最后經(jīng)數(shù)字加密后通過企業(yè)Internet傳輸給認(rèn)證端,進(jìn)而完成相應(yīng)的解密、特征檢索及對(duì)比,并將比對(duì)結(jié)果返回給用戶端,從而實(shí)現(xiàn)網(wǎng)絡(luò)認(rèn)證功能。

2、系統(tǒng)通信過程中的指紋信息加密通信過程

應(yīng)用服務(wù)器端的應(yīng)用程序和客戶端的客戶程序利用橢圓曲線進(jìn)行加密通信的過程。

ECC加密算法在指紋加密技術(shù)中的應(yīng)用

(1)應(yīng)用程序選定一條橢圓曲線Ep(a,b),并取橢圓曲線上一點(diǎn),作為基點(diǎn)P。

(2)應(yīng)用程序選擇一個(gè)私有密鑰k,利用點(diǎn)積運(yùn)算生成公開密鑰Q=kP。

(3)應(yīng)用程序?qū)p(a,b)和點(diǎn)Q,P傳給用戶。

(4)客戶程序接到信息后,將待傳輸?shù)闹讣y特征信息編碼到Ep(a,b)上一點(diǎn)M,并產(chǎn)生一個(gè)隨機(jī)整數(shù)r (r<n)。

(5)客戶程序計(jì)算加密信息C1=M+rQ;C2=rP。(K=Q) 。

(6)客戶程序?qū)1、C2傳給應(yīng)用程序。

(7)應(yīng)用程序接到信息后,計(jì)算C1-kC2,結(jié)果就是點(diǎn)M。因?yàn)镃1-kC2=M+rQ-k(rP)=M+rQ-r(kP)=M。再對(duì)點(diǎn)M進(jìn)行解碼就可以得到指紋特征信息。

3、指紋加密的安全性

加密的強(qiáng)度主要依賴于密鑰長(zhǎng)度和保密性,但黑客破解加密信息,一般是針對(duì)所設(shè)的密碼,而不是去窮舉密鑰。

一般的加密功能是通過密碼來實(shí)現(xiàn)的,而密碼的設(shè)置一般不超過八位數(shù)字,于是存在密碼易被竊取、破譯和遺忘的問題。因此,加密的安全性往往取決于密碼的安全性,而并不是加密算法的復(fù)雜性。但是,如果我們用的密碼難以窮舉,密鑰長(zhǎng)度又足夠長(zhǎng),則其安全性就可得到保障。

這里,指紋加密信息采用256bit的指紋特征值作為加密信息,則其可能的所有組合就有2256種。加上指紋的惟一性,對(duì)涉密數(shù)據(jù)訪問的用戶身份也進(jìn)行了控制,達(dá)到了雙重保險(xiǎn)。

ECC加密算法在指紋加密技術(shù)中的應(yīng)用,適合使用指紋信息作為身份認(rèn)證密碼的通信系統(tǒng)中,它簡(jiǎn)單、方便、安全、快捷。隨著計(jì)算機(jī)技術(shù)和信息處理與指紋識(shí)別技術(shù)的不斷進(jìn)步,指紋識(shí)別技術(shù)得到了廣泛的應(yīng)用,保障指紋信息傳輸過程安全可靠的指紋信息加密技術(shù)必將成為信息加密技術(shù)的重要應(yīng)用領(lǐng)域。

小知識(shí)之加密算法:

數(shù)據(jù)加密的基本過程就是對(duì)原來為明文的文件或數(shù)據(jù)按某種算法進(jìn)行處理,使其成為不可讀的一段代碼,通常稱為“密文”,使其只能在輸入相應(yīng)的密鑰之后才能顯示出本來內(nèi)容,通過這樣的途徑來達(dá)到保護(hù)數(shù)據(jù)不被非法人竊取、閱讀的目的。 該過程的逆過程為解密,即將該編碼信息轉(zhuǎn)化為其原來數(shù)據(jù)的過程。