本發(fā)明涉及數(shù)字認(rèn)證技術(shù)領(lǐng)域,特別涉及一種基于密碼算法加密和解密數(shù)據(jù)的方法及裝置。
背景技術(shù):
數(shù)據(jù)加密目前仍是計(jì)算機(jī)系統(tǒng)對(duì)信息進(jìn)行保護(hù)的一種最可靠的辦法。它利用密碼技術(shù)對(duì)信息進(jìn)行加密,實(shí)現(xiàn)信息隱蔽,從而起到保護(hù)信息的安全的作用。目前在移動(dòng)端主要使用對(duì)稱密碼算法對(duì)數(shù)據(jù)進(jìn)行加密和解密,但是對(duì)稱密碼算法的缺點(diǎn)是加密密鑰較容易被惡意拿到比如:在反編譯從源程序破譯或者中間人抓包截獲。
目前各大廠商實(shí)現(xiàn)的是非國產(chǎn)算法的單證書,采用的加密方案為移動(dòng)終端系統(tǒng)中自帶的對(duì)稱加密算法或者是自定義的加密算法。但是采用國際通用算法,對(duì)于密碼應(yīng)用來說,安全性不夠;當(dāng)單獨(dú)數(shù)字證書被刪除時(shí),無法恢復(fù)加密的內(nèi)容;使用非對(duì)稱算法,對(duì)于密鑰的安全保護(hù)不夠。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于密碼算法加密和解密數(shù)據(jù)的方法及裝置,解決了現(xiàn)有技術(shù)中密鑰的安全保護(hù)不夠的問題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于密碼算法加密和解密數(shù)據(jù)的方法,包括以下步驟:
移動(dòng)終端使用終端賬戶向證書認(rèn)證中心ca(certificationauthority,證書認(rèn)證中心)申請(qǐng)簽名證書和加密證書;
移動(dòng)終端利用所申請(qǐng)到的簽名證書從ca下載所申請(qǐng)的加密證書;
在對(duì)待保護(hù)數(shù)據(jù)加密時(shí),移動(dòng)終端利用所述加密證書密鑰對(duì)加密所述待保護(hù)數(shù)據(jù),得到并保存數(shù)據(jù)密文;
移動(dòng)終端將所述加密證書密鑰與移動(dòng)終端特征碼進(jìn)行綁定后,保存到其硬件 載體中;
在對(duì)數(shù)據(jù)密文解密時(shí),根據(jù)所述移動(dòng)終端特征碼與所述加密證書密鑰綁定關(guān)系,得到所述加密證書密鑰,并利用所述密證書密鑰解密所述數(shù)據(jù)密文。
優(yōu)選地,所述在對(duì)待保護(hù)數(shù)據(jù)加密時(shí),移動(dòng)終端利用所述加密證書密鑰對(duì)加密所述待保護(hù)數(shù)據(jù),得到并保存數(shù)據(jù)密文包括;
移動(dòng)終端根據(jù)待保護(hù)數(shù)據(jù)的復(fù)雜程度,判斷待保護(hù)數(shù)據(jù)是簡單數(shù)據(jù)還是復(fù)雜數(shù)據(jù);
當(dāng)判斷待保護(hù)數(shù)據(jù)為簡單數(shù)據(jù)時(shí),移動(dòng)終端采用所述加密證書密鑰的密鑰對(duì)加密所述待保護(hù)數(shù)據(jù),得到簡單數(shù)據(jù)密文;
當(dāng)判斷待保護(hù)數(shù)據(jù)為復(fù)雜數(shù)據(jù)時(shí),移動(dòng)終端采用所述加密證書密鑰的對(duì)稱密鑰加密所述待保護(hù)數(shù)據(jù),得到復(fù)雜數(shù)據(jù)密文。
優(yōu)選地,對(duì)于簡單數(shù)據(jù)密文的解密,移動(dòng)終端利用根據(jù)所述綁定關(guān)系得到所述加密證書密鑰,對(duì)所述簡單數(shù)據(jù)密文進(jìn)行解密。
優(yōu)選地,還包括,在采用對(duì)稱密鑰加密所述待保護(hù)數(shù)據(jù)之前或之后,移動(dòng)終端采用所述加密證書密鑰的密鑰對(duì)加密所述對(duì)稱密鑰,得到對(duì)稱密鑰密文。
優(yōu)選地,對(duì)于復(fù)雜數(shù)據(jù)密文的解密,移動(dòng)終端利用根據(jù)所述綁定關(guān)系得到所述加密證書密鑰,對(duì)所述對(duì)稱密鑰密文進(jìn)行解密,得到對(duì)稱密鑰,并利用所得到的對(duì)稱密鑰對(duì)所述復(fù)雜數(shù)據(jù)密文進(jìn)行解密。
優(yōu)選地,所述在對(duì)數(shù)據(jù)密文解密時(shí),根據(jù)所述移動(dòng)終端特征碼與所述密證書密鑰綁定關(guān)系,得到所述加密證書密鑰,利用所述密證書密鑰解密所述數(shù)據(jù)密文包括:
在對(duì)數(shù)據(jù)密文解密時(shí),移動(dòng)終端利用移動(dòng)終端特征碼向ca申請(qǐng)?jiān)试S恢復(fù)加密證書的新簽名證書;
移動(dòng)終端利用所申請(qǐng)到的新簽名證書從ca下載所述用于恢復(fù)數(shù)據(jù)密文的加密證書。
優(yōu)選地,所述保存數(shù)據(jù)密文包括:將數(shù)據(jù)密文保存在本地或?qū)?shù)據(jù)密文上傳到云服務(wù)器端。
優(yōu)選地,所述對(duì)稱密鑰為密碼算法sm4;所述密鑰對(duì)為密碼算法sm2。
根據(jù)本發(fā)明的另一方面,提供了一種基于密碼算法加密和解密數(shù)據(jù)的裝置, 包括:
獲取加密證書模塊,用于移動(dòng)終端使用終端賬戶向證書認(rèn)證中心ca申請(qǐng)簽名證書和加密證書,并利用所申請(qǐng)到的簽名證書從ca下載所申請(qǐng)的加密證書;
數(shù)據(jù)加密模塊,用于在對(duì)待保護(hù)數(shù)據(jù)加密時(shí),移動(dòng)終端利用所述加密證書密鑰對(duì)加密所述待保護(hù)數(shù)據(jù),得到并保存數(shù)據(jù)密文;
綁定模塊,用于移動(dòng)終端將所述加密證書密鑰與移動(dòng)終端特征碼進(jìn)行綁定后,保存到其硬件載體中;
數(shù)據(jù)解密模塊,用于在對(duì)數(shù)據(jù)密文解密時(shí),根據(jù)所述移動(dòng)終端特征碼與所述加密證書密鑰綁定關(guān)系,得到所述加密證書密鑰,并利用所述密證書密鑰解密所述數(shù)據(jù)密文。
優(yōu)選地,所述數(shù)據(jù)加密模塊包括;
判斷單元,用于移動(dòng)終端根據(jù)待保護(hù)數(shù)據(jù)的復(fù)雜程度,判斷待保護(hù)數(shù)據(jù)是簡單數(shù)據(jù)還是復(fù)雜數(shù)據(jù);
簡單數(shù)據(jù)加密單元,用于當(dāng)判斷待保護(hù)數(shù)據(jù)為簡單數(shù)據(jù)時(shí),移動(dòng)終端采用所述加密證書密鑰的密鑰對(duì)加密所述待保護(hù)數(shù)據(jù),得到簡單數(shù)據(jù)密文;
復(fù)雜數(shù)據(jù)加密單元,用于當(dāng)判斷待保護(hù)數(shù)據(jù)為復(fù)雜數(shù)據(jù)時(shí),移動(dòng)終端采用所述加密證書密鑰的對(duì)稱密鑰加密所述待保護(hù)數(shù)據(jù),得到復(fù)雜數(shù)據(jù)密文。
與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于:
本發(fā)明采用基于密碼算法雙證書機(jī)制對(duì)數(shù)據(jù)進(jìn)行加密,使得數(shù)據(jù)加密過程破解成本加倍,并提高了解密的難度、提高了數(shù)據(jù)恢復(fù)的安全性和便捷性,同時(shí)也能夠很好的保護(hù)加密密鑰。
附圖說明
圖1是本發(fā)明實(shí)施例提供的一種基于密碼算法加密和解密數(shù)據(jù)的方法流程圖;
圖2是本發(fā)明實(shí)施例提供的一種基于密碼算法加密和解密數(shù)據(jù)的裝置示意圖;
圖3是本發(fā)明實(shí)施例提供的基于密碼算法加密數(shù)據(jù)的方法流程圖;
圖4是本發(fā)明實(shí)施例提供的基于密碼算法解密數(shù)據(jù)的方法流程圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)說明,應(yīng)當(dāng)理解,以下所說明的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是本發(fā)明實(shí)施例提供的一種基于密碼算法加密和解密數(shù)據(jù)的方法流程圖,如圖1所示,包括以下步驟:
步驟s101:移動(dòng)終端使用終端賬戶向證書認(rèn)證中心ca申請(qǐng)簽名證書和加密證書;
步驟s102:移動(dòng)終端利用所申請(qǐng)到的簽名證書從ca下載所申請(qǐng)的加密證書;
步驟s103:在對(duì)待保護(hù)數(shù)據(jù)加密時(shí),移動(dòng)終端利用所述加密證書密鑰對(duì)加密所述待保護(hù)數(shù)據(jù),得到并保存數(shù)據(jù)密文;
步驟s104:移動(dòng)終端將所述加密證書密鑰與移動(dòng)終端特征碼進(jìn)行綁定后,保存到其硬件載體中;
步驟s105:在對(duì)數(shù)據(jù)密文解密時(shí),根據(jù)所述移動(dòng)終端特征碼與所述加密證書密鑰綁定關(guān)系,得到所述加密證書密鑰,并利用所述密證書密鑰解密所述數(shù)據(jù)密文。
其中,所述在對(duì)待保護(hù)數(shù)據(jù)加密時(shí),移動(dòng)終端利用所述加密證書密鑰對(duì)加密所述待保護(hù)數(shù)據(jù),得到并保存數(shù)據(jù)密文包括;移動(dòng)終端根據(jù)待保護(hù)數(shù)據(jù)的復(fù)雜程度,判斷待保護(hù)數(shù)據(jù)是簡單數(shù)據(jù)還是復(fù)雜數(shù)據(jù);當(dāng)判斷待保護(hù)數(shù)據(jù)為簡單數(shù)據(jù)時(shí),移動(dòng)終端采用所述加密證書密鑰的密鑰對(duì)加密所述待保護(hù)數(shù)據(jù),得到簡單數(shù)據(jù)密文;當(dāng)判斷待保護(hù)數(shù)據(jù)為復(fù)雜數(shù)據(jù)時(shí),移動(dòng)終端采用所述加密證書密鑰的對(duì)稱密鑰加密所述待保護(hù)數(shù)據(jù),得到復(fù)雜數(shù)據(jù)密文。
本發(fā)明對(duì)于簡單數(shù)據(jù)密文的解密,移動(dòng)終端利用根據(jù)所述綁定關(guān)系得到所述加密證書密鑰,對(duì)所述簡單數(shù)據(jù)密文進(jìn)行解密。
本發(fā)明還包括,在采用對(duì)稱密鑰加密所述待保護(hù)數(shù)據(jù)之前或之后,移動(dòng)終端采用所述加密證書密鑰的密鑰對(duì)加密所述對(duì)稱密鑰,得到對(duì)稱密鑰密文。
本發(fā)明對(duì)于復(fù)雜數(shù)據(jù)密文的解密,移動(dòng)終端利用根據(jù)所述綁定關(guān)系得到所述加密證書密鑰,對(duì)所述對(duì)稱密鑰密文進(jìn)行解密,得到對(duì)稱密鑰,并利用所得到的對(duì)稱密鑰對(duì)所述復(fù)雜數(shù)據(jù)密文進(jìn)行解密。
具體地說,所述在對(duì)數(shù)據(jù)密文解密時(shí),根據(jù)所述移動(dòng)終端特征碼與所述密證書密鑰綁定關(guān)系,得到所述加密證書密鑰,利用所述密證書密鑰解密所述數(shù)據(jù)密文包括:在對(duì)數(shù)據(jù)密文解密時(shí),移動(dòng)終端利用移動(dòng)終端特征碼向ca申請(qǐng)?jiān)试S恢復(fù)加密證書的新簽名證書;移動(dòng)終端利用所申請(qǐng)到的新簽名證書從ca下載所述用于恢復(fù)數(shù)據(jù)密文的加密證書。
其中,所述保存數(shù)據(jù)密文包括:將數(shù)據(jù)密文保存在本地或?qū)?shù)據(jù)密文上傳到云服務(wù)器端。所述對(duì)稱密鑰為密碼算法sm4;所述密鑰對(duì)為密碼算法sm2。
圖2是本發(fā)明實(shí)施例提供的一種基于密碼算法加密和解密數(shù)據(jù)的裝置示意圖,包括:獲取加密證書模塊201、數(shù)據(jù)加密模塊202、綁定模塊203以及數(shù)據(jù)解密模塊204。所述獲取加密證書模塊201,用于移動(dòng)終端使用終端賬戶向證書認(rèn)證中心ca申請(qǐng)簽名證書和加密證書,并利用所申請(qǐng)到的簽名證書從ca下載所申請(qǐng)的加密證書;所述數(shù)據(jù)加密模塊202,用于在對(duì)待保護(hù)數(shù)據(jù)加密時(shí),移動(dòng)終端利用所述加密證書密鑰對(duì)加密所述待保護(hù)數(shù)據(jù),得到并保存數(shù)據(jù)密文;所述綁定模塊203,用于移動(dòng)終端將所述加密證書密鑰與移動(dòng)終端特征碼進(jìn)行綁定后,保存到其硬件載體中;所述數(shù)據(jù)解密模塊204,用于在對(duì)數(shù)據(jù)密文解密時(shí),根據(jù)所述移動(dòng)終端特征碼與所述加密證書密鑰綁定關(guān)系,得到所述加密證書密鑰,并利用所述密證書密鑰解密所述數(shù)據(jù)密文。
其中,所述數(shù)據(jù)加密模塊202包括;判斷單元,用于移動(dòng)終端根據(jù)待保護(hù)數(shù)據(jù)的復(fù)雜程度,判斷待保護(hù)數(shù)據(jù)是簡單數(shù)據(jù)還是復(fù)雜數(shù)據(jù);簡單數(shù)據(jù)加密單元,用于當(dāng)判斷待保護(hù)數(shù)據(jù)為簡單數(shù)據(jù)時(shí),移動(dòng)終端采用所述加密證書密鑰的密鑰對(duì)加密所述待保護(hù)數(shù)據(jù),得到簡單數(shù)據(jù)密文;復(fù)雜數(shù)據(jù)加密單元,用于當(dāng)判斷待保護(hù)數(shù)據(jù)為復(fù)雜數(shù)據(jù)時(shí),移動(dòng)終端采用所述加密證書密鑰的對(duì)稱密鑰加密所述待保護(hù)數(shù)據(jù),得到復(fù)雜數(shù)據(jù)密文。
圖3是本發(fā)明實(shí)施例提供的基于密碼算法加密數(shù)據(jù)的方法流程圖,如圖3所示,移動(dòng)終端向ca申請(qǐng)簽名證書和加密證書,然后利用簽名證書下載加密證書到移動(dòng)終端,并將加密證書的密鑰對(duì)與移動(dòng)終端唯一特征碼綁定在一起,以防止密鑰對(duì)文件導(dǎo)出,之后通過接口對(duì)需要加密的待保護(hù)數(shù)據(jù)進(jìn)行加密,加密文件上傳到云端,也可以保存在本地。也就是說,在移動(dòng)終端連接到能夠產(chǎn)生密碼算法的雙證ca中心,申請(qǐng)個(gè)人雙證書到移動(dòng)終端,然后在移動(dòng)終端安全保存雙證 書,采用pkcs11接口進(jìn)行保存。在使用加密證書對(duì)待保護(hù)數(shù)據(jù)進(jìn)行加密包括:對(duì)于簡單數(shù)據(jù)加密:使用國產(chǎn)密碼中的公鑰算法sm2對(duì)簡單數(shù)據(jù)進(jìn)行加密,加密后的密文采用與保護(hù)證書密鑰對(duì)相同的方式保存。對(duì)于復(fù)雜數(shù)據(jù)數(shù)據(jù)加密:加密的內(nèi)容量很大,可以先用對(duì)稱國產(chǎn)密碼算法sm4對(duì)數(shù)據(jù)進(jìn)行加密,然后再使用國產(chǎn)密碼中的公鑰算法sm2加密證書對(duì)對(duì)稱密碼的密鑰進(jìn)行加密,加密后的密文采用與保護(hù)證書密鑰對(duì)相同的方式保存。此外,為了方便恢復(fù)密鑰對(duì)需要保存加密證書的序列號(hào)與密文進(jìn)行對(duì)應(yīng)保存。
數(shù)字證書可分為簽名證書和加密證書。簽名密鑰對(duì)用于數(shù)據(jù)的完整性檢測(cè),保證防偽造與防抵賴,簽名私鑰的遺失,并不會(huì)影響對(duì)以前簽名數(shù)據(jù)的驗(yàn)證,因此,簽名私鑰無須備份,完全由持有者自己產(chǎn)生;而加密密鑰對(duì)用于數(shù)據(jù)的加密保護(hù),若加密私鑰遺失,將導(dǎo)致以前的加密數(shù)據(jù)無法解密,這在實(shí)際應(yīng)用中是無法接受的,加密私鑰應(yīng)該由可信的第三方(即通常所說的ca)來備份,以保證加密數(shù)據(jù)的可用性,因此,加密密鑰對(duì)可以由第三方來產(chǎn)生,并備份。目前在移動(dòng)端的數(shù)字證書應(yīng)用中,是基于標(biāo)準(zhǔn)非對(duì)稱算法rsa的單證,既可以用于簽名也可以用于加密。采用基于密碼算法sm系列的數(shù)字證書,將兩種證書簽名證書和加密證書下載到移動(dòng)終端。
圖4是本發(fā)明實(shí)施例提供的基于密碼算法解密數(shù)據(jù)的方法流程圖,如圖4所示,解密過程分為兩個(gè)步驟第一步恢復(fù)加密證書,第二步恢復(fù)加密數(shù)據(jù)。第一步需要用原賬號(hào)新產(chǎn)生一個(gè)簽名證書,用簽名證書去kmc(keymanagecenter,密鑰管理中心)恢復(fù)丟失的加密證書,然后從云端恢復(fù)加密文件到本地,然后用加密證書還原數(shù)據(jù)。
所述移動(dòng)終端特征碼包括:硬件序列號(hào)、設(shè)備名稱、藍(lán)牙m(xù)ac地址、wifimac地址、imei、設(shè)備型號(hào)、cpu編號(hào)、主板序列號(hào)、硬盤序列號(hào)、內(nèi)存條序列號(hào)、圖形卡/顯示器序列號(hào)和電池序列號(hào)的一個(gè)或者多個(gè)的組合,或者,所述移動(dòng)終端特征碼包括:硬件序列號(hào)、設(shè)備名稱、藍(lán)牙m(xù)ac地址、wifimac地址、imei、設(shè)備型號(hào)、cpu編號(hào)、主板序列號(hào)、硬盤序列號(hào)、內(nèi)存條序列號(hào)、圖形卡/顯示器序列號(hào)和電池序列號(hào)的一個(gè)或者多個(gè)的組合以及與預(yù)先通過程序生成并保存在所述移動(dòng)終端上的隨機(jī)uuid的組合。
綜上所述,本發(fā)明具有以下技術(shù)效果:
1、本發(fā)明在移動(dòng)端采用加密證書加密數(shù)據(jù)的方式,使用加密證書對(duì)數(shù)據(jù)加密,不僅僅可以提高解密的難度、提高數(shù)據(jù)恢復(fù)的安全性和便捷性,同時(shí)也能夠很好的保護(hù)加密密鑰。
2、本方法提高了了目前移動(dòng)終端加密方案中的加密密鑰安全管理問題,同時(shí)使得雙證書的應(yīng)用領(lǐng)域得到推廣,也提供了一種移動(dòng)端單點(diǎn)登錄軟實(shí)現(xiàn)方案,使得kmc可以大規(guī)模普及應(yīng)用。
盡管上文對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,但是本發(fā)明不限于此,本技術(shù)領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明的原理進(jìn)行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當(dāng)理解為落入本發(fā)明的保護(hù)范圍。