一種基于時間期限控制的數據文件加解密方法
【專利摘要】本發明公開了一種基于時間期限控制的文件加解密方法,通過對數據文件進行散列轉換,對存儲層密鑰、數據文件到期時間、數據文件銷毀策略進行散列轉換,實現了雙重散列轉換,保證數據文件的防篡改性,加強數據文件的安全。在加密解密過程中,引入數據文件時間期限的控制機制,實現對加密數據文件的使用時間的控制,避免具有加密數據文件瀏覽權限的人員永遠擁有此數據文件的權利。檢測到數據文件使用時間已到期,自動調用銷毀策略將數據文件銷毀。銷毀過程中無需用戶介入,減少因人為原因造成的漏刪、誤刪等風險,可靠性高,使用方便。
【專利說明】一種基于時間期限控制的數據文件加解密方法
【技術領域】
[0001]本發明提供一種基于時間期限控制的數據文件加解密方法,屬于信息安全中的數據加密技術。
【背景技術】
[0002]隨著互聯網時代的來臨,企業全面信息化時代也隨之到來,人們越來越多地借助以計算機、互聯網等先進技術,將企業的經營及管理流程在線實現,所有業務數據經由系統處理,快速形成管理層所需商業智能,以KPI (關鍵績效指標)、圖表以及可追溯的報表形式呈現,以及各類技術方案的交流也是以文檔的方式進行。這些圖表、報表、文檔等都是以數據文件的形式存儲在計算機或各類相關存儲設備中。因此這些數據文件就成為企業信息的主要存儲方式及企業內、外部之間進行信息交換的重要載體。
[0003]對于一個企業來說,一般都積累了很多重要的數據文件,比如說財務報表、技術檔案、公司內部文件等,公司不希望這些數據文件離開企業的網絡環境,甚至不允許在企業網絡內部傳遞與交流。但是作為今天的企業,不能拒絕互聯網的交互,不能將公司封閉在一個信息孤島中。許多企業,例如:會計事務所、學校、政府、金融機構、高科技研究所等企事業單位,必需通過使用網絡來協同工作,進行現代化辦公。但使用者在這樣的環境下,在隨意上傳下載和發行網絡中的數據文件的同時,可能會無意中把企業的許多包含重要信息的數據文件擴散到網絡外部,從而導致企業重要的知識產權受到嚴重侵害。知識產權的保護僅僅依靠法律和行政手段是不夠的,使用必要的技術手段對文檔進行加密,實現安全管理,從技術上杜絕機密信息的泄漏,才是解決問題的根本辦法,才能防患于未然。
[0004]因此如何保護數據文件的安全問題,作為信息安全領域的一個重要內容,越來越受到重視。
[0005]對于企業中重要數據文件的保護,安全廠商提供了整套的安全解決方案,數據文件加密就是其中很重要的一個環節。
[0006]對于數據文件加密,目前主要存在2種加密體制:對稱加密、非對稱加密。
[0007]對稱加密指加密和解密使用相同密鑰的加密算法。在大多數的對稱算法中,加密密鑰和解密密鑰是相同的。它要求發送方和接收方在安全通信前,商定一個密鑰。對稱算法的安全性依賴于密鑰,泄漏密鑰就意味著任何人都可以對他們發送或接收的數據文件解密,所以密鑰的保密性對通信性至關重要。對稱加密算法的特點是算法公開、計算量小、力口密速度快、加密效率高,并且可以對不定長度的數據文件加密。其不足之處是,收發雙方都使用同樣密鑰,安全性得不到保證。
[0008]非對稱加密算法需要兩個密鑰:公開密鑰和私有密鑰。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密后再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密后的信息進行解密。
[0009]非對稱密碼體制的特點:算法強度復雜,非對稱密鑰體制有兩種密鑰,安全性提高,由于其算法復雜,而使得加密解密速度沒有對稱加密解密的速度快,加密大文件時效率低。
[0010]對于互聯網時代,云計算的應用范圍越來越廣泛,數據文件類型具有多樣性的特點,而且數據文件也越來越大,在這種情況下,完全使用對稱加密存在著安全性不高的隱患,而完全采用非對稱加密又導致加密效率不高。
[0011]針對這種情況,目前有研究提出用對稱加密算法加密數據文件,然后用非對稱加密算法加密對稱密鑰的混合加密方法。例如,在專利“一種基于文件屬性的密鑰加密方法”(申請號:201210090277.9)中,其提出的方法是:根據用戶文件生成屬性集合、訪問結構樹、主密鑰和公鑰,隨機生成對稱密鑰,使用對稱密鑰和對稱加密算法加密用戶文件,以得到數據密文,使用公鑰和訪問結構樹加密對稱密鑰,以生成密鑰密文,使用主密鑰和屬性集合生成與屬性集合相關聯的私鑰,將密鑰密文和數據密文發送給服務器存儲,用戶從服務器獲取密鑰密文和數據密文,用戶用私鑰解密密鑰密文,以判斷與私鑰相關聯的屬性集合是否滿足訪問結構樹,若滿足則解密對稱密鑰,用戶使用對稱密鑰解密數據密文,以得到明文數據。本發明通過對稱加密算法加密數據,并基于屬性加密來保護對稱密鑰的安全,實現了加密數據的高效安全訪問。
[0012]在實際應用中,一旦將數據文件分發出去后,接受方往往永遠擁有此文檔的所有權,隨時可以使用這些數據文件,發送方無法對數據文件使用時間加以控制,這種情況非常不利于加密數據文件的安全,因此,控制數據文件的使用時間是文檔安全管理重要的一部分,很有必要實現數據文件時間到期后的失效,例如員工離職后,文件使用到期,即使擁有此文件也不能用,或者是與合作伙伴協同工作完成后,合作伙伴無法將原有的數據文件用于其他項目。上述專利提出的方法中沒有解決加密數據文件的時間期限控制問題,以及加密數據文件到期后的銷毀問題,這樣過期的數據文件會在存儲介質中永久保存,對用戶數據的安全存在著較大的隱患。
【發明內容】
[0013]針對上述的數據文件安全隱患,本發明提出了一種基于時間期限控制的文件加解密方法,用以解決加密數據文件的時間期限控制及過期銷毀問題,進一步提高了加密數據文件的安全性。
[0014]本發明技術方案如下:一種基于時間期限控制的數據文件加解密方法,包括:
[0015]數據文件加密方法,其加密流程步驟為:
[0016](I)讀取需要加密數據文件,采用Hash函數將其進行散列轉換,得到數據文件哈希值。
[0017](2)此數據文件與其對應的哈希值合并成存儲層數據。
[0018](3)通過偽隨機數產生函數,隨機產生一個字節數組,把該字節數組作為存儲層密鑰,使用對稱加密算法加密存儲層數據。
[0019](4)產生一個時間類型變量,用來保存用戶設置的該數據文件使用的到期時間。
[0020](5)產生一個字符串類型變量,用來保存文件銷毀標志,稱為數據文件銷毀策略。根據數據文件安全程度的高低,對于數據文件分為三種銷毀方式:一次隨機序列覆蓋、三次覆蓋和七次隨機序列覆蓋。
[0021](6)利用Hash函數對存儲層密鑰、數據文件到期時間、數據文件銷毀策略進行散列轉換,得到控制參數哈希值。
[0022](7)將存儲層密鑰、數據文件到期時間、數據文件銷毀策略與控制參數哈希值合并,形成控制層數據。
[0023](8)根據用戶提供的私鑰,使用非對稱加密算法加密控制層數據。
[0024](9)加密后的存儲層數據和控制層數據合并后,形成持久層數據。
[0025](10)將持久層數據寫入文件系統,數據文件加密完成。
[0026]數據文件解密方法,其解密流程步驟為:
[0027](I)讀取需解密的數據文件,即為持久層數據。
[0028](2)從持久層數據中獲取加密控制層數據和加密存儲層數據。
[0029](3)通過用戶提供的公鑰,使用非對稱加密算法解密控制層數據。
[0030](4)對于控制層數據中的存儲層密鑰、數據文件到期時間、數據文件銷毀策略,利用Hash函數對其進行散列轉換,得到校驗控制參數哈希值。
[0031 ] (5)比較校驗控制參數哈希值和控制層數據中的控制參數哈希值,若兩者不同,表明控制層數據可能被篡改,終止整個的數據文件解密過程;若兩者相同,表明控制層數據正常,沒有被篡改,繼續進行后面的處理。
[0032](6)判斷控制層數據中的數據文件到期時間是否大于當前時間。若不大于,說明該數據文件使用時間已到期,根據數據文件銷毀策略,調用相應的方式將該數據文件銷毀;若大于,說明該數據文件還可以使用。
[0033]其中,根據數據文件安全程度的高低,對于數據文件分為三種銷毀方式:一次隨機序列覆蓋、二次覆蓋和七次隨機序列覆蓋。
[0034]( 7 )通過控制層數據中的存儲層密鑰,使用對稱加密算法解密存儲層數據,獲取數據文件和數據文件哈希值。
[0035](8)采用Hash函數對存儲層數據中的數據文件進行散列轉換,得到數據文件的校驗哈希值。
[0036](9)對存儲層數據中的數據文件哈希值和數據文件的校驗哈希值進行比較,若比較結果不同,表明數據文件可能被篡改,終止整個的數據文件解密過程;若比較結果不同,則正常返回最后數據文件,文件解密步驟完成。
[0037]和現有的技術相比,本發明具有以下的有點和技術效果:
[0038](I)不僅對數據文件進行散列轉換,而且對存儲層密鑰、數據文件到期時間、數據文件銷毀策略進行散列轉換,實現了雙重散列轉換,進一步保證了數據文件的防篡改性,力口強了數據文件的安全。
[0039](2)在加密解密過程中,引入數據文件時間期限的控制機制,實現了對加密數據文件的使用時間的控制,避免了具有加密數據文件瀏覽權限的人員永遠擁有此數據文件的權利。
[0040](3)檢測到數據文件使用時間已到期,自動調用銷毀策略將數據文件銷毀,根據數據文件安全程度的高低,對于數據文件分為三種銷毀方式:一次隨機序列覆蓋、三次覆蓋和七次隨機序列覆蓋,降低了用戶殘留文件數據泄漏的風險。
[0041](4)銷毀過程中無需用戶介入,減少因人為原因造成的漏刪、誤刪等風險,可靠性高,使用方便。
【專利附圖】
【附圖說明】
[0042]圖1本發明實施例加密工作流程圖。
[0043]圖2本發明實施例解密工作流程圖。
【具體實施方式】
[0044]為使本發明的實施例的目的、技術方案和優點更加清楚,下面對本發明實施例中涉及的一些術語做簡單解釋。
[0045]Hash函數:就是把任意長度的輸入,通過散列算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠小于輸入的空間,簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數。
[0046]哈希值:哈希算法將任意長度的二進制值映射為固定長度的較小二進制值,這個小的二進制值稱為哈希值。哈希值是一段數據唯一且極其緊湊的數值表示形式。如果散列一段明文而且哪怕只更改該段落的一個字母,隨后的哈希都將產生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上是不可能的。
[0047]消息摘要算法第五版(Message-Digest Algorithm5):用于確保信息傳輸完整一致。是計算機廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法)。
[0048]Rijndael算法:在高級加密標準(AES)中使用的基本密碼算法。它可以使用128位,192位或者256位的密鑰長度,使得它比56位的DES更健壯可靠。
[0049]RSA算法:目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰數據加密標準。RSA算法基于一個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。
[0050]如圖1所示,本發明實施例加密工作流程,具體包括以下步驟:
[0051]步驟101:讀取需要加密的數據文件。
[0052]步驟102:通過Hash函數對數據文件進行散列轉換,得到數據文件的哈希值。使用消息摘要算法第五版(Message-Digest Algorithm5)對數據文件進行散列轉換。
[0053]步驟103:形成存儲層數據。將得到的數據文件哈希值與數據文件合并,形成存儲層數據。
[0054]步驟104:利用對稱算法加密存儲層數據。調用偽隨機數產生函數,產生一個長度為32的隨機數組,數組中每個元素為O到255之間的整數,在其值域上的概率分布為均勻分布。將該隨機數組作為存儲層密鑰,使用Rijndael算法對存儲層數據進行加密。
[0055]步驟105:設置文件使用到期時間和文件銷毀策略。由用戶設置數據文件使用到期時間和銷毀策略,其中數據文件到期時間為Datetime類型且不得小于當前時間;銷毀策略標識為字符串類型,有效值為“Single-pass”,“DoD”和“NSA”,分別代表一次隨機序列覆蓋、二次覆蓋和七次隨機序列覆蓋。[0056]其中,Single-pass表示使用一個隨機字節覆寫文件數據所在每一地址。
[0057]DoD表示依次使用0x00、0xFF、一個隨機字節,分三次覆寫文件數據所在每一地址。
[0058]NSA表示依次使用0x00、0xFF、0x00、0xFF、一個隨機字節、一個隨機字節、一個隨機字節,分七次覆寫文件數據所在每一地址。
[0059]步驟106:通過Hash函數對數據文件到期時間、數據文件銷毀策略、存儲層密鑰進行散列轉換,得到控制參數哈希值。使用消息摘要算法第五版對數據文件使用到期時間、文件銷毀策略和存儲層密鑰進行散列轉換。
[0060]步驟107:形成控制層數據。將得到的控制參數哈希值、數據文件到期時間和存儲層密鑰合并為控制層數據。
[0061]步驟108:利用非對稱加密算法加密控制層數據。根據用戶提供的2048位私鑰,程序使用RSA算法,根據該私鑰對控制層數據進行加密。
[0062]步驟109:合并加密存儲層數據和加密控制層數據,形成持久層數據。
[0063]步驟110:將持久層數據寫入文件系統中,生成對應的加密文件。
[0064]如圖2所示,本發明實施例解密工作流程,具體包括以下步驟:
[0065]步驟201:讀取需解密的數據文件。
[0066]步驟202:從數據文件中獲取加密控制層數據和加密存儲層數據。
[0067]步驟203:通過用戶提供的公鑰,對加密控制層數據進行解密。用戶提供解密所需的2048位公鑰,據該公鑰使用RSA算法根對控制層數據進行解密。
[0068]步驟204:對控制層數據中的存儲層密鑰、數據文件到期時間、數據文件銷毀策略進行散列轉換,得到校驗參數哈希值。使用消息摘要算法第五版對控制層數據中的存儲層密鑰、數據文件到期時間、數據文件銷毀策略進行散列轉換。
[0069]步驟205:比較由步驟106得到的控制參數哈希值和校驗參數哈希值。如果兩者相同,轉到步驟206,如果兩者不同,表明控制層數據可能被篡改,終止整個的數據文件解密過程,轉到步驟212。
[0070]步驟206:數據文件到期時間與當前時間進行比較。如果數據文件到期時間大于當前時間,轉到步驟207。如果數據文件到期時間小于當前時間,表示數據文件已經過期,轉到步驟208。
[0071]步驟207:通過控制層中的存儲層密鑰解密存儲層數據,轉到步驟209。
[0072]步驟208:銷毀數據文件,轉到步驟212。根據銷毀策略判斷使用一次、三次或七次隨機序列對數據文件進行覆蓋式銷毀,解密工作流程終止。
[0073]其中,銷毀策略標識為字符串類型,有效值為“Single-pass”,“DoD”和“NSA”,分別代表一次隨機序列覆蓋、三次覆蓋和七次隨機序列覆蓋。
[0074]Single-pass表示使用一個隨機字節,覆寫文件數據所在每一地址。
[0075]DoD表示依次使用0x00、0xFF、一個隨機字節,分三次覆寫文件數據所在每一地址。
[0076]NSA表示依次使用0x00、0xFF、0x00、0xFF、一個隨機字節、一個隨機字節、一個隨機字節,分七次覆寫文件數據所在每一地址。
[0077]步驟209:通過Hash函數對解密后存儲層中的數據文件進行散列轉換,得到數據文件的校驗哈希值。使用消息摘要算法第五版對解密后存儲層中的數據文件進行散列轉換。
[0078]步驟210:比較由步驟102得到的數據文件哈希值與數據文件的校驗哈希值。如果兩者相同,轉到步驟211。如果兩者不同,表明該數據文件可能被篡改,轉到步驟212。
[0079]步驟211:正常返回最后的數據文件。
[0080]步驟212:結束。
[0081]本領域技術人員可以對本發明的實施例進行各種改動和變型而不會脫離本發明的精神和范圍。倘若本發明實施例中的這些修改和變型屬于本發明權利要求及其等同的范圍之內,則本發明中的實施例也包含這些改動和變型在內。
【權利要求】
1.一種基于時間期限控制的數據文件加密方法,其特征在于,通過對數據文件進行散列轉換,而且對存儲層密鑰、數據文件到期時間、數據文件銷毀策略進行散列轉換,實現雙重散列轉換;使用對稱加密算法加密存儲層數據,使用非對稱加密算法加密控制層數據。
2.根據權利要求1所述的數據文件加密方法,其特征在于,具體實現步驟為: 步驟一、讀取需要加密數據文件,采用Hash函數將其進行散列轉換,得到數據文件哈希值; 步驟二、此數據文件與其對應的哈希值合并成存儲層數據; 步驟三、通過偽隨機數產生函數,隨機產生一個字節數組,把該字節數組作為存儲層密鑰,使用對稱加密算法加密存儲層數據; 步驟四、產生一個時間類型變量,用來保存用戶設置的該數據文件使用的到期時間;步驟五、產生一個字符串類型變量,用來保存文件銷毀標志,稱為數據文件銷毀策略;步驟六、利用Hash函數對存儲層密鑰、數據文件到期時間、數據文件銷毀策略進行散列轉換,得到控制參數哈希值; 步驟七、將存儲層密鑰、數據文件到期時間、數據文件銷毀策略與控制參數哈希值合并,形成控制層數據; 步驟八、根據用戶提供的私鑰,使用非對稱加密算法加密控制層數據; 步驟九、加密后的存儲層數據和控制層數據合并后,形成持久層數據; 步驟十、將持久層數據寫入文件系統,數據文件加密完成。
3.根據權利要求2所述的數據文件加密方法,其特征在于:在步驟一中,使用消息摘要算法第五版(Message-Digest Algorithm5)對數據文件進行散列轉換。
4.根據權利要求2所述的數據文件加密方法,其特征在于:在步驟三中,調用偽隨機數產生函數,產生一個長度為32的隨機數組,數組中每個元素為O到255之間的整數,在其值域上的概率分布為均勻分布;將該隨機數組作為存儲層密鑰,使用Rijndael算法對存儲層數據進行加密。
5.根據權利要求2所述的數據文件加密方法,其特征在于:在步驟五中,根據數據文件安全程度的高低,對于數據文件分為三種銷毀方式:一次隨機序列覆蓋、三次覆蓋和七次隨機序列覆蓋。
6.根據權利要求5所述的數據文件加密方法,其特征在于:由用戶設置數據文件使用到期時間和銷毀策略,其中數據文件到期時間為Datetime類型且不得小于當前時間;銷毀策略標識為字符串類型,有效值為“Single-pass”,“DoD”和“NSA”,分別代表一次隨機序列覆蓋、二次覆蓋和七次隨機序列覆蓋。
7.一種基于時間期限控制的數據文件解密方法,其特征在于,在加密過程中,引入數據文件時間期限的控制機制,實現對加密數據文件的使用時間的控制;使用非對稱加密算法解密控制層數據,使用對稱加密算法解密存儲層數據;檢測到數據文件使用時間已到期,自動調用銷毀策略將數據文件銷毀。
8.根據權利要求7所述的數據文件解密方法,其特征在于,具體實現步驟為: 步驟一、讀取需解密的數據文件,即為持久層數據; 步驟二、從持久層數據中獲取加密控制層數據和加密存儲層數據; 步驟三、通過用戶提供的公鑰,使用非對稱加密算法解密控制層數據;步驟四、對于控制層數據中的存儲層密鑰、數據文件到期時間、數據文件銷毀策略,利用Hash函數對其進行散列轉換,得到校驗控制參數哈希值; 步驟五、比較校驗控制參數哈希值和控制層數據中的控制參數哈希值,若兩者不同,表明控制層數據可能被篡改,終止整個的數據文件解密過程;若兩者相同,表明控制層數據正常,沒有被篡改,繼續進行后面的處理; 步驟六、判斷控制層數據中的數據文件到期時間是否大于當前時間:若不大于,說明該數據文件使用時間已到期,根據數據文件銷毀策略,調用相應的方式將該數據文件銷毀;若大于,說明該數據文件還可以使用; 步驟七、通過控制層數據中的存儲層密鑰,使用對稱加密算法解密存儲層數據,獲取數據文件和數據文件哈希值; 步驟八、采用Hash函數對存儲層數據中的數據文件進行散列轉換,得到數據文件的校驗哈希值; 步驟九、對存儲層數據中的數據文件哈希值和數據文件的校驗哈希值進行比較,若比較結果不同,表明數據文件可能被篡改,終止整個的數據文件解密過程;若比較結果不同,則正常返回最后數據文件,文件解密步驟完成。
9.根據權利要求8所述的數據文件解密方法,其特征在于:在步驟四中,使用消息摘要算法第五版對控制層數據中的存儲層密鑰、數據文件到期時間、數據文件銷毀策略進行散列轉換。
10.根據權利要求8所述的數據文件解密方法,其特征在于:在步驟六中,根據數據文件安全程度的高低,對于數據文件分為三種銷毀方式:一次隨機序列覆蓋、三次覆蓋和七次隨機序列覆蓋。
【文檔編號】G06F21/62GK103607273SQ201310300944
【公開日】2014年2月26日 申請日期:2013年7月18日 優先權日:2013年7月18日
【發明者】謝志超, 傅曉, 莊劍鋒 申請人:焦點科技股份有限公司