本發明涉及互聯網技術領域,特別是涉及一種數據加密解密方法及裝置。
背景技術:
隨著互聯網技術的發展,人們逐漸習慣將工作或者生活中所需的數據以電子形式保存在計算機中。在實際應用中,人們為了方便查詢,常常將一些電子文件保存在客戶端本地。然而,由于客戶端易被攻擊,所以為了避免一些重要的電子文件(例如公私鑰對)產生風險,常常先將這些電子文件通過保護口令進行加密,然后將密文發送給服務器進行存儲。當需要使用該電子文件時,終端會顯示保護口令輸入提示框,然后終端可以通過輸入的保護口令來對密文進行解密,獲得解密后的電子文件。
但是,保護口令容易被攻破,例如其他用戶可以在保護口令輸入提示框中通過不斷嘗試不同保護口令的方式進行保護口令破解,從而可能存在破解成功的風險,進而導致重要電子文件泄露,給用戶帶來重大損失。
技術實現要素:
有鑒于此,本發明提供一種數據加密解密方法及裝置,能夠防止他人通過破解保護口令而獲得明文,使得用戶受損。
本發明的目的是采用以下技術方案來實現的:
第一方面,本發明提供了一種數據加密方法,所述方法包括:
獲取輸入的第一加密密鑰和第二加密密鑰,所述第一加密密鑰包括人體生物特征信息,所述第二加密密鑰包括保護口令;
根據預設加密規則,利用所述第一加密密鑰和所述第二加密密鑰對明文進行加密,獲得所述明文對應的密文。
結合第一方面,在第一方面的第一種可能的實現方式中,根據預設加密規則,利用所述第一加密密鑰和所述第二加密密鑰對明文進行加密,獲得所述明文對應的密文包括:
根據預設加密順序,利用所述第一加密密鑰和所述第二加密密鑰對所述明文進行雙層加密,獲得所述密文。
結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,根據預設加密順序,利用所述第一加密密鑰和所述第二加密密鑰對所述明文進行雙層加密,獲得所述密文包括:
若第一層加密類型為人體生物特征信息,第二層加密類型為保護口令,則利用所述第一加密密鑰對所述明文進行第一層加密,利用所述第二加密密鑰對第一層加密的結果進行第二層加密,獲得所述密文;
若第一層加密類型為保護口令,第二層加密類型為人體生物特征信息,則利用所述第二加密密鑰對所述明文進行第一層加密,利用所述第一加密密鑰對第一層加密的結果進行第二層加密,獲得所述密文。
結合第一方面,在第一方面的第三種可能的實現方式中,根據預設加密規則,利用所述第一加密密鑰和所述第二加密密鑰對明文進行加密,獲得所述明文對應的密文包括:
將所述第一加密密鑰中的人體生物特征信息轉換成第一加密密鑰序列;
將所述第二加密密鑰中的保護口令轉換成第二加密密鑰序列;
對所述第一加密密鑰序列和所述第二加密密鑰序列進行合并處理,獲得第三加密密鑰序列;
利用所述第三加密密鑰序列對所述明文進行加密,獲得所述密文。
第二方面,本發明提供了一種數據解密方法,所述方法包括:
獲取輸入的第一解密密鑰、第二解密密鑰以及待解密的密文,所述第一解密密鑰包括人體生物特征信息,所述第二解密密鑰包括保護口令;
利用所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密。
結合第二方面,在第二方面的第一種可能的實現方式中,利用所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密包括:
根據由加密順序確定的解密順序,利用所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密。
結合第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,根據由加密順序確定的解密順序,利用所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密包括:
若第一層加密類型為人體生物特征信息,第二層加密類型為保護口令,則利用所述第二解密密鑰對所述密文進行第一層解密,并在解密成功后,利用所述第一解密密鑰對第一層解密的結果進行第二層解密;
若第一層加密類型為保護口令,第二層加密類型為人體生物特征信息,則利用所述第一解密密鑰對所述密文進行第一層解密,并在解密成功后,利用所述第二解密密鑰對第一層解密的結果進行第二層解密。
結合第二方面的第二種可能的實現方式,在第二方面的第三種可能的實現方式中,所述方法還包括:
在第二層解密成功后,獲得所述密文對應的明文。
結合第二方面,在第二方面的第四種可能的實現方式中,利用所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密包括:
將所述第一解密密鑰中的人體生物特征信息轉換為第一解密密鑰序列;
將所述第二解密密鑰中的保護口令轉換為第二解密密鑰序列;
對所述第一解密密鑰序列和所述第二解密密鑰序列進行合并處理,獲得第三解密密鑰序列;
利用所述第三解密密鑰序列對所述密文進行解密。
第三方面,本發明提供了一種數據加密裝置,所述裝置包括:
獲取單元,用于獲取輸入的第一加密密鑰和第二加密密鑰,所述第一加密密鑰包括人體生物特征信息,所述第二加密密鑰包括保護口令;
加密單元,用于根據預設加密規則,利用所述獲取單元獲取的所述第一加密密鑰和所述第二加密密鑰對明文進行加密,獲得所述明文對應的密文。
結合第三方面,在第三方面的第一種可能的實現方式中,所述加密單元包括:
第一加密模塊,用于根據預設加密順序,利用所述第一加密密鑰和所述第二加密密鑰對所述明文進行雙層加密,獲得所述密文。
結合第三方面的第一種可能的實現方式,在第三方面的第二種可能的實現方式中,第一加密模塊包括:
第一加密子模塊,用于當第一層加密類型為人體生物特征信息,第二層加密類型為保護口令時,利用所述第一加密密鑰對所述明文進行第一層加密,利用所述第二加密密鑰對第一層加密的結果進行第二層加密,獲得所述密文;
第二加密子模塊,用于當第一層加密類型為保護口令,第二層加密類型為人體生物特征信息時,利用所述第二加密密鑰對所述明文進行第一層加密,利用所述第一加密密鑰對第一層加密的結果進行第二層加密,獲得所述密文。
結合第三方面,在第三方面的第三種可能的實現方式中,所述加密單元包括:
轉換模塊,用于將所述第一加密密鑰中的人體生物特征信息轉換成第一加密密鑰序列;
所述轉換模塊還用于將所述第二加密密鑰中的保護口令轉換成第二加密密鑰序列;
合并模塊,用于對所述轉換模塊獲得的所述第一加密密鑰序列和所述第二加密密鑰序列進行合并處理,獲得第三加密密鑰序列;
第二加密模塊,用于利用所述合并模塊獲得的所述第三加密密鑰序列對所述明文進行加密,獲得所述密文。
第四方面,本發明提供了一種數據解密裝置,所述裝置包括:
獲取單元,用于獲取輸入的第一解密密鑰、第二解密密鑰以及待解密的密文,所述第一解密密鑰包括人體生物特征信息,所述第二解密密鑰包括保護口令;
解密單元,用于利用所述獲取單元獲取的所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密。
結合第四方面,在第四方面的第一種可能的實現方式中,所述解密單元包括:
第一解密模塊,用于根據由加密順序確定的解密順序,利用所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密。
結合第四方面的第一種可能的實現方式,在第四方面的第二種可能的實現方式中,所述第一解密模塊包括:
第一解密子模塊,用于當第一層加密類型為人體生物特征信息,第二層加密類型為保護口令時,利用所述第二解密密鑰對所述密文進行第一層解密,并在解密成功后,利用所述第一解密密鑰對第一層解密的結果進行第二層解密;
第二解密子模塊,用于當第一層加密類型為保護口令,第二層加密類型為人體生物特征信息時,利用所述第一解密密鑰對所述密文進行第一層解密,并在解密成功后,利用所述第二解密密鑰對第一層解密的結果進行第二層解密。
結合第四方面的第二種可能的實現方式,在第四方面的第三種可能的實現方式中,所述第一解密模塊還用于在第二層解密成功后,獲得所述密文對應的明文。
結合第四方面,在第二方面的第四種可能的實現方式中,所述解密單元包括:
轉換模塊,用于將所述第一解密密鑰中的人體生物特征信息轉換為第一解密密鑰序列;
所述轉換模塊還用于將所述第二解密密鑰中的保護口令轉換為第二解密密鑰序列;
合并模塊,用于對所述合并模塊獲得的所述第一解密密鑰序列和所述第二解密密鑰序列進行合并處理,獲得第三解密密鑰序列;
第二解密模塊,用于利用所述合并模塊獲得的所述第三解密密鑰序列對所述密文進行解密。
借由上述技術方案,本發明提供的數據加密解密方法及裝置,能夠通過可唯一標識用戶的人體生物特征信息以及保護口令這兩個密鑰對一個明文進行加密,而非單獨使用保護口令對該明文進行加密,從而在后續對密文進行解密時,需要這兩個密鑰均正確時,才可成功解密密文。由此可知,當其他用戶登錄當前用戶的賬戶后,由于其他用戶的人體生物特征信息與加密文件時用戶的人體生物特征信息不同,所以其他用戶在不斷嘗試不同保護口令進行解密的過程中,即使輸入的保護口令是正確的,也無法對密文進行成功解密,從而能夠防止加密的文件泄露,避免用戶受損。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。
附圖說明
通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發明實施例提供的一種數據加密方法的流程圖;
圖2示出了本發明實施例提供的一種數據解密方法的流程圖;
圖3a示出了本發明實施例提供的一種客戶端服務器加密數據交互圖;
圖3b示出了本發明實施例提供的一種客戶端服務器解密數據交互圖;
圖3c示出了本發明實施例提供的另一種客戶端服務器解密數據交互圖;
圖4示出了本發明實施例提供的一種數據加密裝置的組成框圖;
圖5示出了本發明實施例提供的另一種數據加密裝置的組成框圖;
圖6示出了本發明實施例提供的一種數據解密裝置的組成框圖;
圖7示出了本發明實施例提供的另一種數據解密裝置的組成框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
本發明實施例提供了一種數據加密方法,該方法可以應用于客戶端側,如圖1所示,該方法主要包括:
101、獲取輸入的第一加密密鑰和第二加密密鑰;
其中,第一加密密鑰包括人體生物特征信息,第二加密密鑰包括保護口令。人體生物特征信息能夠唯一標識用戶,且其類型主要包括指紋、虹膜、人臉、掌紋、手形、靜脈或人耳等。
具體的,客戶端獲取第一加密密鑰和第二加密密鑰的順序不限制。可以先獲取第一加密密鑰,再獲取第二加密密鑰;也可以先獲取第二加密密鑰,再獲取第一加密密鑰;也可以同時獲取兩個加密密鑰。
示例性的,對于同時獲取兩個加密密鑰這種方式:客戶端可以在一個界面上顯示輸入人體生物特征信息的提示信息以及輸入保護口令的提示信息,然后用戶基于這兩個提示信息分別在對應的輸入區域輸入加密密鑰,最后點擊確定,使得客戶端同時獲得兩個加密密鑰。
需要說明的是,在輸入人體生物特征信息時,可以直接輸入,也可以通過圖像采集輸入;當通過圖像采集輸入時,可以通過但不局限于以下的方法實現,該方法包括:
用戶在對應的輸入區域中輸入用戶的圖像,并由客戶端采集該圖像,對該圖像進行特征提取,獲得人體生物特征信息。例如,客戶端可以采集用戶的人臉圖像,然后對該人臉圖像進行分析,從中提取出人臉特征信息。
102、根據預設加密規則,利用所述第一加密密鑰和所述第二加密密鑰對明文進行加密,獲得所述明文對應的密文。
具體的,預設加密規則包括但不限于以下幾種:(1)根據預設加密順序,依次對明文進行兩層加密后獲得對應的密文(詳見下述實施例中的“加密方式一”);(2)先將第一加密密鑰和第二加密密鑰合并為一個新的加密密鑰,然后用該新的加密密鑰對明文進行加密獲得密文(詳見下述實施例中的“加密方式二”)。
需要說明的是,對于基于兩層加密獲得密文的加密方式,在使用第一加密密鑰對明文加密,或者使用第一加密密鑰對第二加密密鑰加密明文后的文件進行加密時,可以采用Fuzzy-ibe(Fuzzy Identity-Based Encryption,模糊的基于身份的加密)加密機制實現模糊技術加密,也可以采用其他加密技術對文件進行加密,在此不做限定。其中,采用Fuzzy-ibe加密機制進行加密可以在后續進行解密時,在獲取的人體生物特征信息存在一定差異的情況下,也能夠成功解密密文,從而能夠防止加密明文用戶在進行解密時,若輸入的人體生物特征信息稍微有些變化(例如在指紋輸入區域輸入指紋時,手指對準輸入區域情況有偏差)而無法成功解密密文。
需要補充的是,在使用第一加密密鑰和第二加密密鑰對明文進行加密時,客戶端需要先將第一加密密鑰中的人體生物特征信息轉換為第一加密密鑰序列,將第二加密密鑰中的保護口令轉換為第二加密密鑰序列,然后再用這兩個加密密鑰序列對明文進行加密。
此外,當客戶端對明文進行加密獲得密文后,可以將該密文以及當前用戶的用戶ID(Identity,身份標識號碼)發送給服務器,以便使得密文在服務器側進行安全保存。
本發明實施例提供的數據加密方法,能夠通過可唯一標識用戶的人體生物特征信息以及保護口令這兩個密鑰對一個明文進行加密,而非單獨使用保護口令對該明文進行加密,從而在后續對密文進行解密時,需要這兩個密鑰均正確時,才可成功解密密文。由此可知,當其他用戶登錄當前用戶的賬戶后,由于其他用戶的人體生物特征信息與加密文件時用戶的人體生物特征信息不同,所以其他用戶在不斷嘗試不同保護口令進行解密的過程中,即使輸入的保護口令是正確的,也無法對密文進行成功解密,從而能夠防止加密的文件泄露,避免用戶受損。
進一步的,圖1中的步驟102可以具體細化為如下兩種方式:
加密方式一:根據預設加密順序,利用所述第一加密密鑰和所述第二加密密鑰對所述明文進行雙層加密,獲得所述密文。
具體的,預設加密順序可以分為以下兩種:(1)第一層加密所使用的加密類型(即第一層加密類型)為人體生物特征信息,第二層加密所使用的加密類型(即第二層加密類型)為保護口令;(2)第一層加密所使用的加密類型為保護口令,第二層加密所使用的加密類型為人體生物特征信息。也就是說,在對明文進行加密獲得密文的過程中,加密順序不做限制。既可以將第一加密密鑰作為第一層加密所需的密鑰,將第二加密密鑰作為第二層加密所需的密鑰;也可以將第二加密密鑰作為第一層加密所需的密鑰,將第一加密密鑰作為第二層加密所需的密鑰。
當第一層加密類型為人體生物特征信息,第二層加密類型為保護口令時,客戶端可以利用所述第一加密密鑰對所述明文進行第一層加密,利用所述第二加密密鑰對第一層加密的結果進行第二層加密,獲得所述密文。當第一層加密類型為保護口令,第二層加密類型為人體生物特征信息時,客戶端可以利用所述第二加密密鑰對所述明文進行第一層加密,利用所述第一加密密鑰對第一層加密的結果進行第二層加密,獲得所述密文。
示例性的,當客戶端獲取用戶輸入的指紋圖像和保護口令“abc123”后,可以先從指紋圖像中提取指紋特征信息;然后利用指紋特征信息對明文1進行第一層加密,獲得密文1;最后利用保護口令“abc123”對密文1進行加密獲得密文2。其中,密文2為明文1對應的最終所需的密文。
加密方式二:客戶端將所述第一加密密鑰中的人體生物特征信息轉換成第一加密密鑰序列;將所述第二加密密鑰中的保護口令轉換成第二加密密鑰序列;然后對所述第一加密密鑰序列和所述第二加密密鑰序列進行合并處理,獲得第三加密密鑰序列;最后利用所述第三加密密鑰序列對所述明文進行加密,獲得所述密文。
其中,合并處理的方式包括但不限于以下幾種:(1)直接將第一加密密鑰序列與第二加密密鑰序列進行首尾連接,使得第三加密密鑰序列的長度為這兩個序列的長度和;(2)根據預設算法(例如將兩者相加),對第一加密密鑰序列和第二加密密鑰序列進行計算,獲得第三加密密鑰序列。示例性的,若第一加密密鑰序列為“123456”,第二加密密鑰序列為“896”,則將兩者進行合并處理獲得的第三加密密鑰序列可以為“123456896”。
進一步的,根據圖1所示的數據加密方法,本發明的另一個實施例還提供了一種數據解密方法,該方法可以應用于客戶端側,也可以應用于服務器側,如圖2所示,該方法主要包括:
201、獲取輸入的第一解密密鑰、第二解密密鑰以及待解密的密文;
其中,第一解密密鑰包括人體生物特征信息,第二解密密鑰包括保護口令。關于人體生物特征信息的相關的介紹請參考圖1對應的步驟101中的相關描述,本步驟不再贅述。
在實際應用中,一個用戶可能會加密一個明文,也可能會加密多個明文,且加密多個明文時,不同明文可能會使用不同的加密密鑰。例如,在加密明文1時,輸入的人體生物特征信息為“右手食指”,保護口令為“123456”;而在加密明文2時,輸入的人體生物特征信息為“右手中指”,保護口令為“987654”。
在解密密文的過程中,當當前用戶加密的明文為一個時,用戶可以直接輸入第一解密密鑰和第二解密密鑰,而無需輸入待解密密文的密文名稱;當當前用戶加密的明文為多個時,為了確定其想要解密的密文是哪一個,則除了要用戶輸入第一解密密鑰和第二解密密鑰外,還需要用戶輸入待解密密文的密文名稱。
本實施例提供的數據解密方法的具體實現過程既可以執行在客戶端側,又可以執行在服務器側,下面以當前用戶加密有多個明文(即服務器側存儲有多個密文)為例,對本步驟的具體實現方式進行介紹:
當本實施例執行于客戶端側時,本步驟的具體實現方式可以為:當客戶端接收到輸入的待解密密文的密文名稱后,或者獲取輸入的第一解密密鑰和第二解密密鑰后,可以向服務器發送輸入的密文名稱和用戶ID,然后接收服務器根據密文名稱和用戶ID反饋的密文。
當本實施例執行于服務器側時,本步驟的具體實現方式可以為:服務器接收客戶端發送的第一解密密鑰、第二解密密鑰、密文名稱以及用戶ID,然后根據密文名稱和用戶ID查找對應的密文,將查找到的密文確定為待解密的密文。
202、利用所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密。
與圖1中的加密方法相對應的,本步驟中的解密方法包括但不限于以下幾種:(1)若加密方法為采用預設加密順序對明文進行兩層加密,則解密方法為根據由加密順序確定的解密順序,對密文進行兩層解密后獲得所需的明文(詳見下述實施例中的“解密方式一”);(2)若加密方法為采用合并后的加密密鑰對明文進行加密,則先將第一解密密鑰和第二解密密鑰合并為一個新的解密密鑰,然后用該新的解密密鑰對密文進行解密獲得明文(詳見下述實施例中的“解密方式二”)。
需要說明的是,若客戶端利用第一加密密鑰對文件進行加密時,采用的加密技術為Fuzzy-ibe,則客戶端或者服務器利用第一解密密鑰對文件進行解密時,也需要使用Fuzzy-ibe技術。
當本實施例執行于客戶端側時,執行步驟202后,若解密成功,則直接獲得所需的明文,若解密失敗,則可以輸出顯示密鑰錯誤提示信息;當本實施例執行于服務器側時,執行步驟202后,若解密成功,則需要將明文反饋給客戶端,若解密失敗,可以將密鑰錯誤提示信息反饋給客戶端進行輸出顯示。
本發明實施例提供的數據解密方法,能夠在對利用人體生物特征信息和保護口令這兩個加密密鑰加密明文獲得的密文進行解密時,需要這兩個密鑰均正確時,才可成功解密密文。由此可知,當其他用戶登錄當前用戶的賬戶后,由于其他用戶的人體生物特征信息與加密文件時用戶的人體生物特征信息不同,所以其他用戶在不斷嘗試不同保護口令進行解密的過程中,即使輸入的保護口令是正確的,也無法對密文進行成功解密,從而能夠防止加密的文件泄露,避免用戶受損。
進一步的,圖2中的步驟202可以具體細化為如下兩種方式:
解密方式一:根據由加密順序確定的解密順序,利用所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密。
其中,解密順序是加密順序的反序。具體的,當第一層加密類型為人體生物特征信息,第二層加密類型為保護口令時,可以利用所述第二解密密鑰對所述密文進行第一層解密,并在解密成功后,利用所述第一解密密鑰對第一層解密的結果進行第二層解密;當第一層加密類型為保護口令,第二層加密類型為人體生物特征信息時,可以利用所述第一解密密鑰對所述密文進行第一層解密,并在解密成功后,利用所述第二解密密鑰對第一層解密的結果進行第二層解密。
需要說明的是,當對第一層解密的結果進行第二層解密成功后,才可獲得待解密密文對應的明文;而若第一層解密失敗,或者第二層解密失敗,則無法獲得明文。
示例性的,當第一層加密類型為人臉特征信息,第二層加密類型為保護口令“abc123”,待解密的密文為密文x時,先利用保護口令“abc123”對密文x進行解密獲得密文y,再利用人臉特征信息對密文y進行解密,獲得明文。
此外,當解密失敗時,可以在客戶端輸出顯示密鑰錯誤提示信息。為了讓用戶獲知是哪個解密密鑰輸入錯誤,密鑰錯誤提示信息中可以包括錯誤密鑰的密鑰類型。具體的,若第一層解密失敗,則可以將包括第一層解密所需的密鑰類型的密鑰錯誤提示信息在客戶端輸出顯示給用戶;若第一層解密成功,第二層解密失敗,則可以將包括第二層解密所需的密鑰類型的密鑰錯誤提示信息在客戶端輸出顯示給用戶。
解密方式二:可以先將所述第一解密密鑰中的人體生物特征信息轉換為第一解密密鑰序列;將所述第二解密密鑰中的保護口令轉換為第二解密密鑰序列;然后對所述第一解密密鑰序列和所述第二解密密鑰序列進行合并處理,獲得第三解密密鑰序列;最后利用所述第三解密密鑰序列對所述密文進行解密。
其中,合并處理方式與加密時所使用的合并處理方式相同,在此不再贅述。
基于上述數據加密過程和數據解密過程,下面以采用的人體生物特征信息為人臉生物特征信息,解密的設備為服務器,加密方法采用“第一層加密類型為人體生物特征信息,第二層加密類型為保護口令”這種兩層加密的方式為例,闡述數據加密涉及的客戶端服務器交互過程(如圖3a),數據解密涉及的客戶端服務器交互過程(如圖3b):
301、客戶端采集加密明文所需的人臉圖像,然后從人臉圖像中提取人臉特征信息,并將該人臉特征信息轉為為第一加密密鑰序列;
302、客戶端獲取加密明文所需的保護口令,并將該保護口令轉換為第二加密密鑰序列;
303、客戶端基于Fuzzy-ibe技術,利用第一加密密鑰序列對明文進行第一層加密,獲得密文1;
304、客戶端利用第二加密密鑰序列對密文1進行第二層加密,獲得密文2;
305、客戶端將密文2和用戶ID發送給服務器;
306、服務器接收客戶端發送的密文2和用戶ID,并進行綁定存儲;
需要說明的是,對于每個明文的加密過程均可采用上述步驟301-306所提及的方法。下面以當前用戶ID在服務器側存儲有多個密文為例,對解密過程進行介紹:
307、客戶端采集解密密文所需的人臉圖像,然后從人臉圖像中提取人臉特征信息,并將該人臉特征信息轉為為第一解密密鑰序列;
308、客戶端獲取解密密文所需的保護口令,并將該保護口令轉換為第二解密密鑰序列;
309、客戶端將第一解密密鑰序列、第二解密密鑰序列、密文名稱和用戶ID發送給服務器;
其中,由于當前用戶ID對應多個密文,所以客戶端需要獲取待解密密文的密文名稱,以便服務器根據用戶ID和密文名稱唯一確定待解密的密文。
310、服務器接收客戶端發送的第一解密密鑰序列、第二解密密鑰序列、密文名稱和用戶ID;
311、服務器根據密文名稱和用戶ID查找對應的密文(如為密文2);
312、服務器利用第二解密密鑰序列對密文2進行第一層解密;若解密成功獲得密文1,則執行步驟313,;若解密失敗,則執行步驟315;
313、服務器基于Fuzzy-ibe技術,利用第一解密密鑰序列對密文1進行第二層解密;若解密成功獲得明文,則執行步驟314;若解密失敗,則執行步驟315;
314、服務器將明文發送給客戶端;
315、服務器將密鑰錯誤提示信息發送給客戶端。
下面再以采用的人體生物特征信息為人臉生物特征信息,解密的設備為客戶端所屬設備,加密方法采用“第一層加密類型為人體生物特征信息,第二層加密類型為保護口令”這種兩層加密的方式為例,闡述數據加密涉及的客戶端服務器交互過程(如圖3a),數據解密涉及的客戶端服務器交互過程(如圖3c):
其中,加密涉及的交互過程詳見上述步驟301-306,解密涉及的交互過程詳見下述步驟316-325(同樣以當前用戶ID在服務器側存儲有多個密文為例):
316、客戶端采集解密密文所需的人臉圖像,然后從人臉圖像中提取人臉特征信息,并將該人臉特征信息轉為為第一解密密鑰序列;
317、客戶端獲取解密密文所需的保護口令,并將該保護口令轉換為第二解密密鑰序列;
318、客戶端將密文名稱和用戶ID發送給服務器;其中,步驟316、317、318沒有先后順序之分;
319、服務器接收客戶端發送的密文名稱和用戶ID;
320、服務器根據密文名稱和用戶ID查找對應的密文(如為密文2);
321、服務器將查找到的密文發送給客戶端;
322、客戶端接收服務器發送的密文;
323、客戶端利用第二解密密鑰序列對密文2進行第一層解密;若解密成功獲得密文1,則執行步驟324,;若解密失敗,則執行步驟325;
324、客戶端基于Fuzzy-ibe技術,利用第一解密密鑰序列對密文1進行第二層解密;若解密成功,則獲得明文;若解密失敗,則執行步驟325;
325、輸出顯示密鑰錯誤提示信息。
需要補充的是,對于客戶端和服務器之間的交互數據,均可以通過預設的加密算法對這些交互的數據進行加密傳輸,從而保證交互數據的安全,進而保證明文的安全。
進一步的,根據圖1所示的數據加密方法,本發明的另一個實施例還提供了一種數據加密裝置,所述裝置可以應用于客戶端側,如圖4所示,所述裝置主要包括:獲取單元41以及加密單元42。其中,
獲取單元41,用于獲取輸入的第一加密密鑰和第二加密密鑰,所述第一加密密鑰包括人體生物特征信息,所述第二加密密鑰包括保護口令;
其中,人體生物特征信息能夠唯一標識用戶,且其類型主要包括指紋、虹膜、人臉、掌紋、手形、靜脈或人耳等。
具體的,獲取單元41獲取第一加密密鑰和第二加密密鑰的順序不限制。可以先獲取第一加密密鑰,再獲取第二加密密鑰;也可以先獲取第二加密密鑰,再獲取第一加密密鑰;也可以同時獲取兩個加密密鑰。
加密單元42,用于根據預設加密規則,利用所述獲取單元41獲取的所述第一加密密鑰和所述第二加密密鑰對明文進行加密,獲得所述明文對應的密文。
進一步的,如圖5所示,所述加密單元42包括:
第一加密模塊421,用于根據預設加密順序,利用所述第一加密密鑰和所述第二加密密鑰對所述明文進行雙層加密,獲得所述密文。
進一步的,如圖5所示,第一加密模塊421包括:
第一加密子模塊4211,用于當第一層加密類型為人體生物特征信息,第二層加密類型為保護口令時,利用所述第一加密密鑰對所述明文進行第一層加密,利用所述第二加密密鑰對第一層加密的結果進行第二層加密,獲得所述密文;
第二加密子模塊4212,用于當第一層加密類型為保護口令,第二層加密類型為人體生物特征信息時,利用所述第二加密密鑰對所述明文進行第一層加密,利用所述第一加密密鑰對第一層加密的結果進行第二層加密,獲得所述密文。
需要說明的是,對于基于兩層加密獲得密文的加密方式,在使用第一加密密鑰對明文加密,或者使用第一加密密鑰對第二加密密鑰加密明文后的文件進行加密時,可以采用Fuzzy-ibe加密機制實現模糊技術加密,也可以采用其他加密技術對文件進行加密,在此不做限定。
進一步的,如圖5所示,所述加密單元42包括:
轉換模塊422,用于將所述第一加密密鑰中的人體生物特征信息轉換成第一加密密鑰序列;
所述轉換模塊422還用于將所述第二加密密鑰中的保護口令轉換成第二加密密鑰序列;
合并模塊423,用于對所述轉換模塊422獲得的所述第一加密密鑰序列和所述第二加密密鑰序列進行合并處理,獲得第三加密密鑰序列;
其中,合并處理的方式包括但不限于以下幾種:(1)直接將第一加密密鑰序列與第二加密密鑰序列進行首尾連接,使得第三加密密鑰序列的長度為這兩個序列的長度和;(2)根據預設算法(例如將兩者相加),對第一加密密鑰序列和第二加密密鑰序列進行計算,獲得第三加密密鑰序列。
第二加密模塊424,用于利用所述合并模塊423獲得的所述第三加密密鑰序列對所述明文進行加密,獲得所述密文。
本發明實施例提供的數據加密裝置,能夠通過可唯一標識用戶的人體生物特征信息以及保護口令這兩個密鑰對一個明文進行加密,而非單獨使用保護口令對該明文進行加密,從而在后續對密文進行解密時,需要這兩個密鑰均正確時,才可成功解密密文。由此可知,當其他用戶登錄當前用戶的賬戶后,由于其他用戶的人體生物特征信息與加密文件時用戶的人體生物特征信息不同,所以其他用戶在不斷嘗試不同保護口令進行解密的過程中,即使輸入的保護口令是正確的,也無法對密文進行成功解密,從而能夠防止加密的文件泄露,避免用戶受損。
進一步的,根據圖2所示的數據解密方法,本發明的另一個實施例還提供了一種數據解密裝置,所述裝置可以應用于客戶端側,也可以應用于服務器側,如圖6所示,所述裝置主要包括:獲取單元51以及解密單元52。其中,
獲取單元51,用于獲取輸入的第一解密密鑰、第二解密密鑰以及待解密的密文,所述第一解密密鑰包括人體生物特征信息,所述第二解密密鑰包括保護口令;
當本實施例執行于客戶端側時,獲取單元51獲取的密文是從服務器側查詢得到。當本實施例執行于服務器側時,獲取單元51獲取的第一解密密鑰、第二解密密鑰、密文名稱以及用戶ID均由客戶端發送得到。
解密單元52,用于利用所述獲取單元51獲取的所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密。
當本實施例執行于客戶端側時,若解密失敗,則客戶端可以輸出顯示密鑰錯誤提示信息;當本實施例執行于服務器側時,若解密失敗,則服務器可以向客戶端發送密鑰錯誤提示信息。
進一步的,如圖7所示,所述解密單元52包括:
第一解密模塊521,用于根據由加密順序確定的解密順序,利用所述第一解密密鑰以及所述第二解密密鑰對所述密文進行解密。
進一步的,如圖7所示,所述第一解密模塊521包括:
第一解密子模塊5211,用于當第一層加密類型為人體生物特征信息,第二層加密類型為保護口令時,利用所述第二解密密鑰對所述密文進行第一層解密,并在解密成功后,利用所述第一解密密鑰對第一層解密的結果進行第二層解密;
第二解密子模塊5212,用于當第一層加密類型為保護口令,第二層加密類型為人體生物特征信息時,利用所述第一解密密鑰對所述密文進行第一層解密,并在解密成功后,利用所述第二解密密鑰對第一層解密的結果進行第二層解密。
進一步的,所述第一解密模塊5211還用于在第二層解密成功后,獲得所述密文對應的明文。
進一步的,如圖7所示,所述解密單元52包括:
轉換模塊522,用于將所述第一解密密鑰中的人體生物特征信息轉換為第一解密密鑰序列;
所述轉換模塊522還用于將所述第二解密密鑰中的保護口令轉換為第二解密密鑰序列;
合并模塊523,用于對所述合并模塊522獲得的所述第一解密密鑰序列和所述第二解密密鑰序列進行合并處理,獲得第三解密密鑰序列;
第二解密模塊524,用于利用所述合并模塊523獲得的所述第三解密密鑰序列對所述密文進行解密。
本發明實施例提供的數據解密裝置,能夠在對利用人體生物特征信息和保護口令這兩個加密密鑰加密明文獲得的密文進行解密時,需要這兩個密鑰均正確時,才可成功解密密文。由此可知,當其他用戶登錄當前用戶的賬戶后,由于其他用戶的人體生物特征信息與加密文件時用戶的人體生物特征信息不同,所以其他用戶在不斷嘗試不同保護口令進行解密的過程中,即使輸入的保護口令是正確的,也無法對密文進行成功解密,從而能夠防止加密的文件泄露,避免用戶受損。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
可以理解的是,上述方法及裝置中的相關特征可以相互參考。另外,上述實施例中的“第一”、“第二”等是用于區分各實施例,而并不代表各實施例的優劣。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本發明的內容,并且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(DSP)來實現根據本發明實施例的數據加密解密方法及裝置中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用于執行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。