楊亞濤, 張奇林, 張艷碩, 左珮良
1. 北京電子科技學院 電子與通信工程系, 北京100070
2. 西安電子科技大學 通信工程學院, 西安710071
研究和實際應用表明, 人的指紋具有穩(wěn)定性和唯一性, 即每個人的指紋都與其他人有著一定的區(qū)別,且每個人的指紋終身不會改變. 這使得指紋識別技術成為當今身份識別技術的核心和熱點. 指紋識別是一種常見的身份認證方式, 相比于其他認證方式, 具有數據量小、計算量小、獲取方便等特點. 1891 年,Galton[1]提出著名的高爾頓分類系統(tǒng), 之后英國、美國、德國等國家的執(zhí)法部門先后將指紋鑒別作為身份鑒定的主要方法, 從此指紋識別開始走進人們的生活. 目前, 指紋識別作為一種身份鑒定方法已被廣泛應用, 如各種電子消費軟件的指紋支付、智能手機的指紋鎖, 甚至一些電子門鎖也采用了指紋識別技術.
隨著信息化以及云計算、云存儲的發(fā)展, 云服務提供了強大的運算和存儲能力, 部分單位已將用戶的私人信息存儲至云數據庫而非用戶本地, 這對用戶個人信息的隱私保護構成了很大挑戰(zhàn).
1978 年, Rivset 等人[2]首次提出了隱私同態(tài)的概念. 2009 年, Gentry[3]提出了一種基于理想格的全同態(tài)(fully homomorphic encryption, FHE) 算法. 2010 年, Dijk 等人[4]在Gentry 的思路上提出了整數上的全同態(tài)加密方案DGHV, 該方案實現了對整數的全同態(tài)加密, 其安全性基于近似最大公約數[5](approximate greatest common divisor, AGCD) 困難問題. 2012 年, Brakerski 等人[6]提出了BGV 方案, 突破了Gentry 提出的構造框架, 不使用Bootstrapping 技術獲得層次型FHE 方案. 之后Fan 等人[7]對BGV 方案進行了優(yōu)化, 并提出了BFV 方案. 近年, Microsoft 發(fā)布了同態(tài)加密軟件庫SEAL (simple encrypted arithmetic library), 并且不斷地進行更新和完善.
SEAL 是Microsoft 研發(fā)的一款開源的同態(tài)加密庫, 使用C++ 語言進行開發(fā), 可以對密文下的數據進行同態(tài)運算操作, 從而可以應用在云端的安全存儲與安全計算. 在2016 年, Bajard 等人[8]提出了BFV 方案的一個RNS (residue number systems) 變體, Microsoft 在2017 年發(fā)布了SEAL 的2.3.0 版本, 該版本實現了對Bajard 等人方案的支持. 2018 年, Microsoft 發(fā)布了SEAL 的3.0 版本, 該版本增添了對Cheon 等人[9]提出的CKKS 方案的支持, 實現了實數上的密文運算. 2019 發(fā)布的SEAL3.2.0 版本中, 又實現了對.NET 開發(fā)的支持.
2002 年, Hacigumus 等人[10]提出了數據庫即服務(database as a service, DaaS) 的概念. 云存儲使得用戶可以將數據存儲到云服務器上, 從而節(jié)省本地存儲空間. 同時, 云存儲也可能泄露用戶數據信息.傳統(tǒng)加密技術也可以提供對用戶數據的安全性保護, 但是加密后的數據會喪失原本數據的數學特性, 導致加密后數據的可操作性大大降低. 若要對密文下的指紋特征進行匹配, 最重要的是解決數據隱私性和數據可操作性之間的矛盾. 同態(tài)加密技術對此難題有著良好的契合性, 同態(tài)加密不僅能保護數據的隱私性, 還可以對密文進行一定的運算操作. 在云服務飛速發(fā)展的今天, 基于同態(tài)加密的指紋識別系統(tǒng)有著廣闊的應用前景.
本文提出了一種基于SEAL 庫的指紋特征密文識別系統(tǒng), 主要貢獻為:
(1) 首次提出了基于SEAL 庫的指紋特征識別方案. 本方案可以有效避免用戶指紋信息的泄露, 防止內部人員對信息的獲取. 將加密后的指紋特征存儲于云端數據庫中, 將密文下的指紋匹配算法部署于第三方計算平臺, 借助云端和第三方計算平臺可以實現對數據的快速處理, 有效解決了傳統(tǒng)指紋識別儀對數據處理和存儲的局限性, 相比于傳統(tǒng)的指紋識別方案有著更為廣闊的應用前景.
(2) 實現并測試了基于SEAL 庫的指紋特征密文識別系統(tǒng). 本方案基于SEAL 庫進行開發(fā), 平均一次識別的時間為1246.33 ms, 相比于Song 等人[11]在2018 年提出的基于SEAL 的虹膜特征密文認證系統(tǒng)耗時減少64.26%. 相比Dakhil 等人[12]在2018 年提出的方案, 本方案識別率提高了1.6%, 本方案認假率降低了45.08%. 相比Ali 等人[13]、Kahyaei 等人[14]和Chen 等人[15]提出的明文指紋識別方案, 系統(tǒng)提供了密文狀態(tài)下幾乎同級別的認假率和拒真率.
近幾年, 研究人員提出了各種方案來提供更優(yōu)的指紋識別算法. Liu 等人[16]在2015 年提出了基于3D 的指紋識別思路, 相比于2D 的指紋識別可以獲得更多有效信息. Jain 等人[17]在2017 年對幼兒的指紋進行了對比研究, 指出對六個月及以上幼兒的指紋進行計算機識別是可行的. Yoon 等人[18]在2015年對指紋的穩(wěn)定性和唯一性進行了研究. 由于計算機并行計算能力的提升, 神經網絡開始應用于指紋識別等身份認證領域, Dakhil 等人[12]在2018 年, 提出了一種基于KNN (K-nearest neighbor) 神經網絡的指紋識別方案, 該方案擁有較好的識別率, 認假率與拒真率. Marasco 等人[19]在2015 年對指紋識別的抗欺騙方案進行了研究. Ali 等人[13]在2016 年提出了一種基于細化匹配(minutiae matching) 的指紋識別系統(tǒng), 并進行了實現和測試. Kahyaei 等人[14]在2016 年提出了一種強魯棒性的指紋識別系統(tǒng), 并進行了算法實現和測試.
隨著云服務的發(fā)展, 數據管理逐漸傾向于采用云儲存和云處理模式, 給用戶帶來便捷的同時, 也會對用戶的數據安全與隱私構成一定的威脅. 現有的方案大多數都為明文狀態(tài)下的指紋識別方案, 這會給惡意攻擊者提供實施攻擊的可能. 在傳統(tǒng)的指紋識別系統(tǒng)中, 首先進行指紋的初次采集, 用戶在客戶端錄入指紋并計算出特征點, 再將特征點和用戶ID 上傳至云服務器, 云服務器接收到數據后, 以用戶ID 作為Key值進行存儲. 指紋錄入后便可進行指紋的匹配工作, 匹配時需要再次對指紋進行錄入和特征點提取, 將此次提取出的特征點和用戶ID 上傳到服務器. 服務器接收到數據后, 以用戶ID 作為Key 值在數據庫中進行檢索以獲取對應的特征點, 然后, 將已存儲的特征點與上傳的特征點進行匹配操作, 將最終結果發(fā)送至客戶端.
本文提出了一種基于同態(tài)加密的指紋識別方案, 既能保護用戶數據的安全, 又能讓用戶享受云服務帶來的強大運算能力. 在基于同態(tài)加密的指紋識別系統(tǒng)中, 首先, 用戶在客戶端得到自己的公私鑰對. 在指紋的初次采集中, 用戶在客戶端錄入指紋并計算出特征點, 再用公鑰對特征點進行加密, 最后將加密后的特征點與用戶ID 上傳到服務器進行存儲. 指紋錄入后便可進行指紋的匹配過程, 匹配時需要再次對指紋進行錄入、提取并加密特征點, 加密后的特征點和用戶ID 上傳至服務器. 服務器接收到數據后, 以用戶ID作為Key 值在數據庫中進行檢索以獲取對應的特征點, 將已存儲的密文特征點與上傳的密文特征點進行密文下的同態(tài)匹配操作, 將匹配后得到的數據發(fā)送至客戶端. 客戶端對接收到的數據進行解密操作, 對解密后的明文數據進行少量運算, 得到最終結果.
當前主流的同態(tài)加密庫為HElib、SEAL 以及FV-NFLlib. 2018 年, Melchor 等人[20]對HElib、SEAL 以及FV-NFLlib 做了性能上的比較, SEAL 庫的性能在多個方面均優(yōu)于HElib 和FV-NFLlib, 所以本方案選取SEAL 庫作為開發(fā)工具進行開發(fā).
指紋特征密文識別系統(tǒng)采用BFV 方案. 下面簡要介紹BFV 方案的原理[6,21].
BFV 方案建立在環(huán)R=Z[x]/(xn+1) 上,λ為安全系數,t為約減明文多項式的系數,χ是R上的錯誤概率分布,ω是對數的底數, 該方案具體算法如下.
為了證明解密算法是正確的, 將證明下面的輔助定理.
定理1 假設‖χ‖
如果2·δR·B2+B<Δ/2, 解密算法是正確的.
證明:
因為Δ·m+e·u+e1+e2·s已經在Rq具有足夠小的誤差項,因此可以推斷出v=e·u+e1+e2·s. 因為e,e1,e2,u,s隨機均勻的選自χ,所以通過恢復給定邊界‖v‖≤2·δR·B2+B. 對c0+c1·s=Δ·m+v+q·r除q乘t, 得到m+(t/q)·(v ?ε·m)+t·r,·這里ε=q/t ?Δ=rt(q)/t<1. 為了四舍五入后的結果正確, 需要讓(t/q)·‖v ?ε·m‖<1/2.
v被稱為噪聲, 當噪聲過大時, 解密后將得到不正確的明文. 同態(tài)加法運算和同態(tài)乘法運算都將增加噪聲, 當噪聲過大時, 需要進行重線性化操作.
SEAL 是Microsoft 研發(fā)的一款開源的同態(tài)加密庫, 提供了圖1 所示的3 大功能模塊.
圖1 SEAL 庫功能模塊圖Figure 1 Functional modules in SEAL library
.NET 功能模塊提供信息安全應用開發(fā)接口. CKKS 方案可以對加密的實數或復數進行同態(tài)運算和重線性化, 得到近似精度的結果, 可以用在評估加密數據上的機器學習模型或用來計算加密位置距離等場合. BFV 方案允許在對加密的整數上執(zhí)行同態(tài)運算、重線性化、批處理, 得到精確值結果. 我們選用BFV方案進行開發(fā), 并對SEAL 庫中BFV 方案的調用過程進行簡單分析, 調用過程中所需要調用的對象如表1 所示.
在表1 中, 第一個設置的參數是多項式模的次數, 其值為2 的正次冪. 較大的poly_modulus_degree會使密文快速膨脹, 運算操作也更慢, 推薦值為1024、2048、4096、8192、16 384、32 768. 第二個設置的參數是密文系數模數, 其值越大, 噪聲也會越大, 同時意味著可以進行更復雜的運算. SEAL 庫分別提供了128-bit、192-bit、256-bit 的安全級別, coeff_modulus_128() 表示選用128-bit 的安全級別. 第三個設置的參數是明文模數, 其值可以是任何正整數, 我們取值為2 的冪. 明文模數決定了明文數據類型的大小和乘法中噪聲的消耗, 為了獲得最佳性能, 要盡量保持明文數據類型盡可能小. 新加密密文的噪聲預算是log2(coeff_modulus/plain_modulus) bits. 同態(tài)乘法運算的噪聲消耗為log2(plain_modulus)+(other terms). 所有參數設置完畢后, 就可以生成context 對象. 運用context 對象初始化密鑰生成器, 從而獲得公鑰和私鑰. 初始化加密器、解密器、運算器之后, 便可調用相關對象完成同態(tài)運算操作.
表1 SEAL 庫調用對象Table 1 Objects called in SEAL library
在云環(huán)境下, 指紋識別系統(tǒng)的匹配操作往往會部署在不可信的第三方平臺上, 使用傳統(tǒng)指紋識別系統(tǒng)時, 首先對指紋進行錄入操作, 再對錄入后的指紋進行特征點的提取操作. 客戶端為用戶生成獨有的用戶ID, 將用戶ID 和特征點上傳至數據庫服務器, 以用戶ID 進行檢索并將檢索得到的特征點與上傳的特征點進行指紋匹配操作. 由于指紋匹配操作是在明文下進行, 這為惡意破壞者提供了竊取甚至篡改匹配結果的可能, 使得識別結果的正確性和數據的機密性難以得到保障. 如圖2 所示.
圖2 傳統(tǒng)指紋識別系統(tǒng)Figure 2 Traditional fingerprint characteristics recognition system
基于同態(tài)加密技術的指紋識別系統(tǒng)使得云端可以直接對密文下的特征點進行匹配操作, 從而在指紋匹配階段保障了指紋特征點數據的機密性、安全性和隱私性, 且設計簡單、思路清晰, 如圖3 所示. 假設攻擊者擁有對云端的操縱權, 如果攻擊者想要竊取或者篡改信息, 那就需要知道用戶的私鑰, 而用戶私鑰并不會對外公開, 這就有效防止了來自云端內部的惡意攻擊. 同時, 基于同態(tài)加密的密文指紋識別系統(tǒng)更加適用于云存儲和云計算快速發(fā)展的今天, 可以在保證安全的前提下將密文指紋匹配操作部署至云端, 從而借助云端強大的計算能力實現高效的指紋識別.
圖3 指紋特征密文識別系統(tǒng)Figure 3 Fingerprint characteristics recognition system in ciphertext
分析指紋識別系統(tǒng)的基本數據處理流程, 可以得到云環(huán)境下指紋識別系統(tǒng)的網絡架構, 如圖4 所示.其中, 客戶端和云端的功能分別為:
圖4 云環(huán)境下指紋識別平臺網絡架構Figure 4 Network architecture for fingerprint recognition platform under cloud environment
客戶端: 提供指紋采集、特征點提取、特征點加密、匹配結果解密、計算最終結果的功能, 與云端協同完成指紋識別.
云端: 提供數據特征點密文的存儲和匹配功能. 對密文特征點進行匹配操作, 并將結果返回給客戶端.云端中的數據除用戶ID 外均以密文進行存儲, 通過調用部署的函數接口, 實現密文數據的同態(tài)運算.
在密文指紋識別系統(tǒng)中, 云端存儲的數據為使用SEAL 庫進行加密運算后的指紋特征點密文, 并可以直接進行密文下的指紋匹配, 數據庫所維持的數據關系也比較簡單. 數據庫中的實體關系圖(entity relationship diagram, ERD) 如圖5 所示.
圖5 數據庫中的實體關系圖Figure 5 Entity relationship in database
數據庫中主要包含2 個實體: 用戶和密文特征點. 其中, 用戶實體包含用戶ID、姓名屬性; 密文特征點包含用戶ID、特征點數量、特征點密文、分隔符(一般情況下, 一個指紋會有多個特征點, 而數據庫不支持對數組的存儲, 所以我們將一個指紋的所有特征點密文存儲在一起, 并以分隔符為界).
指紋特征密文識別系統(tǒng)大致分為注冊階段和匹配階段. 主體步驟如下:
(1) 注冊階段.
客服端執(zhí)行Init(EnvFHE), 用戶使用私有的初始化參數來構建同態(tài)加密環(huán)境EnvFHE.
根據公/私鑰對生成算法KeyGen 和參數λ,生成公鑰pk 和私鑰sk,并存儲在本地,客戶端生成UID.
客戶端首先對用戶指紋進行提取操作, Comp() 函數將提取后的指紋信息fingerinit加載進一個unsigned long 類型的對象re 中. 對re 進行平滑、計算方向場、分割前景背景、二值化等操作后, 進行特征點提取, 特征點featureinit存入FEATURE 類型中, FEATURE 數據結構如圖6 所示. FEATURE 類包含一個int 類型的MinutiaNum 對象, 用來記錄特征點數目, 特征點具體內容存儲在MINUTIA 類型的數組中. MAXMINUTIANUM 限定了最大特征點個數(默認為50). MINUTIA 類包含4 個int 類型的成員.x、y用來記錄特征點的位置坐標, Direction 用來記錄特征點的方向角度, Triangle 用來記錄特征點為中心外接圓半徑為定值的正三角形三個頂點的方向, Type 記錄特征點的指紋類型. 將明文特征值數據結構中的各成員類型替換為相應的密文類型, 就構成密文特征值的數據結構.
圖6 明文特征值的數據結構Figure 6 Data structure of plaintext characteristics
客戶端使用 Encrypt() 函數和用戶公鑰 pk 對特征點 featureinit進行加密, 得到特征點密文featureCtxt.
將UID 與特征點的密文值(UID,featureCtxt) 一起上傳至云端. 云端再以UID 為Key 值對其進行存儲.
(2) 匹配階段
與注冊階段相似, 客戶端首先對用戶指紋進行提取得到 fingermatch, 再用 Comp() 函數提取出特征點 featurematch; 客戶端使用用戶公鑰 pk 對特征點 featurematch進行加密, 得到特征點密文featurematch_Ctxt.
客戶端將UID 和密文特征點(UID,featurematch_Ctxt) 上傳至服務器數據庫.
數據庫服務器以 UID 為 Key 值進行檢索得到 featureCtxt, 將檢索得到的 featureCtxt與featurematch_Ctxt進行匹配Verification.
在明文識別系統(tǒng)中, 執(zhí)行Verification 操作需要比較特征點類型、計算特征點之間的距離和夾角, 將各計算值與各閾值進行對比, 從而得出識別結果. 由于目前主流的同態(tài)加密算法還不能支持同態(tài)比較操作,所以這種方案并不能夠直接應用于同態(tài)密文識別系統(tǒng)中. 本方案對明文識別模式進行修改,將Verification操作分為兩個功能模塊. 第一個功能模塊部署于云端, 第二個功能模塊部署于客戶端, Verification 操作需要云端與客戶端一起協作完成. 圖7 和圖8 分別是云端和客戶端的Verification 流程圖.
圖7 云端Verification 流程圖Figure 7 Verification flow in cloud
圖8 客戶端Verification 流程圖Figure 8 Verification flow in client
假設要比對的一對指紋圖片為X、Y (假定X 為注冊指紋圖片, Y 為待比對指紋圖片), X 中特征點xi對應的特征值為CVxi= (Typexi,pxxi,pyxi,Dirxi), Typexi表示特征點xi的類型值、pxxi和pyxi表示特征點xi的坐標、Anlxi表示特征點xi的方向角度. Y 中特征點對應的特征值定義與此類似. 分別計算特征點xi與特征點y1,y2,··· ,yn的類型差值、特征點之間的距離和夾角.
指紋類型值Typexi表示特征點xi的類型值, 指紋類型分為斗型、弓型和箕型, 分別為1、2、3. 取定一個特征點xi, 分別計算xi與y1,y2,··· ,yn的類型差值, 記為Diffxi,yj. 重復此過程, 分別計算出所有x1,x2,··· ,xn與y1,y2,··· ,yn的類型差值, 每一個特征點需要進行n次減法運算, 所有特征點總共需要n2次減法運算.
根據特征點x的坐標px 和y的坐標py, 分別計算出xi與y1,y2,··· ,yn歐氏距離的平方, 記為Disxi,yj. 重復此過程, 分別計算出所有有x1,x2,··· ,xn與y1,y2,··· ,yn歐氏距離的平方, 每個特征點x、y坐標分別需要進行n次減法運算、n次乘法運算, 所有特征點總共需要進行2n2次減法運算、n2次加法運算、2n2次乘法運算.
根據特征點的方向角度Dir, 分別計算xi與y1,y2,··· ,yn的夾角, 記為Anlxi,yj. 重復此過程, 分別計算出所有x1,x2,··· ,xn與y1,y2,··· ,yn的夾角, 每一個特征點需要進行n次減法運算, 所有特征點總共需要n2次減法運算.
云端完成計算后, 將所有計算結果發(fā)至客戶端.
客戶端首先用私鑰對收到的數據進行解密, 得到對應的明文.
首先判斷所得明文類型差值diffxi,yj是否為0, 若不為0 則代表指紋類型不同, 從而不可能匹配, 直接得出結果為不匹配.
如果類型差值為0, 根據所得明文分別計算xi與y1,y2,··· ,yn的得分scorexi,yj. 根據得分scorexi,yj求xi的最高得分score_maxxi. 重復上述過程, 直到計算出所有x1,x2,··· ,xn的最高得分. 對所有最高得分進行求和, 得出最終得分score_final, 將最終得分與閾值進行比較, 大于閾值則結果為匹配, 否則結果為不匹配.
在上述方案中, 客戶端如果直接對MAXMINUTIANUM (默認為50 個) 特征點進行加解密, 計算量將難以承受. 為了減少客戶端的工作量, 進一步采用批處理技術(batching), 將客戶端的加解密次數降為只有4 次. 批處理技術[22]利用中國剩余定理(Chinese remainder theorem, CRT) 和單指令多數據流(single instruction multiple data, SIMD)[23], 執(zhí)行批處理時, 將n個明文數據打包為一個中間明文p1,p2,··· ,pn, 對中間明文p的運算相當于采用并行方式對p1,p2,··· ,pn進行運算.
以指紋類型值為例, 注冊時客戶端采集每個特征點的指紋類型值Typexi得到如下矩陣Mtype, 采用批處理技術將矩陣Mtype打包成為一個中間明文ptype, 對其執(zhí)行同態(tài)加密得到所對應的密文ctype.
本方案將匹配時的數值大小比較運算轉化為同態(tài)加減法運算, 客戶端收到結果并解密后便可根據結果的正負來判斷數值的大小. 把盡可能多的運算部署于云端, 少量的運算過程部署于客戶端, 同時利用批處理技術進一步降低客戶端的加解密運算量. 從而高效實現同態(tài)密文指紋識別方案.
測試環(huán)境配置為Intel i5 1.6 GHz 處理器, 8 GB 內存, Win10 操作系統(tǒng), 下面給出認假率和拒真率的相關定義.
定義1 (認假率) 又稱錯誤接收率、false accept rate、FAR、flse match rate、FMR, 指在來自不同類別的樣本比對過程中, 比對結果誤為同類的比對次數占不同類別的樣本比對總次數的比例.
定義2 (拒真率) 又稱錯誤拒絕率、false reject rate、FRR、false non-match rate、FNMR, 在來自同類樣本的比對過程中, 比對結果誤為不同類的比對次數占同類樣本的總比對次數的比例.
本方案的測試考慮了多種情況帶來的影響, 例如指頭的脫皮、指紋的斷裂、不同大小的指紋錄取面積.如圖9 所示, (a) 為帶有脫皮的指紋, (b) 為帶有斷裂的指紋, (c) 為同一指紋不同的采集面積, 測試樣本包含上述所有情況, 并且每種情況均進行了多次測量并取平均值.
圖9 不同類型的指紋圖片Figure 9 Different fingerprint images
本方案與近5 年新提出的明文指紋識別方案進行對比, 給出了在識別率、認假率、拒真率上的對比結果, 如表2 所示. 文獻[12] 提出了一種基于KNN 神經網絡的指紋識別方案, 文獻[13] 提出了一種基于細化匹配(minutiae matching) 的指紋識別方案, 文獻[14] 提出了一種使用pseudo-Zernike moments 的魯棒指紋匹配方案, 文獻[15] 提出了一種超短二進制描述符(USB-POC) 指紋快速匹配方案. 上述4 種方案在識別率上僅高出本方案1% 到2%. 本方案的認假率相對于文獻[12] 降低了45.08%, 相對于文獻[15]降低了85.06%. 本方案的拒真率優(yōu)于文獻[13] 和文獻[15], 最為關鍵的是, 本方案提供了用戶指紋特征數據的安全性與隱私性的保障.
表2 與其他明文方案性能對比Table 2 Performance comparison with other plaintext schemes
為了說明同態(tài)加密的引入對原有明文指紋識別方案在時間效率上的影響程度, 與本方案對應的明文識別方案進行了實現和對比, 結果如表3 所示.
表3 本方案的密文實現與明文實現的性能對比Table 3 Performance comparison between ciphertext and plaintext in proposed scheme
從表3 中可以看出, 同態(tài)運算在噪聲不超出上限的情況下, 不會對識別結果產生影響. 也就是說, 明文實現與密文實現的識別率、認假率、拒真率之間只存在微小的差異, 可能的原因在于, 兩次錄入的指紋圖片不能保證完全一致. 但密文實現的用時比明文實現多出1046.33 ms, 隨著云計算能力的不斷加強, 此差異會不斷減小.
為了進一步說明本全同態(tài)加密指紋識別方案的優(yōu)勢, 與采用其他生物特征的同態(tài)識別方案也進行了時間效率上的對比, 結果如表4 所示.
表4 與其他同態(tài)身份識別系統(tǒng)的性能對比Table 4 Performance comparison with other homomorphic identification recognition schemes
文獻[11] 給出了一種基于SEAL 庫的虹膜特征密文認證系統(tǒng). 由于指紋識別過程中的數據量和計算量遠小于虹膜識別, 所以在都基于SEAL 庫進行開發(fā)的同時, 本方案的耗時相比于文獻[11] 減少了64.23%.
本文通過將同態(tài)加密與指紋識別相結合, 首次提出了一種基于SEAL 庫的指紋特征密文識別方案與系統(tǒng). 在指紋識別系統(tǒng)中引入全同態(tài)加密運算, 把密文狀態(tài)的指紋特征信息存儲于云端數據庫, 通過云計算克服了密文識別中加解密運算開銷過大的難題, 高效完成了密文識別. 測試結果表明, 與當前的明文指紋識別方案相比, 本文提供了密文狀態(tài)下與之幾乎同級別的識別率、認假率和拒真率. 本方案和系統(tǒng)在密文人臉識別、隱私保護、身份認證領域具有一定的參考價值和應用前景. 下一步研究方向是結合神經網絡進一步提高識別率并且降低認假率和拒真率.