生物特徵密文認證系統

買賣虛擬貨幣
前不久,全球生物特徵資料大範圍洩露,涉及到83個國家以及2700多個公司與機構,導致許多國家的公司安全信譽岌岌可危。生物特徵(指紋、虹膜、人臉)作為識別個人身份的一種方式,帶來了極大的方便。一方面生物特徵對於個人是唯一的,另外一方面個人生物特徵便於使用。不像口令與密碼還需要記憶。然而,這是一把雙刃劍。生物特徵一旦丟失將會帶來無法挽回的損失。它不像口令和密碼可以隨時更改。就像這次大規模生物特徵洩露事件,遭洩露的個人很可能將來無法再使用其生物特徵作為認證方式。對其個人將來的生活帶來極大的影響。導致生物特徵資料洩露的一個根本原因是沒有保護好儲存在資料庫的中的生物特徵模板。寧波格密鏈網路科技有限公司一直致力於全同態加密的應用研究。早在幾年前,陳智罡博士團隊就意識到生物特徵的弱點,開始研究如何在密態下構建生物特徵認證系統。基於全同態加密技術,陳智罡博士團隊相繼開發出指紋密文認證系統、虹膜密文認證系統,人臉安全識別系統。得到了業界廣泛認可與關注,目前正在開展產業化階段。
1. 問題的提出與解決全同態加密能夠在不解密的情況下,對密文進行任意計算。如果生物特徵資料從儲存到認證過程都是在密態下完成,即使生物特徵資料丟失了,也不會對系統有任何影響。因為生物特徵在系統中是加密的,敵手在無法獲得金鑰的情況下,將無法獲得生物特徵的明文資料。這一場景非常適合全同態加密領域的應用。陳智罡博士團隊就此展開了研究。難點一看似很容易,只要將虹膜或者指紋資料透過全同態加密就可以了。但是在構建整個系統中,陳博士團隊發現一個問題,生物特徵資料加密後傳送給服務端進行虹膜(或者指紋)比對,儘管特徵比對本質上是一個海明距離的計算,但是計算後是一個密文,伺服器無從知曉比對的結果,也就無法給出透過(或是不透過)的判斷。如果將密文比對的結果傳送給使用者端,使用者端再返還給服務端,敵手可能會篡改比對結果,或者發起中間人攻擊。
為此我們構建了一個協議,引入一次MAC認證方法。訊息驗證碼(MAC)一般是利用可攜帶金鑰的hash函式來檢驗傳輸資料的完整性。常用的hash函式有MD5、SHA-2和SHA-3等。我們的虹膜(指紋)特徵密文的儲存可以使用上述方法將密文進行壓縮,然後資料庫只需存放密文壓縮後的摘要。但是,我們考慮到最安全的方式是採用雲端認證策略,即雲伺服器對密文同態操作後的結果進行認證,而解密操作只能由使用者完成。因此,採用hash函式並不能滿足設計的需要,所以我們設計了一種一次性MAC(OTM)認證方式,即MAC方案中的訊息金鑰演算法生成的金鑰只能使用一次,同時使用者對密文解密後,雲伺服器可以對解密結果進行認證。難點二虹膜或指紋的識別方法是採用海明距離計算來對編碼後的特徵模板進行比對。它是透過統計兩個模板上對應編碼不同的個數作為這兩個模板之間的距離。距離越小,表明兩模板越匹配。本質上計算海明距離是求兩個向量異或的總和。如果虹膜(或指紋)初始模板是長度為n的二進位制向量,則計算兩個虹膜特徵模板間的海明距離至少需要n次乘法。然而,全同態加密的密文乘法是其主要瓶頸。如果模板長度為2048,則需要進行2048次密文乘法。顯然,對於實際應用這是不可接受的。
為此,團隊採用了密文打包的方法,即將生物特徵模板打包到一個密文中。因此,對該打包密文進行一次乘法,相當於原來的2048次乘法。這種並行的思路極大的提高了效率。使之從不可能到可能。難點三上面說過,計算海明距離相當於求兩個向量異或的總和。由於採用了密文打包的方法,導致對密文無法求和。為了求和,採用了自同態計算,對密文中的明文位進行旋轉。這樣每次加法後,對密文旋轉一次,一共需要旋轉2013次才能求得最終的結果。這也是影響效率的主要因素。為此,團隊對演算法最佳化,才用了類似於二分法的方法,將加法約減到了log2013次。極大的提高了效率。除了上述難點外,團隊還在工程化的最佳化方面做出了很多嘗試。例如:將模板分段並行處理,使用者身份與生物特徵模板雜湊化儲存,註冊模組的安全防護等。
2. 系統架構系統主要是對驗證伺服器進行設計,採用一對一的方式來驗證每個使用者。整個系統由兩個參與者組成,即使用者和認證伺服器。使用者U具有從他的虹膜特徵中提取的二進位制特徵模板。伺服器S具有豐富的計算資源和儲存空間;因此它可以完成同態密文的任意函式計算,但不能解密自己生成的密文以及使用者給出的密文。

系統整體採用C/S架構,客戶端的主要功能是為使用者提供註冊和認證服務,而云伺服器端則提供同態運算和認證服務。

系統的整體功能分為三個模組,首先是登入模組,當使用者輸入已經註冊的基本資訊後即可進入到認證介面,否則需要點選註冊連結進入註冊介面。其次是註冊模組,它的主要功能有生成公鑰和金鑰、儲存金鑰到移動儲存器中以及加密虹膜資訊並將之與使用者基本資訊一同存放到資料庫中;最後是認證模組,它的功能是加密當前虹膜資訊並將之傳送到伺服器端,伺服器端完成虹膜認證後,客戶端透過金鑰解密認證結果並提示使用者。

3. 系統實現與效率

本系統是使用C#程式語言在Windows10上開發的,系統採用B/S架構。

為了加密一個2048位的二進位制向量,多項式次數必須取n≥2048。但是當引數n過大時,密文計算時間過長,系統效率極低。於是我們將2048位的二進位制向量分段進行研究,下表給出了在不同段數時,完成密文海明距離計算下的log2 q的最小值。

資料結果顯示,分段後的密文模q降低的幅度不大,因此分段並不能明顯提高系統的效率。

系統測試處理器為Intel Core i5-6200U,在128位安全等級下,認證過程大概需要100毫秒,系統在圖形介面載入和通訊部分用時最長,因此整個生物特徵密文認證系統的效率是非常不錯的。該系統設計在2017年已經申請專利。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;