一種多KMC密鑰恢復方法與流程
2023-06-24 23:16:46

本發明涉及信息安全技術領域,具體地說是一種多kmc密鑰恢復方法。
背景技術:
近年來,隨著信息安全事件呈現逐年遞增的趨勢,人們越來越關注網絡信息安全問題。網絡安全事件頻發,網絡攻擊已經從信息洩露、資金竊取、電信詐騙及釣魚網站等個人事件,上升到全社會的安全事件,會影響我們的生活、影響政府的服務、社會穩定甚至社會安全。而在當今這個大數據時代,要想管好用好大數據,前提必須是要保證大數據安全,這就需要有一個可信的計算環境,而可信的計算環境的核心就是要保證參與各方的密鑰安全。
在可信計算環境下,加密密鑰是一個關鍵項。一方面,要保證密鑰不會洩露;另一方面,還要保證密鑰硬體存儲設備損壞或者丟失後,能將密鑰恢復並解密原有加密數據。傳統的實現方式是通過kmc(keymanagementcenter密鑰管理中心)來產生加密密鑰,這樣kmc會備份一份加密密鑰,存儲在kmc的密鑰庫中。如果用戶加密密鑰丟失,可以通過kmc的密鑰恢復功能來恢復加密密鑰,利用恢復的加密密鑰來解開已加密數據。
隨著網絡攻擊技術的發展,單一的kmc已經無法滿足需求,kmc可能會被攻破,存在密鑰洩露的風險,另一方面,社會工程攻擊等針對內部人員的攻擊,也會造成kmc被攻破。在這種情況下,如何能安全高效的實現密鑰備份和恢復成為一個亟需解決的問題。
技術實現要素:
本發明的技術任務是提供一種多kmc密鑰恢復方法。
本發明的技術任務是按以下方式實現的,該方法是通過密鑰備份和密鑰恢復兩部分實現;
密鑰備份:先由第三方ca中心對各參與方發放數字證書,然後使用用戶加密終端產生隨機數,根據設置kmc的門限數量,使用門限算法將密鑰進行分割,並對分割後的隨機數進行籤名,並利用各個kmc的公鑰進行加密,上傳給kmc進行密鑰備份;
密鑰恢復:根據kmc的門限數,向相應的kmc提出密鑰請求,並在用戶加密終端中將密鑰恢復出來。
所述的密鑰備份的操作步驟如下:
步驟101)所述的第三方ca中心先為各個參與密鑰備份的所述的kmc頒發數字證書;
步驟102)所述的用戶加密終端生成籤名密鑰,產生申請書並發送給所述的第三方ca中心,由第三方ca中心認證並頒發籤名證書;
步驟103)所述的用戶加密終端確定加密算法、隨機數生成算法以及kmc門限數量;
步驟104)所述的用戶加密終端生成隨機數種子,並根據kmc門限要求進行分割;
步驟105)所述的用戶加密終端利用所述的隨機數種子生成加密密鑰,產生申請書並發送給所述的第三方ca中心,由第三方ca中心頒發籤名證書;
步驟106)所述的用戶加密終端獲取各個所述的kmc的公鑰證書,將信息使用所述的籤名密鑰進行籤名,再利用kmc的公鑰對信息加密,生成請求文件,並發送給各個所述的kmc;
步驟107)各個所述的kmc收到請求文件,先利用kmc私鑰進行解密,再驗證其證書有效性和籤名有效性;
步驟108)所述的kmc將解析得到的密鑰信息存儲到密鑰庫中。
所述的步驟106)中信息包括分割後的數據、密鑰算法標識、密鑰格式以及用戶標識。
所述的密鑰恢復的操作步驟如下:
步驟201)所述的第三方ca中心為各個參與密鑰備份的所述的kmc頒發數字證書;
步驟202)所述的用戶加密終端生成籤名密鑰,產生申請書並發送給所述的第三方ca中心,由第三方ca中心認證並頒發籤名證書;
步驟203)所述的用戶加密終端生成臨時密鑰對,根據加密算法、隨機數生成算法以及kmc門限要求向所需的所述的kmc提出密鑰恢復請求;
步驟204)所述的kmc對密鑰恢復請求進行驗證;
步驟205)所述的kmc使用其私鑰對備份的密鑰信息進行籤名,再利用申請書中的臨時公鑰對密鑰信息加密,發送給所述的用戶加密終端;
步驟206)所述的用戶加密終端利用臨時密鑰對私鑰,將收到的來自各個所述的kmc返回的備份密鑰信息進行解密,並驗證籤名有效性;
步驟207)所述的用戶加密終端利用各個備份密鑰信息恢復生成隨機數種子;
步驟208)所述的用戶加密終端利用所述的恢復生成的隨機數種子生成加密密鑰,產生申請書並發送給所述的第三方ca中心,由第三方ca中心頒發籤名證書。
所述的步驟203)中密鑰恢復請求中包含用戶標識、身份證明、臨時密鑰以及利用所述的籤名密鑰進行的數字籤名。
所述的步驟204)中驗證的內容為驗證證書有效性、籤名有效性以及密鑰恢復主體身份有效性。
一種多kmc密鑰恢復系統,該系統包括用戶加密終端、kmc以及第三方ca中心;
所述的用戶加密終端負責隨機數和密鑰的產生、密鑰分割以及數據包的籤名驗籤和加解密操作;
所述的kmc負責分割密鑰的保存和恢復;
所述的第三方ca中心負責為各個參與方籤發數字證書。
本發明的一種多kmc密鑰恢復方法和現有技術相比,具有以下特點:
1)使用硬體加密設備產生隨機數,保證了隨機數的產生強度,再結合加密算法,利用隨機數進行密鑰分割,簡化了操作的複雜性;
2)隨機數使用門限算法進行分割,再存儲到多個kmc中,這樣保證了即使部分kmc被攻破,也不會洩露密鑰,也保證了即使部分kmc被破壞,也能保證備份密鑰可以恢復;
3)隨機數密鑰分割是在硬體設備內完成,無法將私鑰導出,保證了加密密鑰的安全性,而整個密鑰備份和恢復過程使用了參與各方的數字證書來加密、籤名以及認證,這也保證了密鑰的傳輸安全性。
附圖說明
附圖1為一種多kmc密鑰恢復方法的密鑰備份流程圖;
附圖2為一種多kmc密鑰恢復方法的密鑰恢復流程圖;
附圖3為一種多kmc密鑰恢復系統的架構圖。
具體實施方式
實施例1:
一種多kmc密鑰恢復系統,該系統包括用戶加密終端、kmc以及第三方ca中心;
所述的用戶加密終端負責隨機數和密鑰的產生、密鑰分割以及數據包的籤名驗籤和加解密操作;
所述的kmc負責分割密鑰的保存和恢復;
所述的第三方ca中心負責為各個參與方籤發數字證書。
該多kmc密鑰恢復方法是通過密鑰備份和密鑰恢復兩部分實現;
密鑰備份:先由第三方ca中心對各參與方發放數字證書,然後使用用戶加密終端產生隨機數,根據設置kmc的門限數量,使用門限算法將密鑰進行分割,並對分割後的隨機數進行籤名,並利用各個kmc的公鑰進行加密,上傳給kmc進行密鑰備份;
密鑰恢復:根據kmc的門限數,向相應的kmc提出密鑰請求,並在用戶加密終端中將密鑰恢復出來。
所述的密鑰備份的操作步驟如下:
步驟101)所述的第三方ca中心先為各個參與密鑰備份的所述的kmc頒發數字證書;
步驟102)所述的用戶加密終端生成籤名密鑰,產生申請書並發送給所述的第三方ca中心,由第三方ca中心認證並頒發籤名證書;
步驟103)所述的用戶加密終端確定加密算法、隨機數生成算法以及kmc門限數量;
步驟104)所述的用戶加密終端生成隨機數種子,並根據kmc門限要求進行分割;
步驟105)所述的用戶加密終端利用所述的隨機數種子生成加密密鑰,產生申請書並發送給所述的第三方ca中心,由第三方ca中心頒發籤名證書;
步驟106)所述的用戶加密終端獲取各個所述的kmc的公鑰證書,將包括分割後的數據、密鑰算法標識、密鑰格式以及用戶標識的信息使用所述的籤名密鑰進行籤名,再利用kmc的公鑰對信息加密,生成請求文件,並發送給各個所述的kmc;
步驟107)各個所述的kmc收到請求文件,先利用kmc私鑰進行解密,再驗證其證書有效性和籤名有效性;
步驟108)所述的kmc將解析得到的密鑰信息存儲到密鑰庫中。
所述的密鑰恢復的操作步驟如下:
步驟201)所述的第三方ca中心為各個參與密鑰備份的所述的kmc頒發數字證書;
步驟202)所述的用戶加密終端生成籤名密鑰,產生申請書並發送給所述的第三方ca中心,由第三方ca中心認證並頒發籤名證書;
步驟203)所述的用戶加密終端生成臨時密鑰對,根據加密算法、隨機數生成算法以及kmc門限要求向所需的所述的kmc提出密鑰恢復請求;所述的密鑰恢復請求中包含用戶標識、身份證明、臨時密鑰以及利用所述的籤名密鑰進行的數字籤名。
步驟204)所述的kmc對密鑰恢復請求進行驗證;驗證的內容為驗證證書有效性、籤名有效性以及密鑰恢復主體身份有效性。
步驟205)所述的kmc使用其私鑰對備份的密鑰信息進行籤名,再利用申請書中的臨時公鑰對密鑰信息加密,發送給所述的用戶加密終端;
步驟206)所述的用戶加密終端利用臨時密鑰對私鑰,將收到的來自各個所述的kmc返回的備份密鑰信息進行解密,並驗證籤名有效性;
步驟207)所述的用戶加密終端利用各個備份密鑰信息恢復生成隨機數種子;
步驟208)所述的用戶加密終端利用所述的恢復生成的隨機數種子生成加密密鑰,產生申請書並發送給所述的第三方ca中心,由第三方ca中心頒發籤名證書。
實施例2:
一種多kmc密鑰恢復系統,該系統包括用戶加密終端、kmc以及第三方ca中心;
所述的用戶加密終端負責隨機數和密鑰的產生、密鑰分割以及數據包的籤名驗籤和加解密操作;
所述的kmc負責分割密鑰的保存和恢復;
所述的第三方ca中心負責為各個參與方籤發數字證書。
為了描述清楚,假設在本實施例中,加密密鑰算法為sm2國密算法,採用sm3國密算法作為摘要算法,sm3sm2國密算法作為籤名算法,數字證書採用x509格式。另外,參與密鑰備份和恢復的kmc門限mofn為(2,3),即是說總共有3個kmc用來備份密鑰,其中任意2個可以將密鑰進行恢復;
除了使用以上密鑰算法及門限值之外,根據本發明的實施方式的構造也能夠應用於其他算法及門限值之上。
下面將結合具體的實施例對多kmc密鑰恢復方法過程進行詳細的說明。
密鑰備份:
參考圖2,密鑰備份步驟如下:
步驟101)所述的第三方ca中心為各個參與密鑰備份的所述的kmc頒發數字證書;這裡有3個kmc參與,分別記作kmc1,kmc2,kmc3,其對應的公私鑰為(kmc1pubkey,kmc1prikey),(kmc2pubkey,kmc2prikey),(kmc3pubkey,kmc3prikey)證書為cert-kmc1,cert-kmc2,cert-kmc3;
步驟102)所述的用戶加密終端生成籤名密鑰,記作clnsignkp,其公鑰為clnsignpubkey,私鑰為clnsignprikey,產生申請書並發送給所述的第三方ca中心,由其認證並頒發籤名證書,記作cert-clnsign;
步驟103)所述的用戶加密終端確定加密算法(sm2算法)、隨機數生成算法以及kmc門限要求(2of3);
步驟104)所述的用戶加密終端生成隨機數種子(seed),並根據kmc門限要求進行分割;這裡將seed分割為s1,s2,s3,其中在kmc1備份的密鑰信息為s1,s2,在kmc2備份的密鑰信息為s2,s3,在kmc3備份的密鑰信息為s2,s3;
步驟105)所述的用戶加密終端利用步驟104的隨機數種子生成加密密鑰,產生申請書並發送給所述的第三方ca中心,由其頒發籤名證書;
步驟106)所述的用戶加密終端獲取各個所述的kmc的公鑰證書(cert-kmci),將分割後的數據、密鑰算法標識、密鑰格式、用戶標識等信息,使用步驟102生成的籤名密鑰clnsignprikey進行籤名,再利用kmc的公鑰對其加密,生成請求文件,並發送給各個所述的kmc;
步驟107)各個所述的kmc收到請求文件,先利用kmc私鑰進行解密,再驗證其證書有效性和籤名有效性;
步驟108)所述的kmc將解析得到的密鑰信息存儲到密鑰庫中。
密鑰恢復:
參考圖3,密鑰恢復步驟如下:
步驟201)所述的第三方ca中心為各個參與密鑰備份的所述的kmc頒發數字證書;這裡有3個kmc參與,分別記作kmc1,kmc2,kmc3,其對應的公私鑰為(kmc1pubkey,kmc1prikey),(kmc2pubkey,kmc2prikey),(kmc3pubkey,kmc3prikey)證書為cert-kmc1,cert-kmc2,cert-kmc3;
步驟202)所述的用戶加密終端生成籤名密鑰,記作clnsignkp,其公鑰為clnsignpubkey,私鑰為clnsignprikey,產生申請書並發送給所述的第三方ca中心,由其認證並頒發籤名證書,記作cert-clnsign;
步驟203)所述的用戶加密終端生成臨時密鑰對,記作clntmpkp,其公鑰為clntmppubkey,私鑰為clntmpprikey,根據加密算法(sm2算法)、隨機數生成算法以及kmc門限要求(2of3)向所需的所述的kmc提出密鑰恢復請求,密鑰恢復請求中包含用戶標識、身份證明、臨時密鑰(clntmppubkey)以及利用步驟202的籤名密鑰clnsignprikey進行數字籤名;這裡可以任意選擇3個kmc來進行密鑰恢復,例如選擇kmc1(s1,s2),kmc2(s2,s3);
步驟204)所述的kmc對密鑰恢復請求進行驗證,驗證證書有效性、籤名有效性以及密鑰恢復主體身份有效性;
步驟205)所述的kmc使用其私鑰對備份的密鑰信息進行籤名,再利用申請書中的臨時公鑰clntmppubkey對其加密,發送給所述的用戶加密終端;
步驟206)所述的用戶加密終端利用臨時密鑰對私鑰clntmpprikey,將收到的來自各個所述的kmc(kmc1和kmc2)返回的備份密鑰信息進行解密,並驗證籤名有效性;
步驟207)所述的用戶加密終端利用各個備份密鑰信息(s1,s2)(s2,s3),恢復生成隨機數種子(s1,s2,s3);
步驟208)所述的用戶加密終端利用步驟207恢復得到的隨機數種子生成加密密鑰,產生申請書並發送給所述的第三方ca中心,由其頒發籤名證書。
通過上面具體實施方式,所述技術領域的技術人員可容易的實現本發明。但是應當理解,本發明並不限於上述的幾種具體實施方式。在公開的實施方式的基礎上,所述技術領域的技術人員可任意組合不同的技術特徵,從而實現不同的技術方案。