動態加密式指紋傳感器及動態加密指紋數據的方法與流程
2023-08-12 23:24:46

本發明涉及一種指紋傳感器,特別是涉及一種利用一次性碼將指紋數據動態地進行加密的指紋傳感器。
背景技術:
指紋傳感器常被用來感測指紋,並產生指紋數據,再進一步將指紋數據傳送至處理器中。例如,指紋傳感器會將指紋數據傳入中央處理器或是微控制單元(microcontrollerunit)。以目前的技術而論,指紋數據由指紋傳感器傳送至處理器的過程中,並無法保證其傳輸安全。換句話說,指紋數據在傳輸的過程中,可能會被未經授權的用戶竊取或是盜用。
圖1是傳統處理指紋數據的系統10的方塊圖。系統10包括處理器12以及指紋傳感器16。處理器12透過傳輸路徑14與指紋傳感器16進行通訊。隨後,處理器12將會對由指紋傳感器16傳來的指紋數據請求驗證。然而,當指紋數據在處理器12與指紋傳感器16之間進行傳輸時,指紋數據的傳輸狀態或參數可利用硬體或是軟體的方式側錄。換句話說,未經授權的用戶只要將相同的指紋數據(可能利用硬體或是軟體非法複製的指紋數據)由傳輸路徑14傳送至處理器12,指紋數據可被處理器12驗證。因此,由於傳輸路徑14上的指紋數據容易遭到竊取或是記錄,未經授權的用戶很容易地利用不法竊取或複製的指紋數據破解處理器12的指紋驗證程序。甚至,就算指紋數據由指紋傳感器16傳送至處理器12前有進行加密,若加密密鑰不常更新,加密後的指紋數據仍有高機率被盜用且被解密,因此,未經授權的用戶仍可以破解處理器12的指紋驗證程序。
技術實現要素:
本發明實施例描述一種動態加密式指紋傳感器,包括電容陣列、嵌入式非揮發性內存、邏輯演算電路以及控制電路。電容陣列用於感測指紋,並產生指紋數據,嵌入式非揮發性內存用於儲存一次性碼及加密算法指標。邏輯演算電路用於根據一次性碼及加密算法指標,將電容陣列產生的指紋數據進行加密。控制電路耦接於電容陣列、嵌入式非揮發性內存及邏輯演算電路,用於控制電容陣列、嵌入式非揮發性內存及邏輯演算電路。邏輯演算電路包括加密電路,加密電路包括多個邏輯加密電路,加密電路根據加密算法指標,由多個邏輯加密電路中選擇出至少一個邏輯加密電路。加密電路根據一次性碼,利用至少一個邏輯加密電路將指紋數據加密。
本發明另一個實施例描述一種指紋數據的動態加密方法,包括指紋傳感器的電容陣列感測指紋,並產生指紋數據;接收加密算法指標及一次性碼;根據加密算法指標,由多個邏輯加密電路中選擇出至少一個邏輯加密電路;以及根據一次性碼,將電容陣列所產生的指紋數據利用至少一個邏輯加密電路進行加密。
本發明的指紋數據的動態加密方法的特色在於使用了一次性碼對指紋數據進行加密。因此具備以下優點,指紋數據的動態加密方法提供了兩層式的安全保護。第一層,由於使用了一次性碼對指紋數據進行加密,未經授權的用戶對指紋數據解碼會有很高的困難度。第二層,由於本發明根據加密算法指標動態地選擇邏輯加密電路將指紋數據加密,因此提供了更高等級的安全保護。換句話說,除非同時知道一次性碼以及被選擇的加密電路集合的用戶,才有機會將對應的指紋數據進行解碼。
附圖說明
圖1是傳統處理指紋數據的系統的方塊圖。
圖2是本發明用於處理指紋數據的系統的方塊圖。
圖3是圖2的指紋傳感器中,邏輯演算電路的方塊圖。
圖4是圖2的指紋傳感器中,嵌入式非揮發性內存的方塊圖。
圖5是本發明加密指紋數據的方法的流程圖。
其中,附圖標記說明如下:
10及20系統
12及22處理器
14及24傳輸路徑
16及30指紋傳感器
32邏輯演算電路
34嵌入式非揮發性內存
36控制電路
38電容陣列
50加密電路
52第一邏輯加密電路
54第二邏輯加密電路
60新的一次性碼產生電路
70產品識別數據
72一次性碼
74加密算法指標
s100至s112步驟
具體實施方式
圖2是本發明用於處理指紋數據的系統20的方塊圖。系統20包括處理器22以及指紋傳感器30。指紋數據透過傳輸路徑24,在處理器22與指紋傳感器30之間進行通訊。指紋傳感器30包括邏輯演算電路32、嵌入式非揮發性內存(embeddednon-volatilememory)34、控制電路36以及電容陣列38。電容陣列38用於感測指紋,並產生指紋數據。嵌入式非揮發性內存34用於儲存一次性碼(one-timecode)及加密算法指標。邏輯演算電路32用於根據一次性碼及加密算法指標將電容陣列38產生的指紋數據進行加密。控制電路36可耦接於電容陣列38、嵌入式非揮發性內存34及邏輯演算電路32,用於控制電容陣列38、嵌入式非揮發性內存34及邏輯演算電路32。並且,指紋數據會根據電容陣列38被手指觸控的位置(指紋產生的位置)不同而有所變化。
圖3是指紋傳感器30中,邏輯演算電路32的方塊圖。邏輯演算電路32包括加密電路50以及新的一次性碼產生電路60。加密電路50包括多個邏輯加密電路,例如包括第一邏輯加密電路52以及第二邏輯加密電路54。然而,加密電路50中多個邏輯加密電路的數目可大於2,並不被圖3中的第一邏輯加密電路52以及第二邏輯加密電路54所局限。第一邏輯加密電路52以及第二邏輯加密電路54其中的一個邏輯加密電路可用來對指紋數據進行加密。然而,第一邏輯加密電路52也可以組合第二邏輯加密電路54對指紋數據進行加密。詳細的加密方式描述於後文。新的一次性碼產生電路60用於產生初始化的一次性碼,以及在前次的一次性碼被使用後,產生一個新的(更新的)一次性碼。邏輯演算電路32可為利用簡易的邏輯門製造,換句話說,邏輯演算電路32可省略處理器或是微處理器等計算裝置。
圖4是指紋傳感器30中,嵌入式非揮發性內存34的方塊圖。嵌入式非揮發性內存34儲存了產品識別數據70,用於識別指紋傳感器30及其內部模塊。嵌入式非揮發性內存34還儲存了一次性碼72以及加密算法指標74。當一次性碼72被視為將指紋數據進行加密的密鑰時,加密算法指標74即可用於指定指紋傳感器30中,第一邏輯加密電路52以及第二邏輯加密電路54要使用哪一個或是全部的邏輯加密電路對指紋數據進行加密。換句話說,加密算法指標74可指定第一邏輯加密電路52對指紋數據進行加密。加密算法指標74可指定第二邏輯加密電路54對指紋數據進行加密。加密算法指標74也可指定將第一邏輯加密電路52組合第二邏輯加密電路54,再對指紋數據進行加密。特此說明,若加密電路50中多個邏輯加密電路的數目大於2時,指紋數據進行加密所使用的邏輯加密電路將會有更多種組合。
在處理指紋數據的系統20中,由於處理器22將會同步產生一次性碼72以及加密算法指標74(等同於被儲存在嵌入式非揮發性內存34)的數據,以用於解碼指紋數據使用。並且,在處理器22中,也儲存與加密電路50以及新的一次性碼產生電路60中相同的運算公式。因此,處理器22可對指紋數據進行解碼,並產生與新的一次性碼產生電路60一致的一次性碼。因此,未經授權的用戶在不知道一次性碼72以及加密算法指標74與加密電路50的情況下,無法取得解碼後的指紋數據。在本發明的另一個實施例中,處理器22也可提供一次性碼72給指紋傳感器30,以取代利用新的一次性碼產生電路60產生新的新的一次性碼置換掉前次的一次性碼72。換句話說,一次性碼72可在指紋傳感器30的外部端點被接收。一次性碼72可為被加密或是未被加密的密碼,可儲存於嵌入式非揮發性內存34內,或是被處理器22產生。
圖5是本發明加密指紋數據的方法的流程圖。加密指紋數據的方法的步驟描述於下:
步驟s100:開始;
步驟s102:指紋傳感器30的電容陣列38感測指紋,並產生指紋數據;
步驟s104:電容陣列38提供指紋數據至邏輯演算電路32,且嵌入式非揮發性內存34提供一次性碼72以及加密算法指標74至邏輯演算電路32;
步驟s106:邏輯演算電路32中的加密電路50根據一次性碼72以及加密算法指標74將指紋數據進行加密,其中加密電路50根據加密算法指標74,由第一邏輯加密電路52及第二邏輯加密電路54中選擇出至少一個邏輯加密電路。並且,加密電路50根據一次性碼72,利用選擇出的至少一個邏輯加密電路對指紋數據進行加密;
步驟s108:指紋傳感器30將被加密的指紋數據,透過傳輸路徑24傳至處理器22;
步驟s110:新的一次性碼產生電路60或處理器22產生新的一次性碼72,並將新的一次性碼72儲存於嵌入式非揮發性內存34。更詳細地說,一次性碼72隻能使用一次,因此在一次性碼72被指紋數據加密程序使用後,新的一次性碼72會被儲存於嵌入式非揮發性內存34。若新的一次性碼72是使用新的一次性碼產生電路60產生,則新的一次性碼產生電路60可用隨機的方式產生新的一次性碼72,或根據一次性碼72所對應的前次參數產生。舉例而言,若新的一次性碼72是根據一次性碼72所對應的前次參數產生,實施方式可為,一次性碼72所對應的前次參數可以透過簡易的邏輯操作轉換成新的參數,新的一次性碼72即可利用新的參數產生。同時,處理器22也會同步產生新的一次性碼72。並且,處理器22產生的新的一次性碼72與新的一次性碼產生電路60所產生的新的一次性碼72是相同的;
步驟s112:結束。
在指紋傳感器30中,嵌入式非揮發性內存34所儲存的加密算法指標74可以自定時間更新或自動地進行更新。舉例而言,加密算法指標74可以周期性地進行更新,例如每天更新或是每周更新。加密算法指標74也可設定在邏輯演算電路32對指紋數據進行加密後進行更新。當加密算法指標74被更新後,更新後的加密算法指標74將會被儲存在嵌入式非揮發性內存34。然而,處理器22也可以直接將更新後的加密算法指標74傳送至指紋傳感器30,並將更新後的加密算法指標74儲存在嵌入式非揮發性內存34。
如前文提及,由於處理器22可以產生與指紋傳感器30相同的一次性碼72以及加密算法指標74,因此處理器22可以透過驗證這些包括一次性碼72以及加密算法指標74的數據,將加密的指紋數據解密,而進一步驗證指紋數據的合法性。加密算法指標74的功能在於指定指紋傳感器30中,第一邏輯加密電路52以及第二邏輯加密電路54要使用哪一個或是全部的邏輯加密電路對指紋數據進行加密。並且,處理器22內不需要設置任何邏輯加密電路(例如第一邏輯加密電路52以及第二邏輯加密電路54),原因為處理器22可為一般具有強大運算能力的中央處理器或是運算單元,因此可利用程序指令或是軟體控制讓處理器22同步產生一次性碼72以及加密算法指標74。換句話說,處理器22具有第一邏輯加密電路52以及第二邏輯加密電路54所有的邏輯操作能力,可將加密後的指紋數據進行反向操作,例如將加密後的指紋數據進行解密。
綜上所述,本發明提供了一種動態加密式指紋傳感器以及利用一次碼動態地加密指紋數據的方法。由於一次碼的使用效力只限於單次使用,因此未經授權的用戶將指紋數據解碼會有很高的困難度。並且,由於第一邏輯加密電路以及第二邏輯加密電路會被動態地選擇執行指紋數據的加密程序,因此等同於提供了更進一步的安全性保護。換句話說,除非同時知道一次性碼以及被選擇的加密電路集合的用戶,才有機會將對應的指紋數據進行解碼。此外,指紋傳感器可使用單晶片製造,在應用層面上可使指紋傳感器的動態加密功能直接應用於各種不同的電子商品。換句話說,電子商品結合指紋傳感器後,將可獲得更高的傳輸安全性以及更高的隱私保障。
以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。