專利名稱:數(shù)據(jù)加密及解密方法、系統(tǒng)及設備的制作方法
技術領域:
本發(fā)明涉及信息安全領域,更具體地說,涉及一種數(shù)據(jù)加密及解密方法、 系統(tǒng)及i殳備。
技術背景 目前大量的服務提供商,例如軟件即服務(Software-as-a-service, SaaS ) 提供商,通常會提供財務、客戶關系管理、供應鏈管理等軟件給客戶。當客 戶使用這些軟件提供的服務時,客戶的數(shù)據(jù)需保存在服務提供商的公共數(shù)據(jù) 庫中,若不對這些數(shù)據(jù)進行加密處理,就可能會有部分敏感數(shù)據(jù)被泄露。為 避免這種情況的'發(fā)生,就有必要對數(shù)據(jù)進行加密。 現(xiàn)有的數(shù)據(jù)加密方法有多種,包括對稱加密算法、不對稱加密算法、不 可逆加密算法等。其中 對稱加密算法是應用較早的加密算法,技術成熟。在計算機網(wǎng)絡中廣泛 使用的對稱加密算法有數(shù)據(jù)加密算法(Data Encryption Standard, DES )和國 際數(shù)據(jù)加密算法(International Data Encryption Algorithm, IDEA)等,美國國 家標準局倡導的高級加密標準(Advanced Encryption Standard, AES )即將作 為新標準取代DES。在對稱加密算法中,數(shù)據(jù)發(fā)信方將原文和密鑰一起經(jīng)過加 密算法處理后,使其變成復雜的加密密文發(fā)送出去。收信方收到密文后,若 想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解 密,才能使其恢復成可讀原文。在對稱加密算法中,使用的密鑰只有一個, 發(fā)信方和收信方都使用這個密鑰對數(shù)據(jù)進行加密和解密,因此要求解密方事 先必須知道密鑰。對稱加密算法的特點是算法公開、計算量小、加密速度快、 加密效率高。不足之處是,交易雙方都使用同樣的密鑰,安全性得不到保證。 此外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的惟一 鑰匙,這會使得發(fā)收信雙方所擁有的鑰匙數(shù)量成幾何級數(shù)增長,密鑰管理成 為用戶的負擔,管理成本較高。 不對稱加密算法的應用也非常廣泛,常用的不對稱加密算法有公鑰加密 算法(Rivest-Shamir-Adleman, RSA)和美國國家標準局提出的數(shù)字簽名算法 (Digital Signature Algorithm, DSA )。不對稱加密算法使用兩個完全不同但 相互匹配的鑰匙,即公鑰和私鑰,該算法利用公鑰對原文進行加密,利用私 鑰對密文進行解密。發(fā)信方知道收信方的公鑰,而收信方是唯一知道自己私 鑰的人。不對稱加密算法的基本原理是,如果發(fā)信方想發(fā)送只有收信方才能
解讀的加密信息,發(fā)信方必須首先,人收信方獲取到7>鑰,然后利用該7>鑰來
加密原文;收信方收到密文后,使用自己的私鑰解密密文。由于不對稱算法 擁有兩個密鑰,因而特別適用于分布式系統(tǒng)中的數(shù)據(jù)加密。
不可逆加密算法的特征是加密過程中不需使用密鑰,在計算機網(wǎng)絡中應 用較多的不可逆加密算法有MD5是信息-摘要算法(Message-Digest algorithm 5, MD5)和由美國國家標準局建議的安全雜亂信息標準(Secure Hash Standard, SHS )等。在不可逆加密算法中,輸入原文后由系統(tǒng)直接經(jīng)過加密 算法處理成密文,這種加密后的數(shù)據(jù)是無法被解密的,只有重新輸入原文, 并再次經(jīng)過同樣不可逆的加密算法處理,得到相同的加密密文并被系統(tǒng)重新 識別后,才能真正解密。顯然,在這類加密過程中,加密和解密都是用戶自 己,而所謂解密,實際上就是重新加一次密,所應用的"密碼"也就是輸入 的原文。不可逆加密算法不存在密鑰保管和分發(fā)問題,非常適合在分布式網(wǎng) 絡系統(tǒng)上使用,但因加密計算復雜,工作量相當繁重,通常只在數(shù)據(jù)量有限 的情形下使用,如廣泛應用在計算機系統(tǒng)中的口令加密,利用的就是不可逆 加密算法。近年來,隨著計算機系統(tǒng)性能的不斷提高,不可逆加密的應用領 域正在逐漸增大。
而現(xiàn)階段為了實現(xiàn)數(shù)據(jù)加密,最簡單的方法是使用DES算法,如前所述, 該算法是一種對稱加密算法。圖l示出了使用該算法對原文進行加密的處理過 程,包括在步驟S101中,獲取原文,并接收用戶輸入的密碼;在步驟S102 中,通過DES算法,將前述密碼作為密鑰對原文進行加密。而在解密階段中, 直接使用DES算法,將用戶輸入的密碼作為密鑰對密文進行解密,計算生成原 文。該現(xiàn)有技術的特點是簡單,效率高,能夠保證一定的加密強度。但是利 用該現(xiàn)有4支術的方法時,所存儲數(shù)據(jù)的安全性較低,體現(xiàn)在以下兩個方面 (1)由于所有數(shù)據(jù)采用同一密鑰加密, 一旦密文被破譯,所有存儲的數(shù)據(jù)都 會泄密,可靠性難以得到保障;(2)由于該算法中密鑰本身的加密強度只有 56位,存在弱密鑰問題,如果客戶使用不當,會使加密強度大幅度降低。 因此需要一種新的數(shù)據(jù)加密及解密方法,從而提高存儲數(shù)據(jù)的安全性。
發(fā)明內(nèi)容
本發(fā)明的目的之一在于提供一種數(shù)據(jù)加密及解密方法、系統(tǒng)及設備,旨 在解決現(xiàn)有技術中存儲數(shù)據(jù)的安全性較低的問題。
為了實現(xiàn)發(fā)明目的,所述數(shù)據(jù)加密及解密設備包括用于接收用戶輸入的 密碼的用戶接口單元,以及對原文和密文分別進行加密和解密的加解密單元, 所述設備還包括密鑰生成單元、數(shù)據(jù)處理單元;
所述密鑰生成單元與用戶接口單元、加解密單元及數(shù)據(jù)處理單元相連并
進行數(shù)據(jù)交互,用于針對待加密的原文生成隨機數(shù),并基于所述密碼及隨機 數(shù)生成初級密鑰,以及從所述初級密鑰中提取出加密密鑰;
所述加解密單元與密鑰生成單元和數(shù)據(jù)處理單元相連并進行數(shù)據(jù)交互, 其進一步用于,在加密階段利用所述加密密鑰對原文進行加密,得到初級密
文,以及在解密階段利用所述初級密鑰對初級密文解密,得到原文;
所述數(shù)據(jù)處理單元與密鑰生成單元和加解密單元相連并進行數(shù)據(jù)交互, 用于在加密階段對初級密文與隨機數(shù)進行數(shù)據(jù)融合,得到最終密文,以及在 解密階段對最終密文進行數(shù)據(jù)分解,得到初級密文和隨機數(shù)。
優(yōu)選地,所述設備還包括數(shù)據(jù)存儲單元,其與用戶接口單元和數(shù)據(jù)處理 單元相連并進行數(shù)據(jù)交互,用于存儲原文或最終密文,供用戶接口單元提取。
為了更好地實現(xiàn)發(fā)明目的,還提供了一種數(shù)據(jù)加密及解密系統(tǒng),包括用 于接收用戶輸入的密碼的用戶接口單元,對原文或最終密文進行存儲的數(shù)據(jù) 存儲單元,以及對原文和密文分別進行加密和解密的加解密單元,所述系統(tǒng) 還包括密鑰生成單元、數(shù)據(jù)處理單元;
所述密鑰生成單元與用戶接口單元、加解密單元及數(shù)據(jù)處理單元相連并 進行數(shù)據(jù)交互,用于針對待加密的原文生成隨機數(shù),并基于所述密碼及隨機 數(shù)生成初級密鑰,以及從所述初級密鑰中提取出加密密鑰;
所述加解密單元與密鑰生成單元和數(shù)據(jù)處理單元相連并進行數(shù)據(jù)交互, 其進一步用于,在加密階段利用所述加密密鑰對原文進行加密,得到初級密 文,以及在解密階^a利用所述初級密鑰對初級密文解密,得到原文;
所述數(shù)據(jù)處理單元與密鑰生成單元和加解密單元相連并進行數(shù)據(jù)交互, 用于在加密階段對初級密文與隨機數(shù)進行數(shù)據(jù)融合,得到最終密文,以及在 解密階段對最終密文進行數(shù)據(jù)分解,得到初級密文和隨機數(shù)。
優(yōu)選地,所述密鑰生成單元包括隨機數(shù)生成模塊、密鑰計算模塊和密鑰 提取模塊;
所述隨機數(shù)生成模塊與密鑰計算模塊相連并進行數(shù)據(jù)交互,用于針對待 加密的原文生成隨4幾數(shù);
所述密鑰計算模塊與隨機數(shù)生成模塊及密鑰提取模塊相連并進行數(shù)據(jù)交 互,用于根據(jù)所述密碼和隨機數(shù)生成初級密鑰;
所述密鑰提取模塊與密鑰計算模塊相連并進行數(shù)據(jù)交互,用于從所述初 級密鑰中提取出加密密鑰。
優(yōu)選地,數(shù)據(jù)處理單元包括
數(shù)據(jù)融合模塊,用于對加密階段的初級密文與隨機數(shù)進行數(shù)據(jù)融合,得 到最終密文;
數(shù)據(jù)分解模塊,用于對解密階段的最終密文進行數(shù)據(jù)分解,得到初級密文和隨機數(shù)
優(yōu)選地,所述數(shù)據(jù)處理單元還包括
校驗處理模塊,與數(shù)據(jù)融合模塊和數(shù)據(jù)分解模塊分別相連并進行數(shù)據(jù)交 互,用于在加密階段根據(jù)隨機數(shù)生成校驗碼,并將其送入數(shù)據(jù)融合模塊,以 及在解密階段根據(jù)校驗碼對解密結果進行驗證。
為了更好地實現(xiàn)發(fā)明目的,還提供了一種數(shù)據(jù)加密方法,所述方法包括 以下步驟
A. 接收用戶輸入的密碼,并針對待加密的原文生成隨機數(shù);
B. 基于所述密碼及隨機數(shù)生成初級密鑰,并從所述初級密鑰中提取出加 密密鑰;
C. 利用加密密鑰對原文進行加密,得到初級密文;
D. 對初級密文與隨機數(shù)進行數(shù)據(jù)融合,得到最終密文。 優(yōu)選地,所述步驟A包括
All.獲取原文,并接收用戶輸入的密碼;
Al2.針對待加密的原文,通過隨機數(shù)算法生成隨機數(shù)。
優(yōu)選地,所述步驟B包括
B11 .利用散列算法,基于密碼及隨機數(shù)的結合數(shù)據(jù)生成初級密鑰; B12.提取所述初級密鑰的部分數(shù)據(jù)作為加密密鑰。 優(yōu)選地,所述步驟C包括
通過對稱加密算法,利用所述加密密鑰對原文進行加密,得到初級密文。 優(yōu)選地,所述步驟C之前還包括
采用校驗算法對原文進行校驗,獲取校驗碼,并將所述校驗碼作為前綴 與原文進行數(shù)據(jù)融合。
為了更好地實現(xiàn)發(fā)明目的,還提供了一種數(shù)據(jù)解密方法,包括以下步驟
A. 獲取待解密的最終密文和在加密階段中用戶輸入的密碼;
B. 根據(jù)所述密碼分解最終密文,得到隨機數(shù)及初級密文;
C. 基于所述密碼及隨機數(shù)生成初級密鑰;
D. 利用所述初級密鑰對初級密文解密,得到原文。
優(yōu)選地,若步驟D得到的原文包含校驗碼,則所述步驟D之后進一步包括
E. 通過所述校驗碼驗證解密結果是否正確若是則保存解密結果,即原文。 本發(fā)明在對數(shù)據(jù)進行加密及解密的過程中,與現(xiàn)有技術的區(qū)別在于,針
對每一個待加密的原文,都生成一串隨機數(shù),再基于密碼和隨機數(shù)生成初級
密鑰,并從初級密鑰中提耳又部分數(shù)據(jù)作為加密密鑰。該方法中每個原文的加
密密鑰都不同,因此避免了由于一個數(shù)據(jù)被破解導致的大面積泄密;而且由 于從初級密鑰中僅提取部分數(shù)據(jù)作為加密密鑰,因此即便能破解得到初級密鑰,也無法直接根據(jù)初級密鑰破解得到用戶輸入的密碼。由上可知,本發(fā)明 提高了所存儲數(shù)據(jù)的安全性。
圖l是現(xiàn)有技術中對數(shù)據(jù)進行加密的方法流程圖;圖2是本發(fā)明其中 一個實施例中數(shù)據(jù)加密及解密系統(tǒng)結構圖;圖3 A是圖2所示實施例中客戶端的設備結構圖;圖3B是圖2所示實施例中客戶端的另 一設備結構圖;圖4是本發(fā)明其中 一個實施例中數(shù)據(jù)加密及解密系統(tǒng)的結構圖;圖5是本發(fā)明其中 一個實施例中密鑰生成單元的結構圖;圖6是本發(fā)明其中 一個實施例中數(shù)據(jù)處理單元的結構圖;圖7是本發(fā)明其中 一個實施例中數(shù)據(jù)處理單元的結構圖;圖8是本發(fā)明其中 一個實施例中數(shù)據(jù)加密的方法流程圖;圖9是本發(fā)明其中 一個實施例中數(shù)據(jù)加密的方法流程圖;圖10是本發(fā)明其中 一個實施例中數(shù)據(jù)加密的方法流程圖;圖11是本發(fā)明其中 一 個實施例中數(shù)據(jù)解密的方法流程圖;圖12是本發(fā)明其中 一 個實施例中數(shù)據(jù)解密的方法流程圖;圖13是本發(fā)明其中 一 個實施例中數(shù)據(jù)解密的方法流程圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及 實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施 例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明在對數(shù)據(jù)進行加密的過程中,針對每一個待加密的原文,都生成 一串隨機數(shù),再基于密碼和隨機數(shù)生成初級密鑰,并從初級密鑰中提取部分 數(shù)據(jù)作為加密密鑰,然后利用加密密鑰對原文進行加密得到初級密文,最后 對初級密文與隨機數(shù)進行數(shù)據(jù)融合得到最終密文。在對數(shù)據(jù)進行解密的過程 中,首先根據(jù)用戶提供的密碼分解最終密文,得到隨機數(shù)及初級密文,然后 基于密碼及隨機數(shù)生成初級密鑰,最后利用初級密鑰對初級密文解密,得到 原文。本發(fā)明避免了數(shù)據(jù)的大面積泄密,且增加了加密強度,因此提高了所 存儲數(shù)據(jù)的安全性。圖2示出了本發(fā)明其中 一個實施例中數(shù)據(jù)加密及解密系統(tǒng)結構,該系統(tǒng)包 括客戶端100,及與其相連并進行數(shù)據(jù)交互的服務端200。應當說明的是,本 發(fā)明所有圖示中各設備之間的連接關系是為了清楚闡釋其信息交互及控制過 程的需要,因此應當視為邏輯上的連接關系,而不應僅限于物理連接。另外
需要說明的是,各功能模塊之間的通信方式可以采取多種,本發(fā)明的保護范 圍不應限定為某種特定類型的通信方式。
服務端200與客戶端100相連并進行數(shù)據(jù)交互,在本發(fā)明中該服務端200包 括網(wǎng)絡服務器201和數(shù)據(jù)庫服務器202,分別用于為用戶提供網(wǎng)頁服務,以及 存儲客戶端IOO發(fā)送的數(shù)據(jù)。客戶端IOO供用戶登錄,并根據(jù)用戶操作對數(shù)據(jù)進行加密或者解密處理, 以及與服務端200之間進行數(shù)據(jù)交互。需要說明的是,本發(fā)明中數(shù)據(jù)加密和解 密的所有操作可基于一個具有封閉式結構的設備來實現(xiàn),如圖3所示的客戶端 100。在一個最簡的實施例中,客戶端100包括用戶接口單元101、加解密單元 103、密鑰生成單元102和數(shù)據(jù)處理單元104,其中
(1) 用戶接口單元101用于接收用戶輸入的密碼,以及獲取原文或最終密文。
(2) 密鑰生成單元102與用戶接口單元101、加解密單元103及數(shù)據(jù)處理 單元104相連并進行數(shù)據(jù)交互,用于針對待加密的原文生成隨機數(shù),并基于密 碼及隨機數(shù)生成初級密鑰,以及從初級密鑰中提取出加密密鑰。關于該密鑰 生成單元102的具體內(nèi)容,將在圖5中詳細闡述。
(3 )加解密單元103與密鑰生成單元102和數(shù)據(jù)處理單元104相連并進行 數(shù)據(jù)交互,其進一步用于,在加密階段利用加密密鑰對原文進行加密,得到 初級密文,以及在解密階段利用初級密鑰對初級密文解密,得到原文。
在本發(fā)明中,加解密單元103在對萄:據(jù)進行加密和解密的過程中所使用的 算法是相同的,均為對稱加密算法,包括前面提及的DES、 IDEA 、 AES等。 在一個實施例中,使用DES算法進行加密計算的具體過程是首先通過腳本語 言(JavaScript)實現(xiàn)加密函數(shù),例如DES(key, data),其中參數(shù)data為待加密 數(shù)據(jù),key為密鑰,DES算法本身是公開的,其公式可參考現(xiàn)有技術;然后傳 入上述參數(shù)并調(diào)用加密函數(shù),返回內(nèi)容即為加密的結果。在其他實施例中, 還可采用IDEA 、 AES等對稱加密算法,這兩種算法加密強度更高,但性能較 差,考慮在腳本環(huán)境中運行加密解密算法,性能會大打折扣,故本專利中DES 算法是一種較佳選擇。應當說明的是,本發(fā)明并不限定采用對稱加密算法, 其他可行的各種算法均包含在本發(fā)明的保護范圍之內(nèi)。
(4)數(shù)據(jù)處理單元104與密鑰生成單元102和加解密單元103相連并進行 數(shù)據(jù)交互,用于在加密階段對初級密文與隨機數(shù)進行數(shù)據(jù)融合,得到最終密 文,以及在解密階段對最終密文進行數(shù)據(jù)分解,得到初級密文和隨機數(shù)。關 于該數(shù)據(jù)處理單元104的具體內(nèi)容,將在圖6和圖7中詳細闡述。
而在一個較佳實施例中,該客戶端100還包括數(shù)據(jù)存儲單元105,其與用 戶接口單元101和數(shù)據(jù)處理單元104相連并進行數(shù)據(jù)交互,用于存儲原文或最
終密文,供用戶接口單元101提取。在此情形下,如果數(shù)據(jù)存儲單元105中已
文或i終密文;若數(shù)據(jù)存儲單元io5中沒有本;也存儲數(shù)據(jù),則用二接口單kl01、 可通過接收外界設備發(fā)送的數(shù)據(jù),從而獲取原文或最終密文。
應當說明的是,本發(fā)明除可基于上述封閉式的設備(客戶端IOO)來實現(xiàn) 數(shù)據(jù)的加密及解密,也可基于一個開放式的系統(tǒng)來實現(xiàn),而其中僅部分操作 基于客戶端100完成。本發(fā)明基于此考慮,提出了圖4的實施例。
圖4示出了本發(fā)明其中一個實施例中數(shù)據(jù)加密及解密系統(tǒng)結構,包括用戶 接口單元IOI、加解密單元103、密鑰生成單元102、數(shù)據(jù)處理單元104和數(shù)據(jù) 存儲單元105,其中
(1) 用戶接口單元101用于接收用戶輸入的密碼,以及獲取原文或最終密文。
(2) 密鑰生成單元102與用戶4妄口單元101、加解密單元103及數(shù)據(jù)處理 單元104相連并進行數(shù)據(jù)交互,用于針對待加密的原文生成隨機數(shù),并基于密 碼及隨機數(shù)生成初級密鑰,以及從初級密鑰中提取出加密密鑰。關于該密鑰 生成單元102的具體內(nèi)容,將在圖5中詳細闡述。
(3) 加解密單元103與密鑰生成單元102和數(shù)據(jù)處理單元104相連并進行 數(shù)據(jù)交互,其進一步用于,在加密階段利用加密密鑰對原文進行加密,得到 初級密文,以及在解密階段利用初級密鑰對初級密文解密,得到原文。
在本發(fā)明中,加解密單元103在對數(shù)據(jù)進行加密和解密的過程中所使用的 算法是相同的,均為對稱加密算法,包括前面提及的DES、 IDEA 、 AES等。 具體內(nèi)容與前述圖2及圖3中的內(nèi)容一致,故此處不再贅述。
(4 )數(shù)據(jù)處理單元104與密鑰生成單元102和加解密單元103相連并進行 數(shù)據(jù)交互,用于在加密階段對初級密文與隨機數(shù)進行數(shù)據(jù)融合,得到最終密 文,以及在解密階段對最終密文進行數(shù)據(jù)分解,得到初級密文和隨機數(shù)。關 于該數(shù)據(jù)處理單元104的具體內(nèi)容,將在圖6和圖7中詳細闡述。
(5 )數(shù)據(jù)存儲單元105與用戶接口單元101和數(shù)據(jù)處理單元104相連并進 行數(shù)據(jù)交互,用于存儲原文或最終密文,供用戶接口單元101提取。在此情形 下,如果數(shù)據(jù)存儲單元105中已存有原文時,用戶接口單元101可根據(jù)用戶操 作從數(shù)據(jù)存儲單元105中提取原文或最終密文;若數(shù)據(jù)存儲單元105中沒有本 地存儲數(shù)據(jù),則用戶接口單元101可通過接收外界設備發(fā)送的數(shù)據(jù),從而獲取 原文或最終密文。
圖5示出了本發(fā)明其中 一個實施例中密鑰生成單元102的結構,包括隨機 數(shù)生成模塊1021、密鑰計算模塊1022和密鑰提取模塊1023。其中
(1 )隨機數(shù)生成模塊與1021密鑰計算模塊1022相連并進行數(shù)據(jù)交互,用 于針對待加密的原文生成隨機數(shù)。在本發(fā)明中,隨機數(shù)可采取多種形式,包 括整數(shù)、浮點數(shù)等。在實際應用中,該隨機數(shù)最好是整數(shù),當采用浮點數(shù)時, 在不同字長的計算機中表達結果可能會產(chǎn)生偏差。隨機數(shù)的生成可采用 一般 編程語言中的隨機數(shù)函數(shù),只要結果數(shù)據(jù)具備隨機性即可,該隨機數(shù)函數(shù)包 括多種,例如JavaScript中的Math.random()函數(shù)。
(2 )密鑰計算模塊1022與隨機數(shù)生成模塊及密鑰提取模塊相連并進行數(shù) 據(jù)交互,用于根據(jù)該密碼和隨機數(shù)生成初級密鑰。在本發(fā)明中,生成密鑰K的 算法須為不可逆的算法,而最簡單的就是采用已知的散列算法。例如,若原 文為T,用戶輸入的密碼為P,隨機數(shù)為S,則將P+S作為一個整體字符串,然 后利用散列算法針對整個字符串計算散列結果,也即初級密鑰K。由于每次加 密計算的隨機數(shù)S都不一樣,那么該散列算法計算的結果也是不一樣的,由于 該算法本身不可逆,故每次K值都不一樣,從而無法用被破解的K去破解用戶 的其他數(shù)據(jù),避免了數(shù)據(jù)的大面積泄密。而該散列算法可采用多種,例如MD5、 安全哈希算法(Secure Hash Algorithm, SHA)等。這些算法都比較類似,只 是發(fā)現(xiàn)碰撞值的難度不同,MD5相對來說運算性能更好。
在一個具體實施例中,密鑰計算模塊1022采用MD5算法生成初級密鑰。 具體過程是首先通過腳本語言(JavaScript)實現(xiàn)MD5函數(shù),例如MD5(data), 對data執(zhí)行散列運算,返回值為算列結果;然后傳入P+S的整體字符串并調(diào)用 MD5()函數(shù),返回散列值K即為初級密鑰。
(3)密鑰提取模塊1023與密鑰計算模塊1022相連并進行數(shù)據(jù)交互,用于 從所述初級密鑰中提取出加密密鑰,用于加解密單元103對數(shù)據(jù)進行加密。
在一個實施例中,若密鑰計算模塊1022生成初級密鑰K時采用的算法是 MD5算法,加解密單元103對數(shù)據(jù)進行加密時采用的算法是DES算法,由于 MD5算法得到的K的長度是16字節(jié),而DES算法需要的密鑰長度是8字節(jié),故 可取初級密鑰K的一部分作為最終密鑰。在本發(fā)明中,密鑰提取模塊1023可根 據(jù)各種不同的原則從初級密鑰中提取加密密鑰,只要保證所提取出的數(shù)據(jù)符 合后續(xù)加密算法的位數(shù)要求即可。這種采用部分散列結果作為對稱加密算法 的最終密鑰的方式,保證了散列算法不可逆,因此無法直接依據(jù)初級密鑰K破 解得到用戶輸入的密碼P,保證了加密強度。
圖6示出了本發(fā)明其中 一個實施例中數(shù)據(jù)處理單元104的結構,包括數(shù)據(jù) 融合模塊1041和數(shù)據(jù)分解模塊1042 。其中
(1 )數(shù)據(jù)融合模塊1041,用于對加密階段的初級密文與隨機數(shù)進行數(shù)據(jù) 融合,得到最終密文。例如,用戶輸入的密碼是P,得到的隨機數(shù)為S,初級
密鑰為K,提取出的加密密鑰為K,,加密后的初級密文為E,那么數(shù)據(jù)融合模 塊1041則將初級密文為E與隨機數(shù)S進行數(shù)據(jù)融合,得到最終密文R。本發(fā)明中 數(shù)據(jù)融合的方式有多種,在一個實施例中,數(shù)據(jù)融合模塊1041是將隨機數(shù)S作 為前綴與初級密文E進行融合。當然,本發(fā)明的保護范圍并不限定于此種方式。 (2)數(shù)據(jù)分解模塊1042,用于對解密階段的最終密文進行數(shù)據(jù)分解,得 到初級密文和隨機數(shù)?;谇笆鍪纠?,在解密過程中,數(shù)據(jù)分解模塊1042根 據(jù)用戶提供的密碼P分解最終密文R,得到隨機數(shù)S及初級密文E的結合數(shù)據(jù), 并進一步對隨機數(shù)S和初級密文E的結合數(shù)據(jù)進行分解,得到獨立的隨機數(shù)S 和初級密文E。
圖7示出了本發(fā)明其中 一個實施例中數(shù)據(jù)處理單元104的結構,其除了包 括數(shù)據(jù)融合模塊1041和數(shù)據(jù)分解模塊1042外,還包括校驗處理模塊1043。其 中
校驗處理模塊1043與數(shù)據(jù)融合模塊和數(shù)據(jù)分解模塊分別相連并進行數(shù)據(jù) 交互,用于在加密階段根據(jù)隨機數(shù)生成校驗碼,并將其送入數(shù)據(jù)融合模塊, 以及在解密階段根據(jù)校驗碼對解密結果進行驗證。具體包括(1 )在加密階 段,校驗處理模塊1043可采用多種算法生成校驗碼。在一個實施例中,校驗 處理模塊1043使用循環(huán)冗余校驗(Cyclic Redundancy Check, CRC )算法對原 文T進行數(shù)據(jù)處理,獲取校驗碼C,即C=CRC(T), C將在解密時用于核對解 密結果是否正確。當然,本發(fā)明并不限定于該算法,其他類似的算法也包含 在本發(fā)明的保護范圍之內(nèi)。(2)在解密階段,校驗處理模塊1043也可采用多 種算法驗證校驗碼的準確性。在一個實施例中,校驗處理模塊1043使用CRC 算法基于解碼結果中的原文T進行數(shù)據(jù)處理,獲取一個新的校驗碼C,,即 C,=CRC(T);然后將C與C,進行對比,如果〔=C,,證明解密結果是正確的, 否則就是錯誤的。對校驗碼進行驗證的目的就是,當密碼錯誤時,可以避免 輸出錯誤的亂碼。
由于本實施例相比于圖6所示實施例,在數(shù)據(jù)處理單元104中增加了一個 校驗處理模塊1043,基于原文T生成了校驗碼C,因此數(shù)據(jù)融合模塊1041在加 密階段將校驗碼C與原文T進行數(shù)據(jù)融合,并將C+T的整體數(shù)據(jù)送入加解密單 元103。在一個實施例中,數(shù)據(jù)融合模塊1041將校驗碼C作為前綴與原文T進行 數(shù)據(jù)融合。在該情形下,加解密單元103則采用對稱加密算法(例如DES、 IDEA 、 AES等),并利用加密密鑰K,對C+T的整體數(shù)據(jù)進行加密。在采用DES 算法的情形下,即E=DES (K,, C+T)。
另外,數(shù)據(jù)分解模塊1042也有所不同。在解密階段,根據(jù)初級密鑰K通過 對稱加密算法對初級密文E進行解密,得到校驗碼C與原文T的結合數(shù)據(jù),此時
數(shù)據(jù)分解才莫塊1042則對?!€碼C與原文T的結合lt據(jù)進4于分解,得到獨立的校 驗碼C和原文T,然后再將校驗碼C輸入校驗處理模塊1043進行驗證。
圖8示出了本發(fā)明其中一個實施例中數(shù)據(jù)加密的方法流程,該方法流程基 于圖2、圖3A、圖3B的系統(tǒng)結構,或者基于圖4所示的系統(tǒng)結構,具體包括以 下步驟
在步驟S801中,用戶接口單元101獲取待加密的原文,并接收用戶輸入的密碼。
在步驟S802中,密鑰生成單元102針對待加密的原文生成隨機數(shù),并進一 步基于密碼及隨機數(shù)生成初級密鑰,然后從初級密鑰中提取出加密密鑰,并 將該加密密鑰送入加解密單元103中。
在步驟S803中,加解密單元103利用加密密鑰對原文進行加密,得到初級密文。
在步驟S804中,數(shù)據(jù)處理單元104對初級密文與隨扭i數(shù)進行數(shù)據(jù)融合,得 到最終密文。之所以要將初級密文與隨機數(shù)進行數(shù)據(jù)融合,是為了順利解密 的需要。
圖9示出了本發(fā)明其中一個實施例中數(shù)據(jù)加密的方法流程,具體包括
在步驟S901中,用戶接口單元101獲取待加密的原文,并接收用戶輸入的 密碼。在本發(fā)明中,用戶接口單元101可通過多種方式獲取原文,若數(shù)據(jù)存儲 單元105中存有原文,則從該數(shù)據(jù)存儲單元105中提取即可;若數(shù)據(jù)存儲單元 105中沒有存儲原文,則需從外界其他設備導入。
在步驟S902中,密鑰生成單元102調(diào)用其隨機數(shù)生成模塊1021針對待加密 的原文生成隨機數(shù),采用的算法是隨機數(shù)算法。在本發(fā)明中,隨機數(shù)可采取 多種形式,包括整數(shù)、浮點數(shù)等。在實際應用中,該隨機數(shù)最好是整數(shù),當 采用浮點數(shù)時,在不同字長的計算機中表達結果可能會產(chǎn)生偏差。隨機數(shù)的 生成可采用一般編程語言中的隨機數(shù)函數(shù),只要結果數(shù)據(jù)具備隨機性即可, 該隨才幾數(shù)函凄t包括多種,例如JavaScript中的Math.random()函數(shù)。
在步驟S903中,密鑰生成單元102調(diào)用其密鑰計算模塊1022基于密碼及隨 機數(shù),生成初級密鑰。在本發(fā)明中,生成初級密鑰K的算法須為不可逆的算法, 而最簡單的就是采用已知的散列算法。例如,若原文為T,用戶輸入的密碼為 P,隨機數(shù)為S,則將P+S作為一個整體字符串,然后利用散列算法針對整個字 符串計算散列結果,也即初級密鑰K。由于每次加密計算的隨機數(shù)S都不一樣, 那么該散列算法計算的結果也是不一樣的,由于該算法本身不可逆,故每次K 值都不一樣,從而無法用被破解的K去破解用戶的其他數(shù)據(jù),避免了數(shù)據(jù)的大
面積泄密。而該散列算法可采用多種,例如MD5 、安全哈希算法(Secure Hash Algorithm, SHA)等。這些算法都比較類似,只是發(fā)現(xiàn)碰撞值的難度不同, MD5相對來說運算性能更好。
在一個具體實施例中,密鑰計算模塊1022采用MD5算法生成初級密鑰。 具體過程是首先通過腳本語言(JavaScript)實現(xiàn)MD5函數(shù),例如MD5(data), 對data執(zhí)行散列運算,返回值為算列結果;然后傳入P+S的整體字符串并調(diào)用 MD5()函數(shù),返回散列值K即為初級密鑰。
在步驟S904中,密鑰生成單元102調(diào)用其密鑰提取模塊1023提取初級密鑰 的部分數(shù)據(jù)作為加密密鑰。
在一個實施例中,若密鑰計算模塊1022生成初級密鑰K時采用的算法是 MD5算法,加解密單元103對數(shù)據(jù)進行加密時采用的算法是DES算法,由于 MD5算法得到的K的長度是16字節(jié),而DES算法需要的密鑰長度是8字節(jié),故 可取初級密鑰K的一部分作為最終密鑰。在本發(fā)明中,密鑰提取模塊1023可根 據(jù)各種不同的原則從初級密鑰中提取加密密鑰,只要保證所提取出的數(shù)據(jù)符 合后續(xù)加密算法的位數(shù)要求即可。這種采用部分散列結果作為對稱加密算法 的最終密鑰的方式,保證了散列算法不可逆,因此無法直接依據(jù)初級密鑰K破 解得到用戶輸入的密碼P,保證了加密強度。
在步驟S905中,加解密單元103通過對稱加密算法,利用加密密鑰對原文 進行加密得到初級密文,并將其輸入凄t據(jù)處理單元104中。在本發(fā)明中,加解 密單元103在對數(shù)據(jù)進行加密和解密的過程中所使用的算法是相同的,均為對 稱加密算法,包括前面提及的DES、 IDEA 、 AES等。在一個實施例中,使用 DES算法進行加密計算的具體過程是首先通過腳本語言(JavaScript)實現(xiàn) 加密函數(shù),例如DES(key, data),其中參數(shù)data為待加密數(shù)據(jù),key為密鑰, DES算法本身是公開的,其公式可參考現(xiàn)有技術;然后傳入上述參數(shù)并調(diào)用加 密函數(shù),返回內(nèi)容即為加密的結果。在其他實施例中,還可采用IDEA 、 AES 等對稱加密算法,這兩種算法加密強度更高,但性能較差,考慮到在腳本環(huán) 境中運行加密解密算法,性能會大打折扣,故本專利中DES算法是一種較佳選 擇。應當說明的是,本發(fā)明并不限定采用對稱加密算法,其他可行的各種算 法均包含在本發(fā)明的保護范圍之內(nèi)。
在步驟S906中,數(shù)據(jù)處理單元104接收到初級密文后,將隨機數(shù)作為前綴 與初級密文結合,生成最終密文,并將其送入數(shù)據(jù)存儲單元105。
例如,用戶輸入的密碼是P,得到的隨機數(shù)為S,初級密鑰為K,提取出的 加密密鑰為K,,加密后的初級密文為E,那么數(shù)據(jù)融合;f莫塊1041則將初級密文 為E與隨機數(shù)S進行數(shù)據(jù)融合,得到最終密文R。本發(fā)明中數(shù)據(jù)融合的方式有多 種,在一個實施例中,數(shù)據(jù)融合模塊1041是將隨機數(shù)S作為前綴與初級密文E進行融合。當然,本發(fā)明的保護范圍并不限定于此種方式。
在步驟S907中,數(shù)據(jù)存儲單元105保存加密結果,即最終密文。在本發(fā)明 中,數(shù)據(jù)存儲單元105可通過多種存儲形式來保存該最終密文,例如數(shù)據(jù)表、 文本文件等,具體可參考現(xiàn)有技術,此處不再贅述。
圖10示出了本發(fā)明其中 一個實施例中數(shù)據(jù)加密的方法流程,具體包括
在步驟S1001中,用戶接口單元101獲取待加密的原文,并接收用戶輸入 的密碼。在本發(fā)明中,用戶接口單元101可通過多種方式獲取原文,若數(shù)據(jù)存 儲單元105中存有原文,則從該數(shù)據(jù)存儲單元105中提取即可;若數(shù)據(jù)存儲單 元105中沒有存儲原文,則需從外界其他設備導入。該步驟S1001的具體實現(xiàn) 過程與前述圖9中的步驟S901—致,故此處不再贅述。
在步驟S1002中,密鑰生成單元102調(diào)用其隨機數(shù)生成模塊1021針對待加 密的原文生成隨機數(shù),采用的算法是隨機數(shù)算法。關于該隨機數(shù)及隨機數(shù)算 法,具體內(nèi)容與前述圖9中的步驟S902—致,故此處不再贅述。
在步驟S1003中,在步驟S903中,密鑰生成單元102調(diào)用其密鑰計算模塊 1022基于密碼及隨機數(shù),生成初級密鑰。在本發(fā)明中,生成初級密鑰K的算法 須為不可逆的算法,而最簡單的就是采用已知的散列算法。關于該散列算法, 具體內(nèi)容與前述圖9中的步驟S903—致,故此處不再贅述。
在步驟S1004中,密鑰生成單元102調(diào)用其密鑰提取模塊1023提取初級密 鑰的部分數(shù)據(jù)作為加密密鑰。關于提取的具體過程,與前述圖9中的步驟S904 一致,故此處不再贅述。
在步驟S1005中,數(shù)據(jù)處理單元104調(diào)用其校驗處理模塊1043,采用校驗 算法對原文進行校驗,獲取校驗碼。應當說明的是,該步驟S1005可與前述步 驟S騰2、 S賺3、 S1004同步進行,也可順序執(zhí)行。
在上述步驟S1005中,校驗處理模塊1043可采用多種算法生成校驗碼。在 一個實施例中,校驗處理模塊1043使用循環(huán)冗余校驗(Cyclic Redundancy Check, CRC)算法對原文T進行數(shù)據(jù)處理,獲取校驗碼C,即C=CRC(T), C將在解密時用于核對解密結果是否正確。當然,本發(fā)明并不限定于該算法, 其他類似的算法也包含在本發(fā)明的保護范圍之內(nèi)。
在步驟S1006中,數(shù)據(jù)處理單元104進一步調(diào)用其數(shù)據(jù)融合模塊1041將校 驗碼作為前綴與原文進行數(shù)據(jù)融合。由于本實施例相比于圖9所示實施例,基 于原文T生成了校驗碼C ,因此數(shù)據(jù)融合模塊1041在加密階段將校驗碼C與原 文T進行數(shù)據(jù)融合,并將C+T的整體數(shù)據(jù)送入加解密單元103。在一個實施例 中,數(shù)據(jù)融合模塊1041將校驗碼C作為前綴與原文T進行數(shù)據(jù)融合。
在步驟S1007中,加解密單元103通過對稱加密算法,利用加密密鑰對原
文及4交-瞼碼的結合數(shù)據(jù)進行加密,得到初級密文,并將其輸入數(shù)據(jù)處理單元
104中。
在本發(fā)明中,加解密單元103在對數(shù)據(jù)進行加密和解密的過程中所使用的 算法是相同的,均為對稱加密算法,包括前面提及的DES、 IDEA 、 AES等。 關于該對稱加密算法,具體內(nèi)容與圖9中的步驟S905—致。但是由于相比于圖 9的實施例,本實施例基于原文T生成了校驗碼C,并將兩者進行了數(shù)據(jù)融合處 理,因此在該情形下,加解密單元103利用加密密鑰K,對C+T的整體數(shù)據(jù)進行 加密。在采用DES算法的情形下,即E=DES (K,, C+T)。
在步驟S1008中,數(shù)據(jù)處理單元104接收到初級密文后,將隨機數(shù)作為前 綴與初級密文結合,生成最終密文。此步驟的具體實現(xiàn)過程與前述實施例中 的步驟S906—致,故此處不再贅述。
在步驟S1009中,數(shù)據(jù)存儲單元105保存加密結果,即最終密文。在本發(fā) 明中,數(shù)據(jù)存儲單元105可通過多種存儲形式來保存該最終密文,例如數(shù)據(jù)表、 文本文件等,具體可參考現(xiàn)有技術,此處不再贅述。
圖11示出了本發(fā)明其中 一 個實施例中數(shù)據(jù)解密的方法流程,本發(fā)明的數(shù) 據(jù)解密過程與前述的加密過程是對應的,該數(shù)據(jù)解密過程具體包括
在步驟S1101中,用戶接口單元101獲取待解密的最終密文,以及在加密 階段中用戶輸入的密碼。
在步驟S1102中,數(shù)據(jù)處理單元104根據(jù)用戶提供的密碼分解最終密文, 得到隨機數(shù)及初級密文。
在步驟S1103中,密鑰生成單元102基于密碼及隨機數(shù)生成初級密鑰。
在步驟S1104中,加解密單元103利用初級密鑰對初級密文解密,得到原文。
圖12示出了本發(fā)明其中 一 個實施例中數(shù)據(jù)解密的方法流程,具體包括
在步驟S1201中,用戶接口單元101獲取待解密的最終密文和在加密階段 中用戶輸入的密碼。在本發(fā)明中,用戶接口單元101可通過多種方式獲取最終 密文,若數(shù)據(jù)存儲單元105中存有最終密文,則從該數(shù)據(jù)存儲單元105中提取 即可;若數(shù)據(jù)存儲單元105中沒有存儲最終密文,則需從外界其他設備導入。 在本實施例中,獲得的最終密文為R,用戶輸入的密碼為P。
在步驟S1202中,數(shù)據(jù)處理單元104分解最終密文,得到隨機數(shù)及初級密 文的結合數(shù)據(jù)。在本實施例中,數(shù)據(jù)處理單元104調(diào)用其數(shù)據(jù)分解模塊1042根 據(jù)用戶提供的密碼P分解最終密文R,得到隨機數(shù)S及初級密文E的結合數(shù)據(jù)。
在步驟S1203中,數(shù)據(jù)處理單元104進一步對隨機數(shù)和初級密文的結合數(shù)據(jù)進4亍分解,得到獨立的隨積4t和初級密文。在本實施例中,H據(jù)分解才莫塊
1042進一 步對隨機數(shù)S和初級密文E的結合數(shù)據(jù)進行分解,得到獨立的隨機數(shù)S 和初級密文E。具體的分解過程可參考現(xiàn)有技術。
在步驟S1204中,密鑰生成單元102基于密碼及隨機數(shù),生成初級密鑰。 在本發(fā)明中,生成初級密鑰K的算法須為不可逆的算法,而最簡單的就是采用 已知的散列算法。例如,若用戶輸入的密碼為P,隨機數(shù)為S,則將P+S作為一 個整體字符串,然后利用散列算法針對整個字符串計算散列結果,也即初級 密鑰K。由于每次加密計算的隨機數(shù)S都不一樣,那么該散列算法計算的結果 也是不一樣的,由于該算法本身不可逆,故每次K值都不一樣,從而無法用被 破解的K去破解用戶的其他數(shù)據(jù),避免了數(shù)據(jù)的大面積泄密。而該散列算法可 采用多種,例如MD5、安全哈希算法(Secure Hash Algorithm, SHA)等。這 些算法都比較類似,只是發(fā)現(xiàn)碰撞值的難度不同,MD5相對來說運算性能更 好。
在一個具體實施例中,密鑰生成單元102調(diào)用密鑰計算模塊1022,采用 MD5算法生成初級密鑰。具體過程是首先通過腳本語言(JavaScript)實現(xiàn) MD5函數(shù),例如MD5(data),對data執(zhí)行散列運算,返回值為算列結果;然后 傳入P+S的整體字符串并調(diào)用MD5()函數(shù),返回散列值K即為初級密鑰。
在步驟S1205中,加解密單元103根據(jù)初級密鑰,通過對稱加密算法對初 級密文進行解密,得到原文,并將其送入數(shù)據(jù)存儲單元105。此處解密時使用 的對稱加密算法,與前述圖8、圖9、圖10中加密時使用的對稱加密算法是一 致的,包括DES、 IDEA 、 AES等,此處不再贅述。在本實施例中,加解密單 元103根據(jù)初級密鑰K,通過上述對稱加密算法對初級密文E進行解密,得到原 文T。若采用的是DES算法,則為T=DES (K, E)。
在步驟S1206中,數(shù)據(jù)存儲單元105保存解密結果,即原文。
圖13示出了本發(fā)明其中 一個實施例中數(shù)據(jù)解密的方法流程,具體包括
在步驟S1301中,用戶接口單元101獲取待解密的最終密文和在加密階段 中用戶輸入的密碼。在本實施例中,獲得的最終密文為R,用戶輸入的密碼為 P。此步驟的具體內(nèi)容與前述圖12的步驟S1201—致,此處不再贅述。
在步驟S1302中,數(shù)據(jù)處理單元104分解最終密文,得到隨機數(shù)及初級密 文的結合數(shù)據(jù)。在本實施例中,數(shù)據(jù)分解模塊1042根據(jù)用戶提供的密碼P分解 最終密文R,得到隨機數(shù)S及初級密文E的結合數(shù)據(jù)。此步驟的具體內(nèi)容與前述 圖12的步驟S1202—致,此處不再贅述。
在步驟S1303中,數(shù)據(jù)處理單元104進一步對隨機數(shù)和初級密文的結合數(shù) 據(jù)進行分解,得到獨立的隨機數(shù)和初級密文。在本實施例中,數(shù)據(jù)分解模塊
1042進一步對隨機數(shù)S和初級密文E的結合數(shù)據(jù)進行分解,得到獨立的隨機數(shù)S 和初級密文E。具體的分解過程可參考現(xiàn)有技術。此步驟的具體內(nèi)容與前述圖 12的步驟S1203—致,此處不再贅述。
在步驟S1304中,密鑰生成單元102基于密碼及隨機數(shù),生成初級密鑰。 在本發(fā)明中,生成初級密鑰K的算法須為不可逆的算法,而最簡單的就是采用 已知的散列算法。此步驟的具體內(nèi)容與前述圖12的步驟S1203—致,此處不再 贅述。
在步驟S1305中,加解密單元103才艮據(jù)初級密鑰,通過對稱加密算法對初 級密文進行解密,然后將解密結果送入數(shù)據(jù)處理單元104。此處解密時使用的 對稱加密算法,與前述圖8、圖9、圖10中加密時使用的對稱加密算法是一致 的,包括DES、 IDEA 、 AES等,此處不再贅述。
在步驟S1306中,數(shù)據(jù)處理單元104接收到解密結果后,對該解密結果進 行分析,判斷其是否為校驗碼與原文的結合數(shù)據(jù)若是,則執(zhí)行步驟S1307; 若否,則執(zhí)行步驟S1309。
在步驟S1307中,數(shù)據(jù)處理單元104調(diào)用其數(shù)據(jù)分解模塊1042,對校驗碼 與原文的結合數(shù)據(jù)進行分解,得到獨立的校驗碼和原文。在本實施例中,若 解密結果是校驗碼與原文的結合數(shù)據(jù),數(shù)據(jù)分解模塊1042則對校驗碼C與原文 T的結合數(shù)據(jù)進行分解,得到獨立的校驗碼C和原文T,然后再將校驗碼C輸入 校驗處理模塊1043。
在步驟S1308中,校驗處理模塊1043通過對校驗碼進行驗證,判斷前述步 驟的解碼結果是否正確若正確,則執(zhí)行步驟S1309;若不正確,則結束。
在解密階段,校驗處理模塊1043也可采用多種算法驗證校驗碼的準確性。 在一個實施例中,校驗處理模塊1043使用CRC算法基于解碼結果中的原文T進 行數(shù)據(jù)處理,獲取一個新的校驗碼C,,即C,=CRC(T);然后將C與C,進行對 比,如果C二C,,證明解密結果是正確的,否則就是錯誤的。對校驗碼進行驗 證的目的就是,當密碼錯誤時,可以避免輸出錯誤的亂碼。
在步驟S1309中,數(shù)據(jù)存儲單元105保存解密結果,即原文T。
綜上所述,本發(fā)明提供的加密及解密方法中,每個原文的加密密鑰都不 同,因此避免了由于一個數(shù)據(jù)被破解導致的大面積泄密;而且由于從初級密 鑰中僅提取部分數(shù)據(jù)作為加密密鑰,因此即便能破解得到初級密鑰,也無法 直接根據(jù)初級密鑰破解得到用戶輸入的密碼。由上可知,本發(fā)明提高了所存 儲數(shù)據(jù)的安全性。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本 發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本 發(fā)明的保護范圍之內(nèi)。
權利要求
1、一種數(shù)據(jù)加密及解密設備,包括用于接收用戶輸入的密碼的用戶接口單元,對原文進行加密和對密文進行解密的加解密單元,其特征在于,所述設備還包括密鑰生成單元,與用戶接口單元、加解密單元及數(shù)據(jù)處理單元分別相連并進行數(shù)據(jù)交互,用于針對待加密的原文生成隨機數(shù),并基于所述隨機數(shù)及用戶輸入的密碼生成初級密鑰,以及從所述初級密鑰中提取出加密密鑰;數(shù)據(jù)處理單元,與密鑰生成單元和加解密單元相連并進行數(shù)據(jù)交互,用于在加密階段接收加解密單元對原文進行加密得到的初級密文,并對初級密文與隨機數(shù)進行數(shù)據(jù)融合,得到最終密文,以及在解密階段對最終密文進行數(shù)據(jù)分解,得到初級密文和隨機數(shù),并將初級密文輸入加解密單元從而對初級密文解密得到原文。
2、 根據(jù)權利要求l所述的數(shù)據(jù)加密及解密設備,其特征在于,所述設備 還包括數(shù)據(jù)存儲單元,其與用戶接口單元和數(shù)據(jù)處理單元分別相連并進行數(shù) 據(jù)交互,用于存儲所述原文或最終密文,供用戶接口單元提取。
3、 一種數(shù)據(jù)加密及解密系統(tǒng),包括用于接收用戶輸入的密碼的用戶接口 單元,對數(shù)據(jù)進行存儲的數(shù)據(jù)存儲單元,以及對原文進行加密和對密文進行 解密的加解密單元,其特征在于,所述系統(tǒng)還包括密鑰生成單元,與用戶接口單元、加解密單元及數(shù)據(jù)處理單元分別相連 并進行數(shù)據(jù)交互,用于針對待加密的原文生成隨機數(shù),并基于所述隨機數(shù)及 用戶輸入的密碼生成初級密鑰,以及從所述初級密鑰中提取出加密密鑰;.數(shù)據(jù)處理單元,與密鑰生成單元、加解密單元及數(shù)據(jù)存儲單元分別相連 并進行數(shù)據(jù)交互,用于在加密階段接收加解密單元對原文進行加密得到的初 級密文,并對初級密文與隨機數(shù)進行數(shù)據(jù)融合,得到最終密文,以及在解密 階段對最終密文進行數(shù)據(jù)分解,得到初級密文和隨機數(shù),并將初級密文輸入 加解密單元從而對初級密文解密得到原文。
4、 根據(jù)權利要求3所述的數(shù)據(jù)加密及解密系統(tǒng),其特征在于,所述密鑰 生成單元包括隨機數(shù)生成模塊、密鑰計算模塊和密鑰提取模塊;所述隨機數(shù)生成模塊與密鑰計算模塊相連并進行數(shù)據(jù)交互,用于針對待 加密的原文生成隨機數(shù);所述密鑰計算模塊與隨機數(shù)生成模塊及密鑰提取模塊相連并進行數(shù)據(jù)交 互,用于根據(jù)所述密碼和隨機數(shù)生成初級密鑰; 所述密鑰提取才莫塊與密鑰計算模塊相連并進行數(shù)據(jù)交互,用于從所述初 級密鑰中提取出加密密鑰。
5、 根據(jù)權利要求3或4所述的數(shù)據(jù)加密及解密系統(tǒng),其特征在于,數(shù)據(jù)處 理單元包括數(shù)據(jù)融合模塊,用于對加密階段的初級密文與隨機數(shù)進行數(shù)據(jù)融合,得 到最終密文;數(shù)據(jù)分解模塊,用于對解密階段的最終密文進行數(shù)據(jù)分解,得到初級密 文和隨纟幾凄t。
6、 根據(jù)權利要求5所述的數(shù)據(jù)加密及解密系統(tǒng),其特征在于,所述數(shù)據(jù) 處理單元還包括校驗處理模塊,與數(shù)據(jù)融合模塊和數(shù)據(jù)分解模塊分別相連并進行數(shù)據(jù)交 互,用于在加密階段根據(jù)隨機數(shù)生成校驗碼,并將其送入數(shù)據(jù)融合模塊,以 及在解密階段根據(jù)校驗碼對解密結果進行驗證。
7、 一種數(shù)據(jù)加密方法,其特征在于,所述方法包括以下步驟A. 獲取待加密的原文,并接收用戶輸入的密碼;B. 針對所述原文生成隨機數(shù),并基于所述密碼及隨機數(shù)生成初級密鑰, 以及從所述初級密鑰中提取出加密密鑰;C. 利用加密密鑰對原文進行加密,得到初級密文;D. 對初級密文與隨機數(shù)進行數(shù)據(jù)融合,得到最終密文。
8、 根據(jù)權利要求7所述的數(shù)據(jù)加密方法,其特征在于,所述步驟B包括 B11 .針對所述待加密的原文,通過隨機數(shù)算法生成隨機數(shù);B12.利用散列算法,基于密碼及隨機數(shù)的結合數(shù)據(jù)生成初級密鑰; B13.提取所述初級密鑰的部分數(shù)據(jù)作為加密密鑰。
9、 根據(jù)權利要求7或8所述的數(shù)據(jù)加密方法,其特征在于,所述步驟C包括通過對稱加密算法,利用所述加密密鑰對原文進行加密,得到初級密文。
10、 根據(jù)權利要求9所述的數(shù)據(jù)加密方法,其特征在于,所述步驟C之前 還包括采用校驗算法對原文進行校驗,獲取校驗碼,并將所述校驗碼作為前綴與原文進行數(shù)據(jù)融合。
11、 一種數(shù)據(jù)解密方法,其特征在于,所述方法包括以下步驟:A. 獲取待解密的最終密文和在加密階4殳中用戶輸入的密碼;B. 根據(jù)所述密碼分解最終密文,得到隨機數(shù)及初級密文;C. 基于所述密碼及隨機數(shù)生成初級密鑰;D. 利用所述初級密鑰對初級密文解密,得到原文。
12、根據(jù)權利要求ll所述的數(shù)據(jù)解密方法,其特征在于,若步驟D得到的 原文包含校驗碼,則所述步驟D之后進一步包括以下步驟E.通過所述校驗碼驗證解密結果是否正確若是則保存解密結果,即原文。
全文摘要
本發(fā)明涉及信息安全領域,提供了一種數(shù)據(jù)加密及解密方法、系統(tǒng)及設備。所述數(shù)據(jù)加密方法包括以下步驟A.獲取待加密的原文,并接收用戶輸入的密碼;B.針對所述原文生成隨機數(shù),并基于所述密碼及隨機數(shù)生成初級密鑰,以及從所述初級密鑰中提取出加密密鑰;C.利用加密密鑰對原文進行加密,得到初級密文;D.對初級密文與隨機數(shù)進行數(shù)據(jù)融合,得到最終密文。此外,本發(fā)明還提供了一種數(shù)據(jù)加密及解密系統(tǒng)、一種數(shù)據(jù)加密及解密設備和一種數(shù)據(jù)解密方法,從而提高了存儲數(shù)據(jù)的安全性。
文檔編號H04L9/14GK101340279SQ20081013280
公開日2009年1月7日 申請日期2008年7月9日 優(yōu)先權日2008年7月9日
發(fā)明者雷中南 申請人:深圳市金蝶移動互聯(lián)技術有限公司