指紋簽名設備及其制造方法和指紋簽名處理方法
【專利摘要】本發明公開一種指紋簽名設備及制造方法、以及指紋簽名處理方法,該指紋簽名設備的制造方法包括:提供指紋處理單元和密碼處理單元;在所述密碼處理單元或者所述指紋處理單元中植入第一種子密鑰;和使植入有所述第一種子密鑰的處理單元將所述第一種子密鑰發送給未植入所述第一種子密鑰的處理單元,然后在收到所發送的所述第一種子密鑰的處理單元中保存所述第一種子密鑰;或者,使植入有所述第一種子密鑰的處理單元導出第二種子密鑰并將所述第二種子密鑰發送給未植入所述第一種子密鑰的處理單元,然后在收到所發送的所述第二種子密鑰的處理單元中保存所述第二種子密鑰。
【專利說明】指紋簽名設備及其制造方法和指紋簽名處理方法
【技術領域】
[0001]本發明涉及一種指紋簽名設備及制造方法、以及指紋簽名處理方法,尤其涉及一種安全的指紋簽名設備及制造方法、以及指紋簽名處理方法。
【背景技術】
[0002]隨著信息技術的發展,應運而生了相應的信息安全設備。針對業務終端(例如,個人電腦(下文簡稱“PC”)或者筆記本電腦)的操作,現已制造出各種安全設備,例如數字簽名設備,用于保障信息處理的安全。以往,諸如數字簽名設備之類的安全設備通常使用鑒別手段來保障信息處理的安全,例如使用口令鑒別。但是,口令易被猜測獲取,所以安全性不強。后來,發展了生物識別方式,例如采用有指紋鑒別功能的例如諸如指紋Key之類的指紋簽名設備,這使得攻擊者無法輕易模擬用戶輸入指紋,而且無需用戶記憶口令,從而彌補了口令在安全性方面不足的缺陷,使得保障信息處理的安全性和設備的易用性都得到極大提升。
[0003]圖1示出了一種現有的指紋簽名設備(以下以“指紋Key”為例進行描述)101實現方案的示意圖。在圖1中,指紋KeylOl與用戶的業務終端102相連,實現數字簽名功能。當需要對數據進行關鍵運算(例如,數字簽名)時,業務終端102將數據傳給指紋KeylOl,并提示用戶在指紋KeylOl上輸入指紋。指紋KeylOl采集提取到用戶所輸入指紋的指紋特征值后,將提取到的指紋特征值與保存在指紋KeylOl內的用戶指紋特征值進行比對,若比對通過,則啟用指紋KeylOl內的私鑰對數據進行關鍵運算(例如,數字簽名),最后將簽名結果返回給業務終端102。若比對不通過(即,采集提取到的用戶指紋特征值與保存的用戶指紋特征值不匹配),則不進行關鍵運算(例如,數字簽名)操作。
[0004]圖1示出的現有的指紋KeylOl包括指紋傳感器1011、指紋識別芯片(簡稱“指紋芯片”)1012、和密碼算法芯片(簡稱“密碼芯片”)1013。指紋傳感器1011負責采集指紋,并將采集到的指紋數據傳給指紋芯片1012。這里,密碼芯片1013的主要功能可以有兩個--第一,完成數據存儲(例如,存儲用戶指紋特征值)和/或作為主控芯片進行整體邏輯控制;第二,完成相關關鍵運算(例如,啟用私鑰對數據進行數字簽名)。指紋芯片1012的主要功能也可以有兩個:第一,進行指紋特征值的提取運算,從而從采集到的指紋中提取出指紋特征值;第二,將所提取到的指紋特征值與用戶指紋特征值進行比對。
[0005]由于指紋特征值的提取和比對所采用的指紋算法是一直在不斷演進中的非標準化的算法,而且,不同的業務領域、不同的地方所使用的指紋算法各不相同,因此指紋芯片通常會是一款定制的芯片,或采用FPGA (Field — Programmable Gate Array,現場可編程門陣列)芯片,其中將指紋算法加載到這款定制的芯片或FPGA芯片中。而關鍵運算(例如,數字簽名)所用的密碼算法通常都是標準化的算法,世界各地都采用相同的密碼算法,例如諸如RSA(以Ron Rivest、Adi Shamirh和Len Adleman三個人的名字命名的公鑰算法)、DSA(Digital Signature Algorithm,數字簽名算法)或 ECC(Elliptic Curves Cryptography,橢圓曲線密碼算法)之類的公鑰算法,或者諸如DES (Data Encryption Standard,數據加密標準)、3DES或AES (Advanced Encryption Standard,高級加密標準算法)之類的對稱加密算法等,將這些密碼算法在一個芯片內實現的技術也已經很成熟。當一個設備同時需要指紋算法和密碼算法時,鑒于指紋算法和密碼算法的上述特點,現有技術中通常會采用雙芯片結構,即,同時包括指紋芯片和密碼芯片的結構。如以上參照圖1所述的那樣,現有的指紋Key都需要采用雙芯片結構。
[0006]在這種雙芯片結構下,當需要指紋Key對處理信息進行關鍵運算(例如,數字簽名)時,密碼芯片1013會先通知指紋芯片1012進行指紋比對,然后指紋芯片1012接收由指紋傳感器1011采集的指紋數據,提取指紋特征值,將所提取的指紋特征值與存儲的用戶指紋特征值進行比對,并將比對結果反饋給密碼芯片1013。若比對結果為“通過”,則密碼芯片1013進行關鍵運算(例如,數字簽名);若為“不通過”,則密碼芯片1013不進行關鍵運算(例如,數字簽名)。
[0007]使用指紋Key進行關鍵運算(例如,數字簽名)時,與指紋相關的操作主要涉及三個:原始指紋采集、新指紋采集和指紋比對。
[0008]原始指紋采集是指,指紋Key的用戶在第一次使用指紋Key時,需要先向指紋Key輸入自己的指紋數據,指紋Key提取并保存該指紋的指紋特征值。如圖2所示,原始指紋采集的具體流程例如如下:
[0009]在步驟S201,密碼芯片1013處理由用戶首次使用指紋Key時通過例如PC發起的指令;
[0010]在步驟S202,密碼芯片1013發出指紋采集指令給指紋芯片1012 ;
[0011]在步驟S203,指紋芯片1012啟動指紋傳感器1011來采集指紋數據;
[0012]在步驟S204,指紋芯片1012從所采集的指紋數據中提取用戶指紋特征值;
[0013]在步驟S205,指紋芯片1012將提取的用戶指紋特征值返回給密碼芯片1013 ;和
[0014]在步驟S206,密碼芯片1013將用戶指紋特征值保存在自己的密碼芯片安全存儲區。
[0015]可選的是,在步驟S205中,指紋芯片1012也可將提取的用戶指紋特征值保存在自己的指紋芯片存儲區中,此時,指紋芯片1012可以將表示提取保存成功的信息例如“0K”返回給密碼芯片1013。這種情況下,步驟S206可以省略。
[0016]新指紋采集是指,在原始指紋采集之后,用戶使用指紋Key進行關鍵運算(例如,數字簽名)時,向指紋Key輸入自己的指紋數據,指紋Key提取該新指紋的新指紋特征值。如圖3所示,新指紋采集的具體流程通常如下:
[0017]在步驟S301,在原始指紋采集之后,密碼芯片1013處理用戶通過例如PC發起的關鍵運算(例如,數字簽名)指令;
[0018]在步驟S302,密碼芯片1013發出新指紋采集指令給指紋芯片1012 ;
[0019]在步驟S303,指紋芯片1012啟動指紋傳感器1011來采集新指紋數據;和
[0020]在步驟S304,指紋芯片1012從所采集的新指紋數據中提取新指紋特征值。
[0021]指紋比對是指,用戶使用指紋Key進行關鍵運算(例如,數字簽名)時,在新指紋特征值提取之后,指紋Key完成新指紋特征值與已保存的用戶指紋特征值之間的比較。如圖4所示,指紋比對的具體流程通常如下:
[0022]在步驟S402,在密碼芯片1013處理用戶通過例如PC發起的關鍵運算(例如,數字簽名)指令之后,并且在密碼芯片1013發出新指紋采集指令給指紋芯片1012之前、同時或者之后,密碼芯片1013發送指紋比對指令給指紋芯片1012,附帶已保存的用戶指紋特征值數據;
[0023]在步驟S404,在新指紋特征值提取之后,指紋芯片1012將提取的新指紋特征值與已保存的用戶指紋特征值進行比對;和
[0024]在步驟S405,指紋芯片1012將比對的結果返回給密碼芯片1013。
[0025]在指紋比對之后,如前所述,密碼芯片1013根據返回的比對結果來決定進一步操作,若比對結果為“通過”,則密碼芯片1013進行關鍵運算(例如,數字簽名);若為“不通過”,則密碼芯片1013不進行關鍵運算(例如,數字簽名),即,若為“不通過”,則要么密碼芯片1013再次發送指紋比對指令給指紋芯片1012進而重復指紋比對操作,要么密碼芯片1013終止進行關鍵運算(例如,數字簽名)。
[0026]然而,這個使用雙芯片結構的指紋Key進行關鍵運算(例如,數字簽名)的過程存在安全隱患。
[0027]具體而言,從安全的角度看,指紋key產生例如簽名的前提條件是必須進行用戶鑒別,即需要通過指紋采集和指紋比對來確認當前的操作是用戶自己進行的,不是由攻擊者發出的。但指紋key的雙芯片結構使得攻擊者有可能繞過指紋采集和比對環節,例如,攻擊者在獲得指紋Key的情況下,可以打開指紋Key,將指紋Key中的指紋芯片屏蔽掉,而把被攻擊者操縱的另一電路與密碼芯片搭接以進行通信,這樣,攻擊者就可以操縱該另一電路來向密碼芯片發送“通過”和/或“不通過”消息,比如,如果兩芯片通信協議中以“O”代表“不通過”,以“I”代表“通過”,那么攻擊者只需操縱該另一電路向密碼芯片發送“1”,即可誘使密碼芯片產生例如簽名,也就是說,攻擊者實際模擬了指紋芯片來發出“通過”消息給密碼芯片,導致直接在指紋芯片與密碼芯片間進行中間人攻擊,從而誘使指紋Key在未進行用戶鑒別的情況下進行關鍵運算(例如,進行數字簽名)從而實現有效攻擊,使得用戶受損。
[0028]因此,需要一種能夠有效消除上述安全隱患的安全的指紋簽名設備及其制造方法和指紋簽名處理方法。
【發明內容】
[0029]本發明能夠克服現有技術存在的上述一個或者多個缺點。
[0030]根據本發明的一個方面,一種指紋簽名設備的制造方法包括:提供指紋處理單元和密碼處理單元;在所述密碼處理單元或者所述指紋處理單元中植入第一種子密鑰;和使植入有所述第一種子密鑰的處理單元將所述第一種子密鑰發送給未植入所述第一種子密鑰的處理單元、然后在收到所發送的所述第一種子密鑰的處理單元中保存所述第一種子密鑰,或者使植入有所述第一種子密鑰的處理單元導出第二種子密鑰并將所述第二種子密鑰發送給未植入所述第一種子密鑰的處理單元、然后在收到所發送的所述第二種子密鑰的處理單元中保存所述第二種子密鑰。
[0031]根據本發明的另一個方面,一種指紋簽名設備的制造方法包括:提供指紋處理單元和密碼處理單元;和在所述密碼處理單元和所述指紋處理單元中分別植入并保存第一種子密鑰。
[0032]另外,在以上兩種制造方法中,可以使保存所述第一種子密鑰或者所述第二種子密鑰的處理單元發送種子密鑰保存成功的消息
[0033]此外,在以上兩種制造方法中,可以將所述密碼處理單元構造為密碼芯片,并且可以將所述指紋處理單元構造為指紋芯片。
[0034]再有,在以上兩種制造方法中,可以將所述密碼處理單元與所述指紋處理單元集成在單一芯片中。
[0035]還有,在前述的制造方法中,所述第一種子密鑰可以是由所述植入有所述第一種子密鑰的處理單元自身產生而植入的。
[0036]另外,在前述的制造方法中,所述第一種子密鑰可以是隨機數。此外,在前述的制造方法中,所述指紋簽名設備可以是指紋Key。
[0037]根據本發明的又一個方面,一種由前述的制造方法制造的指紋簽名設備包括:指紋傳感器,所述指紋傳感器用于采集用戶指紋數據和后續指紋數據;所述指紋處理單元,所述指紋處理單元用于與所述指紋傳感器進行通信,并且用于從所述用戶指紋數據中提取用戶指紋特征值,以及從所述后續指紋數據中提取后續指紋特征值;和所述密碼處理單元,所述密碼處理單元用于與所述指紋處理單元進行通信并且用于完成關鍵運算,其中所述用戶指紋特征值存儲在所述指紋處理單元中或者存儲在所述密碼處理單元中,并且其中所述指紋處理單元還用于將所述后續指紋特征值與所述用戶指紋特征值進行比對。
[0038]另外,在以上的指紋簽名設備中,所述密碼處理單元可以構造為密碼芯片,并且所述指紋處理單元可以構造為指紋芯片。此外,在以上的指紋簽名設備中,所述密碼處理單元可以與所述指紋處理單元集成在單一芯片中。再有,在以上的指紋簽名設備中,所述第一種子密鑰可以是由所述植入有所述第一種子密鑰的處理單元自身產生而植入的。還有,在以上的指紋簽名設備中,所述第一種子密鑰可以是隨機數。另外,以上的指紋簽名設備可以是指紋Key,并且所述關鍵運算可以是執行數字簽名。
[0039]根據本發明的再一個方面,一種使用前述指紋簽名設備進行的指紋簽名處理方法包括:在使用所述指紋簽名設備執行用于指紋簽名處理的指令時:所述密碼處理單元和所述指紋處理單元二者中的數據發送方生成第一數據,并使用所述第一數據和所述數據發送方中的所述種子密鑰計算出第一會話密鑰;所述數據發送方用所述第一會話密鑰和指令消息的內容計算出指令消息的第一消息鑒別碼;所述數據發送方發送指令消息給所述密碼處理單元和所述指紋處理單元二者中的數據接收方,所述指令消息包含所述指令消息的內容、所述第一數據、代表所述指令的類型的指令值和所述第一消息鑒別碼;所述數據接收方用接收到的所述第一數據和所述數據接收方中的所述種子密鑰計算出第二會話密鑰;和所述數據接收方用所述第二會話密鑰驗證接收到的第一消息鑒別碼是否正確,如果驗證結果為“正確”,則所述數據接收方根據所述指令值執行所述指令指示的操作;如果驗證結果為“不正確”,則所述數據接收方發送報錯信息給所述數據發送方,并在所述數據接收方中結束所述指紋簽名設備當前的操作。
[0040]另外,在以上的指紋簽名處理方法中,所述指令可以是以下指令中的至少一種:原始指紋采集指令、新指紋采集指令、和指紋比對指令。此外,在以上的指紋簽名處理方法中,所述第二會話密鑰的計算機制與所述第一會話密鑰的計算機制可以是相同的。再有,在以上的指紋簽名處理方法中,所述指令消息還可以包含標識數據處理類型的識別碼。
[0041]本發明通過在密碼處理單元(例如,密碼芯片)和指紋處理單元(例如,指紋芯片)間使用種子密鑰,并用種子密鑰保護密碼處理單元與指紋處理單元之間的通信,能夠有效消除現有技術的雙芯片結構的指紋簽名設備中存在的安全隱患。
[0042]另外,優選地,本發明可以利用目前市場上可用的雙芯片結構,從而相對于單芯片結構來說,在成本低、產業成熟、生產快速、和利于指紋簽名設備的推廣使用方面更具優勢。
[0043]對本領域的技術人員來說很顯然的是,在上述內容的基礎上可對它們做各種修改、變換或任意組合。
[0044]根據下面附圖和詳細描述,本發明的指紋簽名設備的處理方法和處理系統以及相應的其他特征和優點對于本領域技術人員來說將變得顯而易見。本申請意在使所有這些和其他方法、系統、特征和優點都包含在該描述中。應當理解,本文前面的一般性描述和下面的詳細描述都是示例性的和解釋性的,意在提供如對所要求保護的技術方案的進一步的理解,但沒有任何東西應被視為是對所要求保護的技術方案的限制。
【專利附圖】
【附圖說明】
[0045]以下,為更好地理解本發明,將結合附圖詳細描述本發明的各示例性的【具體實施方式】。
[0046]圖1是一種以現有的指紋Key為例的簽名設備實現方案的示意圖。
[0047]圖2是使用如圖1所示的現有的指紋Key進行原始指紋采集的流程圖。
[0048]圖3是使用如圖1所示的現有的指紋Key進行新指紋采集的流程圖。
[0049]圖4是使用如圖1所示的現有的指紋Key進行指紋比對的流程圖。
[0050]圖5是根據本發明一個示例性【具體實施方式】的一種以指紋Key為例的指紋簽名設備的制造方法中種子密鑰預置實例的流程圖。
[0051]圖6是以圖5所不實例所制造的雙芯片結構指紋Key為例的指紋簽名設備的不意性結構圖。
[0052]圖7是采用圖6所示雙芯片結構指紋Key進行簽名操作過程中密碼保護機制實施的示例性流程圖。
【具體實施方式】
[0053]現在將參照本文的各實施方式進行詳細描述,附圖中圖解了其實例。為了將其思想傳達給本領域普通技術人員,提供此后引入的這些實施方式作為實例。因此,這些實施方式可以以不同的形式實施,從而并不限于這里所述的這些實施方式。而且,在任何可能的地方,在整個說明書和附圖中將使用相同的附圖標記表示相同或相似的部件。
[0054]另外,本申請中使用了序數詞詞語“第一”、“第二”等來描述多個元件(或構成部分),用于對這多個元件(或構成部分)中的一個元件(或構成部分)與另一元件(或構成部分)進行區分,但這些詞語“第一”、“第二”并沒有對這些元件(或構成部分)有任何“順序”上的限制。因此,將下面討論的那些元件或構成部分的序數詞相互變換也沒有超出本發明的構思和范圍。再有,本文中的“數據發送方”和“數據接收方”分別是指進行通信的雙方中發送數據的一方和接收數據的一方。例如,在密碼處理單元和指紋處理單元進行通信時,在密碼處理單元發送指令給指紋處理單元的階段,“密碼處理單元”為數據發送方,而“指紋處理單元”為數據接收方;反之,在指紋處理單元發送信息給密碼處理單元的階段,“密碼處理單元”為數據接收方,而“指紋處理單元”為數據發送方。
[0055]如前所述,本發明通過在密碼處理單元(例如,密碼芯片)和指紋處理單元(例如,指紋芯片)間使用種子密鑰,并用種子密鑰保護密碼處理單元與指紋處理單元之間的通信,能夠有效消除現有技術的雙芯片結構的指紋簽名設備中存在的安全隱患。
[0056]可以通過多種方式實現本發明,例如,可以在指紋簽名設備(例如指紋Key)的制造過程中,為密碼處理單元和指紋處理單元分別預置一個種子密鑰,種子密鑰作為指紋簽名設備的使用過程中產生會話密鑰的基礎。這里,這兩個種子密鑰可以相互導出。優選的是,這兩個種子密鑰可以相同,從而可以省去用于相互導出的計算過程。當然,種子密鑰的使用還可以是本領域技術人員能夠想到的其他可能的方式,本領域的技術人員在閱讀和理解本發明后,可對其做各種修改和變換。圖5示出了根據本發明一個示例性【具體實施方式】的一種以指紋Key為例的指紋簽名設備的制造方法中種子密鑰預置實例的流程圖。
[0057]如圖5所示,在指紋Key的制造過程中,按照如下流程進行種子密鑰的預置:
[0058]首先,在步驟S501,在密碼芯片5013中植入種子密鑰。這里,種子密鑰可以從外部設備產生后植入密碼芯片中。由于指紋Key的生產環境是可信的,從而保證了每個指紋Key中的種子密鑰只在該指紋Key中的密碼芯片與指紋芯片間共享,而其他任何地方不會有種子密鑰的備份,由此使得種子密鑰的泄密可能性降低。可選的是,種子密鑰也可以由密碼芯片自身產生來植入,例如,通過密碼芯片自身內部的密碼運算來產生,這樣,進一步避免了種子密鑰從外部設備泄漏的可能性。另外,種子密鑰可以是隨機數,這進一步降低了有規律生成的種子密鑰的泄密可能性。
[0059]接著,在步驟S502,密碼芯片5013將所植入的種子密鑰發送給指紋芯片5012。
[0060]然后,在步驟S503,指紋芯片5012保存接收到的種子密鑰。
[0061]最后,在步驟S505,指紋芯片5012將種子密鑰保存成功的消息發送給密碼芯片5013。
[0062]由此,種子密鑰預置完成,可執行后續的指紋Key的制造步驟。
[0063]這里需要說明的是,在圖5中,僅詳細示出了指紋Key的制造方法中種子密鑰預置的具體流程步驟,這里省略了對該制造方法中的其他步驟的詳細描述,因為這些其他步驟與現有技術的制造方法中的相應步驟相同而無需贅述。當然,本領域的技術人員在閱讀和理解本發明后,可對本發明的指紋Key的制造方法做各種修改和變換。例如,在步驟S505,指紋芯片5012也可以發送顯示信號給指紋Key上的指示燈的方式顯示保存成功的信息,而不必發送保存成功的消息給密碼芯片。
[0064]另外,優選的是,每個指紋Key的種子密鑰與其他指紋Key的種子密鑰可以是不同的,或者是不可互相導出的,也可以是相互之間無任何關聯的,由此,可以進一步防止攻擊者獲取相同的種子密鑰或者獲取種子密鑰關聯方式所帶來的危險,從而進一步提升指紋Key的安全性。當然,對于同一個指紋key來說,種子密鑰也可以是先植入指紋芯片中,然后由指紋芯片發送給密碼芯片并保存在密碼芯片中,其他步驟與上述種子密鑰預置的流程步驟相同,在此不再贅述。另外,對于同一個指紋key來說,也可把植入的初始種子密鑰通過導出計算而轉換成另一導出的種子密鑰,并將導出的種子密鑰發送給未植入初始種子密鑰的芯片并保存在后者中,其他步驟與上述種子密鑰預置的流程步驟相同,在此不再贅述。或者,對于同一個指紋key來說,種子密鑰可以由外部可信的設備分別寫入指紋芯片和密碼芯片中。
[0065]圖6是圖5所示實例的以指紋Key為例的指紋簽名設備的制造方法所制造的雙芯片結構指紋Key的示意性結構圖。
[0066]如圖6所示,根據本發明的以指紋Key為例的指紋簽名設備的制造方法所制造的雙芯片結構指紋Key601包括指紋傳感器6011、指紋芯片6012和密碼芯片6013,其中在指紋芯片6012和密碼芯片6013中已分別預置有例如相同的種子密鑰6014。
[0067]圖7是采用圖6所示雙芯片結構指紋Key進行簽名操作過程中密碼保護機制實施的示例性流程圖。
[0068]如圖7所示,在采用圖6所示的雙芯片結構指紋Key進行簽名操作過程中,按照如下流程實現本發明的密碼保護機制:[0069]首先,在步驟S701,在指紋Key執行到某指令的時候,例如,進行原始指紋采集、新指紋采集或者指紋比對的時候,密碼芯片6013生成隨機數,例如,以Nonce表示,并且使用Nonce和密碼芯片6013中預置的種子密鑰計算出第一會話密鑰。
[0070]然后,在步驟S702,密碼芯片6013用第一會話密鑰和當前的指令消息的內容計算出指令消息的第一消息鑒別碼(Message Authentication Code, MAC)。
[0071]之后,在步驟S703,密碼芯片6013發送指令消息給指紋芯片6012,該指令消息包含指令消息的內容、Nonce、代表指令類型(例如,是指紋比對指令還是新指紋采集指令)的指令值和第一 MAC。可選的是,該指令消息可進一步包含標識數據處理類型的識別碼(ID),以在密碼芯片6013發送指令與指紋芯片返回響應之間進一步建立對應關系,從而進一步避免重放攻擊(Replay Attacks)。這里的重放攻擊是指,攻擊者發送一個目的主機已接收過的包,來達到欺騙系統的目的,主要用于認證(例如,身份認證)過程,破壞認證的正確性。
[0072]隨后,在步驟S704,指紋芯片6012用接收到的Nonce和指紋芯片6012中預置的種子密鑰計算出第二會話密鑰,這里,第二會話密鑰的計算機制與密碼芯片6013對第一會話密鑰的計算機制是相同的。
[0073]接著,在步驟S705,指紋芯片6012用第二會話密鑰驗證接收到的第一 MAC是否正確。如果驗證結果為“正確”,則進入步驟S706 ;如果驗證結果為“不正確”,則指紋芯片6012向密碼芯片6013發送報錯信息,在指紋芯片6012中結束指紋Key當前的操作。這里所說的“驗證……是否正確”的方式,可以是利用與用第一會話密鑰計算第一 MAC相同的計算方法,用第二會話密鑰和當前的指令消息的內容計算第二 MAC,然后將第二 MAC與接收到的第一 MAC進行比對,來確定第一 MAC是否正確(即,確定第一 MAC與第二 MAC是否相同,或者說,確定二者是否完全一樣),也可以是本領域普通技術人員在閱讀本說明書后能夠想到的其他方式。
[0074]在步驟S706,指紋芯片6012根據指令值執行相關操作,例如,指紋芯片6012啟動指紋傳感器6011來采集原始指紋數據或者新指紋數據,或者指紋芯片6012執行指紋比對。
[0075]接著,在步驟S707,指紋芯片6012用第二會話密鑰和操作結果的內容計算出返回消息MAC。
[0076]隨后,在步驟S708,指紋芯片6012把包含操作結果的內容和返回消息MAC的返回消息返回給密碼芯片6013。如前所述,可選的是,返回消息還可進一步包含標識數據處理類型的ID,從而進一步避免重放攻擊。另外,可選的是,返回消息還可進一步包含前述代表指令類型的指令值,以加強同一次指令操作的對應性。
[0077]之后,在步驟S709,密碼芯片6013用第一會話密鑰驗證接收到的返回消息MAC是否正確,并且在上述返回消息中包含標識數據處理類型的ID的情況下檢查所接收到的標識數據處理類型的ID是否為當前最新發給指紋芯片6012的ID (以下簡稱“最新的ID”)。這里所說的“驗證……是否正確”的方式,可以是利用與用第一會話密鑰計算第一 MAC相同的計算方法,用第一會話密鑰和接收的操作結果的內容計算第三MAC,然后將第三MAC與接收到的返回消息MAC進行比對,來確定返回消息的MAC是否正確(即,確定返回消息MAC與第三MAC是否相同,或者說,確定二者是否完全一樣),也可以是本領域普通技術人員在閱讀本說明書后能夠想到的其他方式。如果驗證結果是所接收到的返回消息MAC不正確,或者在上述返回消息中包含標識數據處理類型的ID的情況下檢查的ID不是最新的ID,則在密碼芯片6013中結束指紋Key當前的操作。如果驗證結果是所接收到的返回消息MAC正確,并且在上述返回消息中包含標識數據處理類型的ID的情況下檢查的ID是最新的ID,則指紋Key執行正常的后續操作,例如,密碼芯片1013進行關鍵運算(例如,數字簽名)。
[0078]這里需要說明的是,在圖7中,僅詳細示出了雙芯片結構指紋Key進行關鍵運算(例如,數字簽名)操作過程中密碼保護機制實施的具體流程步驟,而省略了對該關鍵運算(例如,數字簽名)操作過程中的其他步驟(例如,密碼芯片處理用戶通過PC發起的關鍵運算(例如,數字簽名)指令,密碼芯片1013發出指紋采集指令或者指紋比對指令給指紋芯片,指紋傳感器進行指紋采集,指紋芯片提取指紋特征值或者進行指紋比對,和密碼芯片進行關鍵運算,等等)的詳細描述,因為這些其他步驟與現有技術的關鍵運算(例如,數字簽名)操作方法中的相應步驟相同而無需贅述。當然,本領域的技術人員在閱讀和理解本發明后,可對本發明的指紋簽名設備(例如指紋Key)的制造方法做各種修改和變換。
[0079]此外,密碼芯 片和指紋芯片中用來計算會話密鑰的對稱密碼算法既可以是預先固化在各芯片中的,也可以用軟件實現來加載到各芯片中,后者可以通過軟件的變化來提高對稱密碼算法的靈活性,并便于更新。
[0080]通過上述對在密碼芯片和指紋芯片間的消息增加MAC驗證機制,即,對密碼芯片與指紋芯片之間的交互通信,通過種子密鑰(例如,與隨機數一起)計算出會話密鑰,用該會話密鑰對交互通信的消息進行MAC運算,密碼芯片與指紋芯片二者中的接收方先驗證MAC的正確性,只有驗證通過才執行進一步操作。由于當前與下次交互通信時的會話密鑰是不可預測的,所以當前與下次的MAC值是不可預測、無法模擬的,從而減小了攻擊者模擬發送數據的芯片向接受數據的芯片發送虛假的“通過”消息的可能性。尤其是對執行與指紋相關的操作(例如,原始指紋采集、新指紋采集、和指紋比對)的交互通信來說,更大大減小了攻擊者模擬指紋芯片向密碼芯片發送“通過”消息的可能性。從而提高了設備處理的安全性,尤其是大大提高了雙芯片結構指紋Key的安全性。當然,如果對同一次密碼芯片與指紋芯片之間的交互通信,在每個步驟執行前后都采用會話密鑰計算和驗證MAC的方式,就能夠防止攻擊者模擬上述發送“通過”消息的可能性。
[0081]通過實施本發明,消除了現有的指紋簽名設備,尤其是雙芯片結構指紋Key的安全隱患,可制造出安全的指紋簽名設備例如雙芯片結構指紋Key。尤其是,更安全的指紋Key對于越來越被廣泛接受和使用的網上客戶端的各種操作安全提供了更可靠的保障。
[0082]另外,本說明書前面以雙芯片結構的指紋Key為例對本發明做了詳細的說明,但是,本領域技術人員在閱讀本發明說明書及其附圖后,可以理解的是,密碼芯片可對應于單芯片中的密碼處理單元,指紋芯片對應于單芯片中的指紋處理單元,也就是說,本發明也同樣適用于將密碼處理單元和指紋處理單元集成在單一芯片中的單芯片指紋簽名設備,例如單芯片結構的指紋Key,這增加了攻擊者屏蔽指紋處理單元和搭接密碼處理單元的難度。相對于單芯片結構的方案,雙芯片結構由于可以利用現有的指紋芯片和密碼芯片,所以雙芯片結構在成本低、產業成熟、生產快速、和利于指紋簽名設備的推廣使用方面更具優勢。
[0083]前面結合本發明的典型實施方式和實例詳細描述了本發明,但本領域的技術人員可以理解,這些典型實施方式和實例并不應作為對本發明的保護范圍的限制,那些對本領域的技術人員來說很明顯的修改、變換和替換都應落在本發明的保護范圍內。
【權利要求】
1.一種指紋簽名設備的制造方法,所述方法包括: 提供指紋處理單元和密碼處理單元; 在所述密碼處理單元或者所述指紋處理單元中植入第一種子密鑰;和使植入有所述第一種子密鑰的處理單元將所述第一種子密鑰發送給未植入所述第一種子密鑰的處理單元,然后在收到所發送的所述第一種子密鑰的處理單元中保存所述第一種子密鑰;或者,使植入有所述第一種子密鑰的處理單元導出第二種子密鑰并將所述第二種子密鑰發送給未植入所述第一種子密鑰的處理單元,然后在收到所發送的所述第二種子密鑰的處理單元中保存所述第二種子密鑰。
2.一種指紋簽名設備的制造方法,所述方法包括: 提供指紋處理單元和密碼處理單元;和 在所述密碼處理單元和所述指紋處理單元中分別植入并保存第一種子密鑰。
3.根據權利要求1或者2所述的制造方法,其中: 使保存所述第一種子密鑰或者所述第二種子密鑰的處理單元發送種子密鑰保存成功的消息。
4.根據權利要求1或者2所述的制造方法,其中: 將所述密碼處理單元構造為密碼芯片,并且將所述指紋處理單元構造為指紋芯片。
5.根據權利要求1或者2所述的制造方法,其中: 將所述密碼處理單元與所述·指紋處理單元集成在單一芯片中。
6.根據權利要求1至5任一所述的制造方法,其中: 所述第一種子密鑰是由所述植入有所述第一種子密鑰的處理單元自身產生而植入的。
7.根據權利要求1至6任一所述的制造方法,其中所述第一種子密鑰是隨機數。
8.根據權利要求1至7任一所述的制造方法,其中所述指紋簽名設備是指紋Key。
9.一種由權利要求1或者2所述的方法制造的指紋簽名設備,所述指紋簽名設備包括: 指紋傳感器,所述指紋傳感器用于采集用戶指紋數據和后續指紋數據; 所述指紋處理單元,所述指紋處理單元用于與所述指紋傳感器進行通信,并且用于從所述用戶指紋數據中提取用戶指紋特征值,以及從所述后續指紋數據中提取后續指紋特征值;和 所述密碼處理單元,所述密碼處理單元用于與所述指紋處理單元進行通信,并且用于完成關鍵運算, 其中所述用戶指紋特征值存儲在所述指紋處理單元中或者存儲在所述密碼處理單元中,并且 其中所述指紋處理單元還用于將所述后續指紋特征值與所述用戶指紋特征值進行比對。
10.根據權利要求9所述的指紋簽名設備,其中所述密碼處理單元構造為密碼芯片,并且所述指紋處理單元構造為指紋芯片。
11.根據權利要求9所述的指紋簽名設備,其中所述密碼處理單元與所述指紋處理單元集成在單一芯片中。
12.根據權利要求9至11任一所述的指紋簽名設備,其中:所述第一種子密鑰是由所述植入有所述第一種子密鑰的處理單元自身產生而植入的。
13.根據權利要求9至12任一所述的指紋簽名設備,其中所述第一種子密鑰是隨機數。
14.根據權利要求9至13任一所述的指紋簽名設備,其中所述指紋簽名設備是指紋Key,并且所述關鍵運算是執行數字簽名。
15.一種使用權利要求9-14任一所述的指紋簽名設備進行的指紋簽名處理方法,所述指紋簽名處理方法包括: 在使用所述指紋簽名設備執行用于指紋簽名處理的指令時, 所述密碼處理單元和所述指紋處理單元二者中的數據發送方生成第一數據,并使用所述第一數據和所述數據發送方中的所述種子密鑰計算出第一會話密鑰; 所述數據發送方用所述第一會話密鑰和指令消息的內容計算出指令消息的第一消息鑒別碼; 所述數據發送方發送指令消息給所述密碼處理單元和所述指紋處理單元二者中的數據接收方,所述指令消息包含所述指令消息的內容、所述第一數據、代表所述指令的類型的指令值和所述第一消息鑒別碼; 所述數據接收方用接收到的所述第一數據和所述數據接收方中的所述種子密鑰計算出第二會話密鑰;和 所述數據接收方用所述第二會話密鑰驗證接收到的第一消息鑒別碼是否正確,如果驗證結果為“正確”,則所述數據接收方根據所述指令值執行所述指令指示的操作;如果驗證結果為“不正確”,則所述數據接收方發送報錯信息給所述數據發送方,并在所述數據接收方中結束所述指紋簽名設備當前的操作。
16.根據權利要求15述的指紋`簽名處理方法,其中: 所述指令是以下指令中的至少一種:原始指紋采集指令、新指紋采集指令、和指紋比對指令。
17.根據權利要求15所述的指紋簽名處理方法,其中: 所述第二會話密鑰的計算機制與所述第一會話密鑰的計算機制是相同的。
18.根據權利要求15所述的指紋簽名處理方法,其中:所述指令消息還包含標識數據處理類型的識別碼。
【文檔編號】H04L9/32GK103595533SQ201310503414
【公開日】2014年2月19日 申請日期:2013年10月23日 優先權日:2013年10月23日
【發明者】劉洋 申請人:港蓉國信科技(北京)有限責任公司