一種加密密鑰獲取方法及系統與流程
2023-07-10 22:20:26 1

本發明涉及一種電子技術領域,尤其涉及一種加密密鑰獲取方法及系統。
背景技術:
2012年11月22日,中華人民共和國國家質量監督檢驗檢疫總局頒布了《GM-T 0016-2012智能密碼鑰匙密碼應用接口規範》,規定了基於PKI密碼體制的智能密碼鑰匙密碼應用接口,描述了密碼應用接口的函數、數據類型、參數的定義和設備的安全要求,適用於智能密碼鑰匙產品的研製、使用和檢測。
然而在上述現有規範《GM-T 0016-2012智能密碼鑰匙密碼應用接口規範》中,目前存在以下風險:籤名公鑰由本地終端生成並上傳至伺服器,加密私鑰由伺服器生成並發送至本地終端,但在下載過程中,現有規範中的伺服器利用籤名公鑰對加密私鑰進行加密後發送至本地終端,由於籤名公鑰可被第三方獲取,這就導致第三方能夠模擬伺服器使用籤名公鑰對數據進行加密,大量地向終端發送籤名公鑰加密的密文,通過能終端的解密結果進行監控,從而獲得終端的籤名私鑰,導致終端中的籤名私鑰被洩漏。
技術實現要素:
本發明旨在解決上述問題之一。
為達到上述目的,本發明的技術方案具體是這樣實現的:
本發明提供了一種加密密鑰獲取方法,包括以下步驟:終端基於第一安全算法生成並保存所述終端的籤名公鑰和籤名私鑰,基於第二安全算法生成並保存臨時公鑰和臨時私鑰,並將第一數據包發送至伺服器,其中,所述第一數據包至少包括:所述籤名公鑰和所述臨時公鑰;所述伺服器接收所述第一數據包,獲取所述籤名公鑰和所述臨時公鑰,保存所述終端的所述籤名公鑰;所述伺服器基於第三安全算法生成並保存所述終端的加密公鑰和加密私鑰,基於第四安全算法生成並保存終端的數據加密碼和數據解密碼;所述伺服器利用所述數據加密碼對所述加密私鑰進行加密操作,生成第一加密信息;利用所述臨時公鑰對所述數據解密碼進行加密操作,生成第二加密信息;並將第二數據包發送至所述終端,其中,所述第二數據包至少包括:所述第一加密信息和所述第二加密信息;所述終端接收所述第二數據包,獲取所述第一加密信息,利用所述臨時私鑰對所述第二加密信息進行解密操作,獲得所述數據解密碼,利用所述數據解密碼對所述第一加密信息進行解密操作,獲得所述加密私鑰;所述終端保存所述加密私鑰。
可選地,所述終端生成所述籤名公鑰和所述臨時公鑰之後,將所述第一數據包發送至所述伺服器之前,還包括:所述終端基於第一私鑰對所述籤名公鑰和所述臨時公鑰進行籤名操作,生成第一籤名信息;所述第一數據包還包括所述第一籤名信息;所述伺服器接收到所述第一數據包之後,獲取所述籤名公鑰和所述臨時公鑰之前,還包括:所述伺服器基於所述第一私鑰對應的第一公鑰對所述第一籤名息進行認證操作,且認證成功。
可選地,所述終端基於第一私鑰對所述籤名公鑰和所述臨時公鑰進行籤名操作,生成第一籤名信息,包括:所述終端基於所述第一私鑰對所述籤名公鑰進行籤名操作,生成籤名公鑰籤名信息;基於所述第一私鑰對所述臨時公鑰進行籤名操作,生成臨時公鑰籤名信息,並基於所述籤名公鑰籤名信息和所述臨時公鑰籤名信息生成所述第一籤名信息;所述伺服器基於第一公鑰對所述第一籤名信息進行認證操作,包括:所述伺服器提取所述第一籤名信息中的所述籤名公鑰籤名信息和所述臨時公鑰籤名信息,基於所述第一公鑰對所述籤名公鑰籤名信息進行認證操作,基於所述第一公鑰對所述臨時公鑰籤名信息進行認證操作。
可選地,所述終端基於第一私鑰對所述籤名公鑰和所述臨時公鑰進行籤名操作,生成第一籤名信息,包括以下步驟:所述終端基於所述第一私鑰對所述籤名公鑰進行籤名操作,生成籤名公鑰籤名信息;基於所述籤名私鑰對所述臨時公鑰進行籤名操作,生成臨時公鑰籤名信息,並基於所述籤名公鑰籤名信息和所述臨時公鑰籤名信息生成所述第一籤名信息;所述伺服器基於第一公鑰對所述第一籤名信息進行認證操作,包括步驟:所述伺服器提取所述第一籤名信息中的所述籤名公鑰籤名信息、所述臨時公鑰籤名信息和所述籤名公鑰,基於所述第一公鑰對所述籤名公鑰籤名信息進行認證操作,基於所述籤名公鑰對所述臨時公鑰籤名信息進行認證操作。
可選地,所述伺服器生成所述第一加密信息之後,將所述第二數據包發送至所述終端之前,還包括步驟:所述伺服器利用第二私鑰對所述第一加密信息進行籤名操作,生成第二籤名信息;所述第二數據包還包括所述第二籤名信息;所述終端接收到所述第二數據包之後,獲取所述第一加密信息之前,還包括:所述終端基於與所述第二私鑰對應的第二公鑰對所述第二籤名信息進行認證操作,認證成功後,獲取所述第一加密信息。
可選地,在所述伺服器將第二數據包發送至所述終端之後,所述方法還包括:所述伺服器清除所述臨時公鑰;在所述終端獲得所述加密私鑰之後,所述方法還包括:所述終端清除所述臨時私鑰。
根據本發明另一個方面,提供了一種加密密鑰獲取系統,包括終端和伺服器,其中,所述終端,用於基於第一安全算法生成並保存籤名公鑰和籤名私鑰,基於第二安全算法生成並保存臨時公鑰和臨時私鑰,並將第一數據包發送至所述伺服器,其中,所述第一數據包至少包括:所述籤名公鑰和所述臨時公鑰;所述伺服器,用於接收所述第一數據包,獲取所述籤名公鑰和所述臨時公鑰,並保存所述籤名公鑰;基於第三安全算法生成並保存所述終端的加密公鑰和加密私鑰,基於第四安全算法生成並保存數據加密碼和數據解密碼;利用所述數據加密碼對所述加密私鑰進行加密操作,生成第一加密信息;利用所述臨時公鑰對所述數據解密碼進行加密操作,生成第二加密信息;將第二數據包發送至所述終端,其中,所述第二數據包至少包括:所述第一加密信息和所述第二加密信息;所述終端,還用於接收所述第二數據包,獲取所述第一加密信息,利用所述臨時私鑰對所述第二加密信息進行解密操作,獲得所述數據解密碼,利用所述數據解密碼對所述第一加密信息進行解密操作,獲得所述加密私鑰;保存所述加密私鑰。
可選地,所述終端,還用於在生成所述籤名公鑰和所述臨時公鑰之後,將所述第一數據包發送至所述伺服器之前,基於第一私鑰對所述籤名公鑰和所述臨時公鑰進行籤名操作,生成第一籤名信息;所述第一數據包還包括所述第一籤名信息;所述伺服器,還用於在接收到所述第一數據包之後,獲取所述籤名公鑰和所述臨時公鑰之前,基於所述第一公鑰對所述第一籤名信息進行認證操作,認證成功後,獲取所述籤名公鑰和所述臨時公鑰。
可選地,所述終端具體用於通過以下方式生成所述第一籤名信息:基於所述第一私鑰對所述籤名公鑰進行籤名操作,生成籤名公鑰籤名信息;基於所述第一私鑰對所述臨時公鑰進行籤名操作,生成臨時公鑰籤名信息,並基於所述籤名公鑰籤名信息和所述臨時公鑰籤名信息生成所述第一籤名信息;所述伺服器具體用於通過以下方式對所述第一籤名信息進行認證信操作:提取所述第一籤名信息中的所述籤名公鑰籤名信息和所述臨時公鑰籤名信息,基於所述第一公鑰對所述籤名公鑰籤名信息進行認證操作,基於所述第一公鑰對所述臨時公鑰籤名信息進行認證操作。
可選地,所述伺服器具體用於通過以下方式生成所述第一籤名信息:基於所述第一私鑰對所述籤名公鑰進行籤名操作,生成籤名公鑰籤名信息;基於所述籤名私鑰對所述臨時公鑰進行籤名操作,生成臨時公鑰籤名信息,並基於所述籤名公鑰籤名信息和所述臨時公鑰籤名信息生成所述第一籤名信息;所述伺服器具體用於通過以下方式對所述第一籤名信息進行認證操作:提取所述第一籤名信息中的所述籤名公鑰籤名信息、所述臨時公鑰籤名信息和所述籤名公鑰,基於所述第一公鑰對所述籤名公鑰籤名信息進行認證操作,基於所述籤名公鑰對所述臨時公鑰籤名信息進行認證操作。
可選地,所述伺服器,還用於在生成所述第一加密信息之後,將所述第二數據包發送至所述終端之前,利用第二私鑰對所述第一加密信息進行籤名操作,生成第二籤名信息;所述第二數據包還包括所述第二籤名信息;所述終端,還用於在接收到所述第二數據包之後,獲取所述第一加密信息之前,基於第二公鑰對所述第二籤名信息進行認證操作,認證成功後,獲取所述第一加密信息。
可選地,所述伺服器還用於在將第二數據包發送至所述終端之後,清除所述臨時公鑰;所述終端還用於在獲得所述加密私鑰之後,清除所述臨時公鑰和所述臨時私鑰。
由上述本發明提供的技術方案可以看出,在本實施例提供的方案中,終端在生成籤名公鑰和籤名私鑰對時,同時生成一對臨時公鑰和臨時私鑰,將籤名公鑰和臨時公鑰發送伺服器,伺服器在接收籤名公鑰和臨時公鑰之後,在生成終端的加密公鑰和加密私鑰時,生成數據加密碼和數據解密碼,使用數據加密碼對加密私鑰進行加密,再使用臨時公鑰對數據解密碼進行加密,因此,即使加密的加密私鑰在傳輸過程中被第三方截取,但由於第三方沒有臨時私鑰無法對加密的數據解密碼進行解密,從而無法對加密的加密私鑰進行解密,從而保證了加密私鑰的安全。另外,由於伺服器採用臨時公鑰對數據解密碼進行加密並外發,因此,即使第三方向終端大量發送加密密文,終端也只會使用臨時私鑰對密文進行解密,第三方通過監控只能獲得到終端的臨時私鑰,從而保護了終端的籤名私鑰。
附圖說明
為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域的普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他附圖。
圖1為本發明實施例1提供的一種加密密鑰獲取方法的流程圖;以及
圖2為本發明實施例1提供的一種加密密鑰獲取系統的架構示意圖。
具體實施方式
下面結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明的保護範圍。
在本發明的描述中,需要理解的是,術語「第一」、「第二」僅用於描述目的,而不能理解為指示或暗示相對重要性或數量或位置。
在本發明的描述中,需要說明的是,除非另有明確的規定和限定,術語「安裝」、「相連」、「連接」應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通。對於本領域的普通技術人員而言,可以具體情況理解上述術語在本發明中的具體含義。
下面將結合附圖對本發明實施例作進一步地詳細描述。
實施例1
本實施例提供一種加密密鑰獲取方法。
圖1為本實施例提供的一種加密密鑰獲取方法的流程圖,如圖1所示,本實施例的加密密鑰獲取方法主要包括以下步驟S101至步驟S108。
S101,終端基於第一安全算法生成並保存終端的籤名公鑰和籤名私鑰,基於第二安全算法生成臨時公鑰和臨時私鑰。
其中,在本實施例中,終端為能夠進行非對稱加解密的終端設備,例如,可以為USBKEY、智慧卡、手機、可穿戴設備等終端設備,第一安全算法與第二安全算法均為終端內存儲的預設非對稱算法,用於產生公私鑰對,根據第一安全算法生成的籤名公鑰和籤名私鑰為終端用於交易籤名的私鑰及相應公鑰,且籤名公鑰和籤名私鑰為終端用於交易籤名及驗籤的唯一公私鑰對。在本實施例中,籤名公鑰和籤名私鑰只在交易中使用,並且,在某些終端中,例如,USBKEY,由於交易過程需要用戶確認終端才能使用籤名私鑰進行籤名,因此,第三方也無法使用籤名公鑰進行加密向終端發送大量密文,而通過監測終端對使用籤名私鑰對大量密文進行解密而獲取終端的籤名私鑰。
在本實施例中,臨時公鑰和臨時私鑰為終端根據第二安全算法臨時生成的公私鑰對,該臨時公私鑰對只作為臨時使用,在本實施例中,臨時公私鑰對只在本次密鑰獲取過程中使用,在密鑰獲取結束之後失效。因此,即使在密鑰獲取過程中臨時私鑰被外部竊取,由於後續終端不會再使用該臨時公私鑰對,因此,所以不法人員也無法將本次生成的臨時私鑰用於下次交互過程,不會對用戶的安全造成影響。
S102,終端將第一數據包發送至伺服器,其中,第一數據包至少包括:籤名公鑰和臨時公鑰。
在具體應用中,終端可以通過數據通信通道將籤名公鑰和臨時公鑰發送至伺服器,終端可以通過有線數據通信通道或無線數據通信通道進行數據傳輸,包括但不限於藍牙通道、紅外通道、RFID通道、ZigBee通道、超寬頻(Ultra WideBand)通道、短距通信(NFC)通道、WiMedia通道、GPS通道、以及DECT通道等。
S103,伺服器接收第一數據包,獲取籤名公鑰和臨時公鑰,並保存終端的籤名公鑰。
在本實施例中,伺服器通過上述通信通道進行第一數據包接收,並在接收到第一數據包之後,提取第一數據包中的籤名公鑰和臨時公鑰,將籤名公鑰保存為上述終端的籤名公鑰,從而可以在後續交易過程中,使用該籤名公鑰對終端發送的籤名數據進行驗籤。
S104,伺服器基於第三安全算法生成並保存終端的加密公鑰和加密私鑰,基於第四安全算法生成並保存終端的數據加密碼和數據解密碼。
在本實施例中,第三安全算法為伺服器中預設的非對稱算法,用於產生公私鑰對,第四安全算法為伺服器中預設的安全算法,可以為非對稱算法,也可以為對稱算法。
在本實施例中,伺服器根據第三安全算法生成終端的加密公鑰和加密私鑰,加密公私鑰可以在終端登錄伺服器時使用,例如,可以在終端登錄時使用加密私鑰對用戶輸入的登錄密碼進行加密,提交到伺服器之後,伺服器根據用戶設置的登錄密碼,使用該終端的加密公鑰,對用戶提交的登錄密碼進行驗證。
另外,在本實施例中,數據加密碼和數據解密碼可以用於伺服器與終端之間的傳輸數據的加解密,在本實施例中,數據加密碼和數據解密碼用於對終端的加密私鑰的加解密操作,可選地,數據加密碼和數據解密碼可以為伺服器隨機生成的一組隨機數,具體形式本實施例不作限定。
S105,伺服器利用數據加密碼對加密私鑰進行加密操作,生成第一加密信息;利用臨時公鑰對數據解密碼進行加密操作,生成第二加密信息。
在本實施例中,伺服器利用數據加密碼將生成的加密私鑰進行加密操作,獲得第一加密信息,並利用從終端獲取的臨時公鑰對數據解密碼進行加密操作,獲得第二加密信息,通過對數據解密碼和加密私鑰分別進行加密後進行傳輸,保證數據傳輸的安全性。
S106,伺服器將第二數據包發送至終端,其中,第二數據包至少包括:第一加密信息、第二加密信息。
在本實施例中,伺服器可以通過與所述終端的數據通信通道將第二數據包發送至終端,例如,伺服器可以通過有線數據通信通道或無線數據通信通道進行數據傳輸,包括但不限於藍牙通道、紅外通道、RFID通道、ZigBee通道、超寬頻(Ultra WideBand)通道、短距通信(NFC)通道、WiMedia通道、GPS通道、DECT通道等。
S107,終端接收第二數據包,獲取第一加密信息,利用臨時私鑰對第二加密信息進行解密操作,獲得數據解密碼,利用數據解密碼對第一加密信息進行解密操作,獲得加密私鑰。
在本實施例中,終端接收到第二數據包後,為獲取伺服器生成的加密私鑰,需要進行兩步解密操作,第一,利用終端自身生成的臨時私鑰對第二加密信息進行解密操作,獲得數據解密碼;第二,利用數據解密碼對第一加密信息進行解密操作,獲得加密私鑰,通過兩步解密操作,大大增強了加密私鑰在傳輸過程中的安全性。
在本發明實施例的一個可選實施方案中,為了保證臨時公私鑰對只能被使用一次,在步驟S106之後,伺服器可以清除該終端的臨時公鑰。而在步驟S107中,終端在獲取加密私鑰之後,可以清除所述臨時私鑰。通過該可選實施方式中,即使第三方獲取到終端的臨時公鑰和籤名公鑰,模擬伺服器向終端發送加密私鑰進而對終端進行密文攻擊,攻破終端的臨時私鑰,但由於終端在獲取到加密私鑰之後,不會再使用該臨時公私鑰對,因此,不會對用戶造成安全困擾,給用戶帶來安全隱患。
在本發明實施例的一個可選實施方案中,終端利用臨時私鑰對第二加密信息進行解密操作得到數據解密碼之後,可以保存該數據解密碼,在後續與伺服器的交互過程中,使用該數據解密碼對伺服器發送的數據進行解密。
S108,終端保存加密私鑰。
在具體應用中,在執行步驟S108時,終端可以將獲得的加密私鑰寫入安全存儲器,安全存儲器能夠保證加密私鑰不可被外部獲取,也就是說,終端一旦將加密私鑰寫入終端內部的安全存儲器,不法分子無法從終端讀取加密私鑰,從而保證了加密私鑰的安全性。
在本發明實施例的一個可選實施方案中,在終端向伺服器發送第一數據包(即步驟S102)之前,為了保證伺服器可以確定第一數據包是終端發送的,該方法還可以包括步驟:終端基於第一私鑰對籤名公鑰和臨時公鑰進行籤名操作,生成第一籤名信息;而步驟S102發送的第一數據包中還可以包括第一籤名信息。相應地,在步驟S103中,在伺服器接收到第一數據包之後,在伺服器獲取籤名公鑰和臨時公鑰之前,還包括步驟:伺服器基於第一公鑰對第一籤名信息進行認證操作,認證成功後,獲取籤名公鑰和臨時公鑰。通過該可選實施方式,終端對發送的籤名公鑰和臨時公鑰進行籤名,以保證發送籤名公鑰和臨時公鑰的身份,而伺服器對籤名公鑰和臨時公鑰的籤名信息進行驗籤,在驗證通過之後,再獲取終端發送的籤名公鑰和臨時公鑰,從而可以保證籤名公鑰和臨時公鑰來源的可靠性,避免第三方偽裝終端向伺服器發送籤名公鑰和臨時公鑰,進而獲取到伺服器為終端生成的加密私鑰,從而導致終端的加密私鑰被洩漏。
在上述可選實施方式中,第一私鑰可以為預存在終端中的私鑰,例如出生證私鑰,相應地,伺服器中預存有與第一私鑰相對應的第一公鑰,可對第一私鑰籤名後的數據進行驗籤操作。
在本實施例中,終端對籤名公鑰和臨時公鑰進行籤名操作包括但不限於以下三種方案:
方案一:終端利用第一私鑰對籤名公鑰進行籤名操作,生成籤名公鑰籤名信息,並利用第一私鑰對臨時公鑰進行籤名操作,生成臨時公鑰籤名信息,並基於籤名公鑰籤名信息和臨時公鑰籤名信息生成第一籤名信息,例如,第一籤名信息可以由籤名公鑰籤名信息和臨時公鑰籤名信息組成;
方案二:終端利用第一私鑰對籤名公鑰進行籤名操作,生成籤名公鑰籤名信息,並利用籤名私鑰對臨時公鑰進行籤名操作,生成臨時公鑰籤名信息,並基於籤名公鑰籤名信息和臨時公鑰籤名信息生成第一籤名信息,例如,第一籤名信息可以由籤名公鑰籤名信息和臨時公鑰籤名信息組成;
方案三:終端利用第一私鑰對臨時公鑰進行籤名操作,生成籤名公鑰籤名信息,並利用臨時私鑰對籤名公鑰進行籤名操作,生成臨時公鑰籤名信息,並基於籤名公鑰籤名信息和臨時公鑰籤名信息生成第一籤名信息,例如,第一籤名信息可以由籤名公鑰籤名信息和臨時公鑰籤名信息組成;
相應地,伺服器在對第一籤名信息進行認證操作時,可以採用與終端對應的籤名方案進行相應的認證操作。
例如,與上述方案一相對應,伺服器基於第一公鑰對第一籤名信息進行認證操作的方案為:伺服器基於第一公鑰對籤名公鑰籤名信息進行認證操作,認證成功後獲取籤名公鑰,並基於第一公鑰對臨時公鑰籤名信息進行認證操作,認證成功後獲取臨時公鑰;
與上述方案二相對應,伺服器基於第一公鑰對第一籤名信息進行認證操作的方案為:伺服器基於第一公鑰對籤名公鑰籤名信息進行認證操作,認證成功後獲取籤名公鑰,基於籤名公鑰對臨時公鑰籤名信息進行認證操作,認證成功後獲取臨時公鑰;
與上述方案三相對應,伺服器基於第一公鑰對第一籤名信息進行認證操作的方案為:伺服器基於第一公鑰對臨時公鑰籤名信息進行認證操作,認證成功後獲取臨時公鑰,基於臨時公鑰對籤名公鑰籤名信息進行認證操作,認證成功後獲取籤名公鑰。
在本發明實施例的一個可選實施方案中,為了保證伺服器的身份,在步驟S105之後,步驟S106之前,該方法還可以包括步驟:伺服器利用第二私鑰對第一加密信息進行籤名操作,生成第二籤名信息;第二數據包還包括第二籤名信息;相應地,在步驟S107中,終端接收到第二數據包之後,獲取第一加密信息之前,該方法還可以包括步驟:終端基於第二公鑰對第二籤名信息進行認證操作,認證成功後,獲取第一加密信息。其中,在該可選實施方式中,第二私鑰為伺服器的CA私鑰,預存於伺服器中,與第二私鑰相對於的第二公鑰可以是預存於終端中,也可以是終端與伺服器交互過程中由伺服器發送至終端。在該可選實施方式中,伺服器通過利用第二私鑰對第一加密信息進行籤名操作,終端對第一加密信息進行認證,在認證成功之後,獲取第一加密信息,從而保證第一加密信息來源的可靠性,避免第三方模擬伺服器向終端發送加密私鑰,從而給用戶帶來安全隱患。
通過本實施例提供的加密密鑰獲取方法,伺服器接收終端發送的籤名公鑰之前,對終端進行認證操作,保證籤名公鑰的真實性,終端接收伺服器發送的加密私鑰之前,對伺服器進行認證,保證加密私鑰的真實性,從而避免終端或伺服器將虛假伺服器或終端發送的信息判斷為有效信息。此外,在本實施例提供的方案中,伺服器採用臨時公鑰而非籤名公鑰進行加密傳輸,即使在傳輸過程中被第三方截取並破譯,外界也僅能夠得知臨時私鑰,無法獲知籤名私鑰,從而避免了選擇性攻擊帶來的安全隱患,保證終端中簽名私鑰的安全性。
實施例2
本實施例提供一種加密密鑰獲取系統,該系統可以用於實現實施例1所述的加密密鑰獲取方法。
圖2為本實施例提供的一種加密密鑰獲取系統的架構示意圖,如圖2所示,該系統主要包括終端201和伺服器202。
在本實施例中,終端201,用於基於第一安全算法生成並保存籤名公鑰和籤名私鑰,基於第二安全算法生成並保存臨時公鑰和臨時私鑰,並將第一數據包發送至伺服器202,其中,第一數據包至少包括:籤名公鑰和臨時公鑰;伺服器202,用於接收第一數據包,獲取籤名公鑰和臨時公鑰,並保存籤名公鑰;基於第三安全算法生成並保存所述終端的加密公鑰和加密私鑰,基於第四安全算法生成並保存數據加密碼和數據解密碼;利用數據加密碼對加密私鑰進行加密操作,生成第一加密信息;利用臨時公鑰對數據解密碼進行加密操作,生成第二加密信息;並將第二數據包發送至終端201,其中,第二數據包至少包括:第一加密信息、第二加密信息;終端201,還用於接收第二數據包,獲取第一加密信息,利用臨時私鑰對第二加密信息進行解密操作,獲得數據解密碼,利用數據解密碼對第一加密信息進行解密操作,獲得加密私鑰;保存加密私鑰。
在本實施例中,終端201基於第一安全算法生成並保存籤名公鑰和籤名私鑰,基於第二安全算法生成並保存臨時公鑰和臨時私鑰。其中,終端201為能夠進行非對稱加解密的終端201設備,可以為USBKEY、智慧卡、手機、可穿戴設備等終端201設備,第一安全算法與第二安全算法均為終端201內存儲的預設非對稱算法,用於產生公私鑰對,根據第一安全算法生成的籤名公鑰和籤名私鑰可以為終端201用於交易籤名的私鑰及相應公鑰,且籤名公鑰和籤名私鑰為終端201用於交易籤名及驗籤的唯一公私鑰對。即在本實施例中,籤名公鑰和籤名私鑰只在交易中使用,並且,在某些終端中,例如,USBKEY,由於交易過程需要用戶確認終端才能使用籤名私鑰進行籤名,因此,第三方也無法使用籤名公鑰進行加密向終端發送大量密文,而通過監測終端對使用籤名私鑰對大量密文進行解密而獲取終端的籤名私鑰。
在本實施例中,臨時公鑰和臨時私鑰為終端201根據第二安全算法臨時生成的公私鑰對,該臨時公私鑰對只作為臨時使用,在本實施例中,臨時公私鑰對只在本次密鑰獲取過程中使用,在密鑰獲取結束之後失效。因此,即使在密鑰獲取過程中臨時私鑰被外部竊取,由於後續終端不會再使用該臨時公私鑰對,因此,所以不法人員也無法將本次生成的臨時私鑰用於下次交互過程,不會對用戶的安全造成影響。
在本實施例中,終端201可以通過數據通信通道將籤名公鑰和臨時公鑰發送至伺服器202,具體地,終端201可以通過有線數據通信通道或無線數據通信通道進行數據傳輸,包括但不限於藍牙通道、紅外通道、RFID通道、ZigBee通道、超寬頻(Ultra WideBand)通道、短距通信(NFC)通道、WiMedia通道、GPS通道、DECT通道等;伺服器202通過上述通信通道進行第一數據包接收。
在本實施例中,第三安全算法為伺服器202中預設的非對稱算法,用於產生公私鑰對,第四安全算法為伺服器202中預設的安全算法,可以為非對稱算法,也可以為對稱算法;伺服器202根據第三安全算法生成加密公鑰和加密私鑰,加密公私鑰可以在終端登錄伺服器時使用,例如,可以在終端登錄時使用加密私鑰對用戶輸入的登錄密碼進行加密,提交到伺服器之後,伺服器根據用戶設置的登錄密碼,使用該終端的加密公鑰,對用戶提交的登錄密碼進行驗證。
另外,在本實施例中,數據加密碼和數據解密碼可以用於伺服器202與終端201之間的傳輸數據的加解密,在本實施例中,數據加密碼和數據解密碼用於對終端201的加密私鑰的加解密操作,可選地,數據加密碼和數據解密碼可以為伺服器202隨機生成的一組隨機數,具體形式本實施例不作限定。
在本發明實施例的一個可選實施方案中,為了保證臨時公私鑰對只能被使用一次,伺服器202在向終端201發送第一加密信息之後,可以清除終端201的臨時公鑰。終端201在獲取加密私鑰之後,可以清除所述臨時私鑰。通過該可選實施方式中,即使第三方獲取到終端201的臨時公鑰和籤名公鑰,模擬伺服器202向終端201發送加密私鑰進而對終端201進行密文攻擊,攻破終端201的臨時私鑰,但由於終端201在獲取到加密私鑰之後,不會再使用該臨時公私鑰對,因此,不會對用戶造成安全困擾,給用戶帶來安全隱患。
在本發明實施例的一個可選實施方案中,終端201利用臨時私鑰對第二加密信息進行解密操作得到數據解密碼之後,可以保存該數據解密碼,在後續與伺服器202的交互過程中,使用該數據解密碼對伺服器202發送的數據進行解密。
終端201在保存加密私鑰時,可以將獲得的加密私鑰寫入安全存儲器,安全存儲器能夠保證加密私鑰不可被外部獲取,也就是說,終端201一旦將加密私鑰寫入終端201內部的安全存儲器,不法份子無法從終端201讀取加密私鑰,從而保證了加密私鑰的安全性。
在本發明實施例的一個可選實施方案中,為了保證伺服器202可以確定第一數據包是終端201發送的,終端201還用於在向伺服器202發送第一數據包之前,基於第一私鑰對籤名公鑰和臨時公鑰進行籤名操作,生成第一籤名信息;第一數據包還包括第一籤名信息;伺服器202還用於在獲取籤名公鑰和臨時公鑰之前,基於第一公鑰對第一籤名信息進行認證操作,認證成功後,才獲取籤名公鑰和臨時公鑰。
在上述可選實施方式中,第一私鑰為預存在終端201中的私鑰,例如出生證私鑰,相應地,伺服器202中預存有與第一私鑰相對應的第一公鑰,可對第一私鑰籤名後的數據進行驗籤操作。
在本發明實施例的一個可選實施方案中,終端201具體用於通過但不限於以下三種籤名方案對所述籤名公鑰和臨時公鑰進行籤名得到第一籤名信息:
方案一:終端201利用第一私鑰對籤名公鑰進行籤名操作,生成籤名公鑰籤名信息,並利用第一私鑰對臨時公鑰進行籤名操作,生成臨時公鑰籤名信息,並基於籤名公鑰籤名信息和臨時公鑰籤名信息生成第一籤名信息;
方案二:終端201利用第一私鑰對籤名公鑰進行籤名操作,生成籤名公鑰籤名信息,並利用籤名私鑰對臨時公鑰進行籤名操作,生成臨時公鑰籤名信息,並基於籤名公鑰籤名信息和臨時公鑰籤名信息生成第一籤名信息;
方案三:終端201利用第一私鑰對臨時公鑰進行籤名操作,生成籤名公鑰籤名信息,並利用臨時私鑰對籤名公鑰進行籤名操作,生成臨時公鑰籤名信息,並基於籤名公鑰籤名信息和臨時公鑰籤名信息生成第一籤名信息。
對應於終端201基於第一私鑰對籤名公鑰和臨時公鑰進行籤名操作的三種方案,伺服器202具體用於通過但不限於以下三種認證方案對第一籤名信息進行認證:
方案一:伺服器202基於第一公鑰對籤名公鑰籤名信息進行認證操作,認證成功後獲取籤名公鑰,基於第一公鑰對臨時公鑰籤名信息進行認證操作,認證成功後獲取臨時公鑰;
方案二:伺服器202基於第一公鑰對籤名公鑰籤名信息進行認證操作,認證成功後獲取籤名公鑰,基於籤名公鑰對臨時公鑰籤名信息進行認證操作,認證成功後獲取臨時公鑰;
方案三:伺服器202基於第一公鑰對臨時公鑰籤名信息進行認證操作,認證成功後獲取臨時公鑰,基於臨時公鑰對籤名公鑰籤名信息進行認證操作,認證成功後獲取籤名公鑰。
在本發明實施例的一個可選實施方案中,為了保證伺服器的身份,伺服器202,還用於在向終端201發送第一加密信息之前,利用第二私鑰對第一加密信息進行籤名操作,生成第二籤名信息;第二數據包還包括第二籤名信息;終端201,還用於在獲取第一加密信息之前,基於第二公鑰對第二籤名信息進行認證操作,認證成功後,獲取第一加密信息。相應地,終端201還用於在接收到第二數據包之後,獲取第一加密信息之前,基於第二公鑰對第二籤名信息進行認證操作,認證成功後,獲取第一加密信息。
在上述可選實施方式中,第二私鑰可以為CA私鑰,預存於伺服器202中,與第二私鑰相對於的第二公鑰可以是預存於終端201中,也可以是終端201與伺服器202交互過程中由伺服器202發送至終端201。在該可選實施方式中,伺服器202通過利用第二私鑰對第一加密信息進行籤名操作,終端201對第一加密信息進行認證,在認證成功之後,獲取第一加密信息,從而保證第一加密信息來源的可靠性,避免第三方模擬伺服器202向終端201發送加密私鑰,從而給用戶帶來安全隱患。
通過本實施例提供的密鑰生成系統,伺服器202接收終端201發送的籤名公鑰之前,對終端201進行認證操作,保證籤名公鑰的真實性,終端201接收伺服器202發送的加密私鑰之前,對伺服器202進行認證,保證加密私鑰的真實性,從而避免終端201或伺服器202將虛假伺服器202或終端201發送的信息判斷為有效信息,此外,在本實施例提供的方案中,伺服器202採用臨時公鑰而非籤名公鑰進行加密傳輸,即使在傳輸過程中被第三方截取並破譯,外界也僅能夠得知臨時私鑰,無法獲知籤名私鑰,從而避免了選擇性攻擊帶來的安全隱患,保證終端201中簽名私鑰的安全性。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用於實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,並且本發明的優選實施方式的範圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本發明的實施例所屬技術領域的技術人員所理解。
應當理解,本發明的各部分可以用硬體、軟體、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟體或固件來實現。例如,如果用硬體來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用於對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現場可編程門陣列(FPGA)等。
本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
此外,在本發明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以採用硬體的形式實現,也可以採用軟體功能模塊的形式實現。所述集成的模塊如果以軟體功能模塊的形式實現並作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
上述提到的存儲介質可以是只讀存儲器,磁碟或光碟等。
在本說明書的描述中,參考術語「一個實施例」、「一些實施例」、「示例」、「具體示例」、或「一些示例」等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
儘管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在不脫離本發明的原理和宗旨的情況下在本發明的範圍內可以對上述實施例進行變化、修改、替換和變型。本發明的範圍由所附權利要求及其等同限定。