數(shù)據(jù)庫加密方法和數(shù)據(jù)庫服務器的制造方法【專利摘要】根據(jù)本發(fā)明的實施例,本發(fā)明提供數(shù)據(jù)庫加密方法和數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫加密方法用于對存儲于存儲器中的數(shù)據(jù)表所包含的數(shù)據(jù)值進行加密并存儲于永久存儲介質。所述數(shù)據(jù)庫加密方法包括如下步驟:基于存儲于存儲器中的數(shù)據(jù)表所包含的數(shù)據(jù)值生成加密數(shù)據(jù)值的步驟;至少部分基于所述數(shù)據(jù)值和所述數(shù)據(jù)值的位置信息生成與所述加密數(shù)據(jù)值匹配的哈希值的步驟;以及決定將所述加密數(shù)據(jù)值和所述哈希值記錄于永久存儲介質(persistentstorage)的步驟?!緦@f明】數(shù)據(jù)庫加密方法和數(shù)據(jù)庫服務器
技術領域:
[0001]本發(fā)明涉及數(shù)據(jù)庫加密,尤其涉及對數(shù)據(jù)進行加密并存儲,以從具有權限的內部管理人員的訪問保護數(shù)據(jù)。【
背景技術:
】[0002]隨著計算機及互聯(lián)網(wǎng)技術的發(fā)展,可有效存儲大量數(shù)據(jù)并以所希望的檢索條件便捷快速地進行查找的數(shù)據(jù)庫越來越得到重視。現(xiàn)在的數(shù)據(jù)庫系統(tǒng)允許存儲及檢索很多的信息。這些信息中的部分信息可包括例如信用卡卡號等敏感信息。[0003]尤其是,在金融行業(yè)、互聯(lián)網(wǎng)門戶站點中收集并管理個人信息的數(shù)據(jù)庫中,為防止沒有權限的用戶判斷或非法記錄在計算機中處理的信息,或為保護具有合法權限的用戶的信息處理服務不被計算機系統(tǒng)拒絕,或為在保管大容量資料的數(shù)據(jù)庫管理系統(tǒng)中保證數(shù)據(jù)的完整性(integrity)、保密性、可用性,數(shù)據(jù)庫的安全是不可或缺的。[0004]近來,因數(shù)據(jù)庫服務器管理員及開發(fā)人員暴露加密密鑰導致的信息泄露成為非常嚴重的問題。即,隨著信息集成度越來越高,存在于企業(yè)內的數(shù)據(jù)庫中積累的信息的量也隨之增加,因此若通信公司管理的顧客信息數(shù)據(jù)庫中的顧客信息(身份證號、電話號碼、賬戶信息等)通過非法途徑泄露,則危害程度非常大。[0005]這些信息的泄露雖然有因為企業(yè)外部的黑客通過黑客行為(hacking)對數(shù)據(jù)存儲空間進行物理訪問等造成的,但實際上大部分信息泄露是因為對數(shù)據(jù)庫具有合法訪問權限的內部人員(例如,數(shù)據(jù)庫管理員(administrator))造成的,而這些因內部人員造成的信息泄露較之從外部發(fā)生的黑客行為更能導致嚴重而致命的危害。[0006]管理上述數(shù)據(jù)庫安全的現(xiàn)有技術是通過分配給各客戶端的安全配置中所規(guī)定的訪問控制方式來限制特定用戶對特定信息的訪問。這種技術可以限制客戶端訪問未被許可的信息。但是,這種現(xiàn)有技術不能限制具有合法訪問權限的內部人員(例如,數(shù)據(jù)庫管理員)或具有0S權限(OSprivilege)的人員的非法行為。[0007]為解決上述問題,提出了在用戶應用程序中對保密信息進行加密的方式,但是在這種情況下,涉及保密信息的所有用戶應用程序都需要進行加密/解密,因此需要向所有這些用戶應用程序提供加密/解密代碼,所以非常不方便。[0008]因此,為了在數(shù)據(jù)庫系統(tǒng)內通過有效的方式保護保密信息,并且為了在不變更用戶應用程序的情況下限制內部人員的非法行為,在本領域存在對將數(shù)據(jù)進行加密并保存的技術的需求?!?br/>發(fā)明內容】[0009]鑒于上述問題,本發(fā)明的目的在于提供一種數(shù)據(jù)庫加密方法和數(shù)據(jù)庫服務器,通過對數(shù)據(jù)進行加密存儲,從具有權限的內部管理人員、具有0S權限的人員或可物理訪問數(shù)據(jù)庫服務器的人員的訪問保護數(shù)據(jù)。[0010]本發(fā)明的目的在于利用哈希函數(shù)驗證加密數(shù)據(jù)的完整性。[0011]本發(fā)明的目的在于在試圖對加密數(shù)據(jù)用具有相同形式的存在于其他位置的加密數(shù)據(jù)進行覆蓋時,驗證數(shù)據(jù)的完整性。[0012]本發(fā)明的目的在于在加密數(shù)據(jù)更新之后,在試圖用更新之前的加密值對其進行覆蓋時,驗證數(shù)據(jù)的完整性。[0013]為達到上述目的,根據(jù)本發(fā)明的一實施例,提供數(shù)據(jù)庫加密方法,用于對存儲于存儲器中的數(shù)據(jù)表所包含的數(shù)據(jù)值進行加密并存儲于永久存儲介質,所述數(shù)據(jù)庫加密方法包括如下步驟:基于存儲于存儲器中的數(shù)據(jù)表所包含的數(shù)據(jù)值生成加密數(shù)據(jù)值的步驟;至少部分基于所述數(shù)據(jù)值和所述數(shù)據(jù)值的位置信息生成與所述加密數(shù)據(jù)值匹配的哈希值的步驟;以及決定將所述加密數(shù)據(jù)值和所述哈希值記錄于永久存儲介質(persistentstorage)的步驟。[0014]另外,根據(jù)本發(fā)明的另一實施例,提供數(shù)據(jù)庫加密方法,用于對存儲于存儲器中的數(shù)據(jù)表所包含的數(shù)據(jù)值進行加密并存儲于永久存儲介質,所述數(shù)據(jù)庫加密方法包括如下步驟:基于存儲于存儲器中的數(shù)據(jù)表所包含的數(shù)據(jù)值生成加密數(shù)據(jù)值的步驟;至少部分基于所述數(shù)據(jù)值和在永久存儲介質上存儲所述數(shù)據(jù)值的存儲位置信息生成與所述加密數(shù)據(jù)值匹配的哈希值的步驟;以及決定將所述加密數(shù)據(jù)值和所述哈希值記錄于永久存儲介質的步驟。[0015]另外,根據(jù)本發(fā)明的一實施例,提供數(shù)據(jù)庫加密方法,包括如下步驟:當被加密的數(shù)據(jù)值有更新時,基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值的步驟;決定將所述第二加密數(shù)據(jù)值存儲于與加密數(shù)據(jù)值的位置不同的第二位置的步驟;至少部分基于所述更新數(shù)據(jù)值和所述第二位置的位置信息生成與所述第二加密數(shù)據(jù)值匹配的哈希值的步驟;以及決定將所述第二加密數(shù)據(jù)值和所述哈希值記錄于永久存儲介質的步驟。[0016]另外,根據(jù)本發(fā)明的另一實施例,提供數(shù)據(jù)庫加密方法,包括如下步驟:當被加密的數(shù)據(jù)值有更新時,基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值的步驟;決定將所述第二加密數(shù)據(jù)值存儲于永久存儲介質上的與加密數(shù)據(jù)值在所述永久存儲介質上的位置不同的第二位置的步驟;至少部分基于所述更新數(shù)據(jù)值和所述第二位置的位置信息生成與所述第二加密數(shù)據(jù)值匹配的哈希值的步驟;以及決定將所述第二加密數(shù)據(jù)值和所述哈希值記錄于所述永久存儲介質的步驟。[0017]另外,根據(jù)本發(fā)明的一實施例,提供數(shù)據(jù)庫加密方法,用于驗證存儲于永久存儲介質中的加密數(shù)據(jù)的完整性,其包括如下步驟:基于存儲于所述永久存儲介質中的加密數(shù)據(jù)值生成解密數(shù)據(jù)值的步驟;至少部分基于所述解密數(shù)據(jù)值和所述解密數(shù)據(jù)值在數(shù)據(jù)表內的位置信息生成與所述解密數(shù)據(jù)值匹配的哈希值的步驟;以及通過比較所生成的所述哈希值和存儲于所述永久存儲介質中的哈希值驗證所述解密數(shù)據(jù)的完整性的步驟。[0018]另外,根據(jù)本發(fā)明的另一實施例,提供數(shù)據(jù)庫加密方法,用于驗證存儲于永久存儲介質中的加密數(shù)據(jù)的完整性,其包括如下步驟:基于存儲于所述永久存儲介質中的加密數(shù)據(jù)值生成解密數(shù)據(jù)值的步驟;至少部分基于所述解密數(shù)據(jù)值和所述加密數(shù)據(jù)值在所述永久存儲介質中的存儲位置信息生成與所述解密數(shù)據(jù)值匹配的哈希值的步驟;以及通過比較所生成的所述哈希值和存儲于所述永久存儲介質中的哈希值驗證所述解密數(shù)據(jù)的完整性的步驟。[0019]根據(jù)本發(fā)明的一實施例,提供數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器通過對數(shù)據(jù)值進行加密存儲從具有權限的內部管理員的訪問保護數(shù)據(jù)。所述數(shù)據(jù)庫服務器包括:存儲器,存儲包含數(shù)據(jù)值的數(shù)據(jù)表;加密模塊,基于所述數(shù)據(jù)值生成加密數(shù)據(jù)值;哈希模塊,至少部分基于所述數(shù)據(jù)值和所述數(shù)據(jù)值的位置信息生成與所述加密數(shù)據(jù)值匹配的哈希值;以及永久存儲介質,記錄所述加密數(shù)據(jù)值和所述哈希值。[0020]另外,根據(jù)本發(fā)明的另一實施例,提供數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器通過對數(shù)據(jù)值進行加密存儲從具有權限的內部管理員的訪問保護數(shù)據(jù)。所述數(shù)據(jù)庫服務器包括:存儲器,存儲包含數(shù)據(jù)值的數(shù)據(jù)表;加密模塊,基于所述數(shù)據(jù)值生成加密數(shù)據(jù)值;哈希模塊,至少部分基于所述數(shù)據(jù)值和在永久存儲介質上存儲所述數(shù)據(jù)值的存儲位置信息生成與所述加密數(shù)據(jù)值匹配的哈希值;以及所述永久存儲介質,記錄所述加密數(shù)據(jù)值和所述哈希值。[0021]另外,根據(jù)本發(fā)明的一實施例,提供數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器從對加密存儲數(shù)據(jù)值具有權限的內部管理員的攻擊保護數(shù)據(jù)。所述數(shù)據(jù)庫服務器包括:加密模塊,當被加密的數(shù)據(jù)值有更新時,基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值;存儲模塊,決定將所述第二加密數(shù)據(jù)值存儲于與加密數(shù)據(jù)值的位置不同的第二位置;哈希模塊,至少部分基于所述更新數(shù)據(jù)值和所述第二位置的位置信息生成與所述第二加密數(shù)據(jù)值匹配的哈希值;以及永久存儲介質,記錄所述第二加密數(shù)據(jù)值和所述哈希值。[0022]另外,根據(jù)本發(fā)明的另一實施例,提供數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器從對加密存儲數(shù)據(jù)值具有權限的內部管理員的攻擊保護數(shù)據(jù)。所述數(shù)據(jù)庫服務器包括:加密模塊,當被加密的數(shù)據(jù)值有更新時,基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值;存儲模塊,決定將所述第二加密數(shù)據(jù)值存儲于永久存儲介質上的與加密數(shù)據(jù)值在所述永久存儲介質上的位置不同的第二位置;哈希模塊,至少部分基于所述更新數(shù)據(jù)值和所述第二位置的位置信息生成與所述第二加密數(shù)據(jù)值匹配的哈希值;以及所述永久存儲介質,記錄所述第二加密數(shù)據(jù)值和所述哈希值。[0023]另外,根據(jù)本發(fā)明的一實施例,提供數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器用于驗證存儲于永久存儲介質中的加密數(shù)據(jù)值的完整性。所述數(shù)據(jù)庫服務器包括:永久存儲介質,存儲所述加密數(shù)據(jù)值和第一哈希值;解密模塊,基于存儲于所述永久存儲介質的加密數(shù)據(jù)值生成解密數(shù)據(jù)值;哈希模塊,至少部分基于所述解密數(shù)據(jù)值和所述解密數(shù)據(jù)值在數(shù)據(jù)表內的位置信息生成與所述解密數(shù)據(jù)值匹配的第二哈希值;以及完整性驗證模塊,通過比較所述第一哈希值和所述第二哈希值驗證所述解密數(shù)據(jù)值的完整性。[0024]另外,根據(jù)本發(fā)明的另一實施例,提供數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器用于驗證存儲于永久存儲介質中的加密數(shù)據(jù)值的完整性。所述數(shù)據(jù)庫服務器包括:永久存儲介質,存儲所述加密數(shù)據(jù)值和第一哈希值;解密模塊,基于存儲于所述永久存儲介質的加密數(shù)據(jù)值生成解密數(shù)據(jù)值;哈希模塊,至少部分基于所述解密數(shù)據(jù)值和所述加密數(shù)據(jù)值在所述永久存儲介質中的存儲位置信息生成與所述解密數(shù)據(jù)值匹配的第二哈希值;以及完整性驗證模塊,通過比較所述第一哈希值和所述第二哈希值驗證所述解密數(shù)據(jù)值的完整性。[0025]本發(fā)明通過對數(shù)據(jù)進行加密存儲,能夠從具有權限的內部管理人員、具有0S權限的人員或可物理訪問數(shù)據(jù)庫服務器的人員的訪問保護數(shù)據(jù)。[0026]本發(fā)明能夠利用哈希函數(shù)驗證加密數(shù)據(jù)的完整性。[0027]本發(fā)明能夠在試圖對加密數(shù)據(jù)用具有相同形式的存在于其他位置的加密數(shù)據(jù)進行覆蓋時,驗證數(shù)據(jù)的完整性。[0028]本發(fā)明能夠在加密數(shù)據(jù)更新之后,在試圖用更新之前的加密值對其進行覆蓋時,驗證數(shù)據(jù)的完整性?!靖綀D說明】[0029]圖1是本發(fā)明的一實施例的數(shù)據(jù)庫系統(tǒng)100的示意圖。[0030]圖2是本發(fā)明的一實施例的數(shù)據(jù)庫服務器的框圖(blockdiagram)。[0031]圖3是本發(fā)明的一實施例的數(shù)據(jù)庫加密方法順序圖。[0032]圖4是本發(fā)明的另一實施例的數(shù)據(jù)庫加密方法順序圖。[0033]圖5是表示本發(fā)明的一實施例的被加密的數(shù)據(jù)值有更新時的數(shù)據(jù)庫服務器的運行順序圖。[0034]圖6是表示本發(fā)明的另一實施例的被加密的數(shù)據(jù)值有更新時的數(shù)據(jù)庫服務器的運行順序圖。[0035]圖7是本發(fā)明的一實施例的數(shù)據(jù)庫解密方法順序圖。[0036]圖8是本發(fā)明的另一實施例的數(shù)據(jù)庫解密方法順序圖。[0037]附圖標記說明[0038]11〇客戶端[0039]120數(shù)據(jù)庫服務器[0040]130DBMS(DatabaseManagementSystem)[0041]135存儲器[0042]140永久存儲介質(persistentstorage)[0043]210收發(fā)模塊[0044]220加密模塊[0045]230哈希模塊[0046]240存儲模塊[0047]250解密模塊[0048]260完整性驗證模塊[0049]270數(shù)據(jù)表【具體實施方式】[0050]下面,結合附圖對各種實施例進行說明,在所有附圖中類似的附圖標記表示類似的構成要素。在本說明書中,各種說明用于幫助理解本發(fā)明。但是,即使沒有這些具體說明這些實施例也可以實施。在其他例中,為便于說明,已公開的結構及裝置以框圖的形式表不。[0051]本說明書中使用的術語“元件”、“模塊”、“系統(tǒng)”等表示計算機相關實體、硬件、固件、軟件、軟件及硬件的組合或軟件的執(zhí)行。例如,元件可以是在處理器中執(zhí)行的處理過程、進程、對象、執(zhí)行線程、程序和/或計算機,但并不限于此。例如,計算裝置和在計算裝置上執(zhí)行的應用程序都可以是元件。一個以上的元件可常駐于進程和/或執(zhí)行線程內,一個元件可在一臺計算機內本地化,或可在兩臺以上的計算機之間分配。另外,這些元件可從內部存儲有各種數(shù)據(jù)結構的各種計算機可讀介質執(zhí)行。元件之間可根據(jù)例如具有一個以上的數(shù)據(jù)包的信號(例如,在本地系統(tǒng)、分步式系統(tǒng)中,從與其他元件交互的一個元件通過數(shù)據(jù)和/或信號并通過其他系統(tǒng)和互聯(lián)網(wǎng)等網(wǎng)絡的數(shù)據(jù))并通過本地和/或遠程處理進行通信。[0052]對所揭示的實施例進行的說明用于幫助本領域的普通技術人員利用或實施本發(fā)明。本領域的普通技術人員應當能夠理解對所述實施例進行的多種變形,并且在不脫離本發(fā)明的范圍內,在此定義的一般原理可應用于其他實施例。因此,本發(fā)明不限于在此所揭示的實施例,而應當在與所揭示的原理和新的技術特征一致的范圍內對本發(fā)明進行解釋。[0053]本說明書中使用的術語“數(shù)據(jù)表”及“表”往往可互相交換使用。[0054]圖1是本發(fā)明的一實施例的數(shù)據(jù)庫系統(tǒng)100的示意圖。[0055]如圖1所示,數(shù)據(jù)庫服務器120可包括例如微處理器、大型計算機、數(shù)字信號處理器、便攜式設備及設備控制器等任何類型的計算機系統(tǒng)或計算機設備。[0056]客戶端110是指具有通過網(wǎng)絡進行通信的機制的數(shù)據(jù)庫系統(tǒng)中的節(jié)點。例如,客戶端110可包括PC、便攜式電腦、工作站、終端和/或可通過網(wǎng)絡進行訪問的任何電子設備。[0057]數(shù)據(jù)庫服務器120可包括DBMS(DatabaseManagementSystem)130及永久存儲介質(persistentstorage)140。雖然未在圖1中表示,但數(shù)據(jù)庫服務器120可包括包含緩沖器高速緩沖存儲器(buffercache)在內的一個以上的存儲器。另外,雖然未在圖1中表示,但數(shù)據(jù)庫服務器120可包括一個以上的處理器。因此,DBMS130可在上述存儲器上通過上述處理器運行。[0058]永久存儲介質(persistentstorage)140不僅指例如磁盤(magneticdisk)、光盤(opticaldisk)、光磁(magneto-optical)存儲設備,還指基于閃存和/或電池備份存儲器(batterybackupmemory)的存儲設備等可持續(xù)存儲數(shù)據(jù)的任何非揮發(fā)性(non-volatile)存儲介質。上述永久存儲介質140可通過各種通信方法與數(shù)據(jù)庫服務器120的處理器及存儲器進行通信。在追加的實施例中,上述永久存儲介質140位于數(shù)據(jù)庫服務器120外部并能夠與數(shù)據(jù)庫服務器120進行通信。[0059]DBMS130是用于允許在數(shù)據(jù)庫服務器120中對所需數(shù)據(jù)進行搜索、插入、修改和/或刪除等動作的程序,如上所述,可在數(shù)據(jù)庫服務器120的存儲器中通過處理器實現(xiàn)。[0060]客戶端110和數(shù)據(jù)庫服務器120可通過網(wǎng)絡互相通信。本發(fā)明的一實施例的網(wǎng)絡可使用公共電話交換網(wǎng)(PSTN,PublicSwitichedTelephoneNetwork)、xDSL(xDigitalSubscriberLine)、RADSL(RateAdaptiveDSL)、MDSL(MultiRateDSL)、VDSL(VeryHighSpeedDSL)、UADSL(UniversalAsymmetricDSL)、HDSL(HighBitRateDSL)及近距離通信網(wǎng)(LAN)等各種有線通信系統(tǒng)。[0061]另外,本說明書中公開的網(wǎng)絡可使用CDMA(CodeDivis1nMultiAccess)、TDMA(TimeDivis1nMultiAccess)、FDMA(FrequencyDivis1nMultiAccess)、OFDMA(OrthogonalFrequencyDivis1nMultiAccess)nSC-FDMA(SingleCarrier-FDMA)及其他系統(tǒng)等各種無線通信系統(tǒng)。本說明書中說明的技術不僅適用于上述所提及的網(wǎng)路,還適用于其他網(wǎng)絡。[0062]圖2是本發(fā)明的一實施例的數(shù)據(jù)庫服務器的框圖(blockdiagram)。[0063]本發(fā)明的一實施例的數(shù)據(jù)庫服務器120可包括永久存儲介質(persistentstorage)140、DBMS130及存儲器135。如上所述,DBMS130可通過數(shù)據(jù)庫服務器120內的一個以上的存儲器135及一個以上的處理器運行。[0064]DBMS130可包括收發(fā)模塊210、加密模塊220、哈希模塊230、存儲模塊240、解密模塊250及完整性驗證模塊260。如圖2所示的DBMS130內的各模塊可互相進行通信。上述DBMS130的模塊是示例性的,可根據(jù)不同的實現(xiàn)方法追加包括其他模塊或省略上述模塊中的一部分。[0065]存儲器135是處理器直接訪問的如動態(tài)存儲器(DRAM,dynamicrandomaccessmemory)、靜態(tài)存儲器(SRAM,staticrandomaccessmemory)等隨機存取存儲器(RAM)的主要存儲裝置,當關閉電源時所存儲的信息瞬間消失的揮發(fā)性(volatile)存儲裝置。上述存儲器135可通過上述處理器運行。上述存儲器135可臨時存儲包含數(shù)據(jù)值的數(shù)據(jù)表(datatable)270。上述數(shù)據(jù)表270可包括數(shù)據(jù)值,在本發(fā)明的一實施例中,上述數(shù)據(jù)表270的數(shù)據(jù)值能以列(column)為單位被加密并被存儲于永久存儲介質140。上述存儲器135包括緩沖器高速緩沖存儲器,在上述緩沖器高速緩沖存儲器的數(shù)據(jù)塊中可存儲數(shù)據(jù)。上述數(shù)據(jù)可通過后臺進程記錄于永久存儲介質140中。[0066]收發(fā)模塊210可接收來自用戶的數(shù)據(jù)存儲、查詢及數(shù)據(jù)加密請求等。另外,收發(fā)模塊210還可傳遞針對數(shù)據(jù)存儲及查詢請求的結果信息。[0067]加密模塊220可在將數(shù)據(jù)記錄(存儲)于永久存儲介質140之前對數(shù)據(jù)進行加密(encrypt1n)。加密模塊220可基于純文本(plaintext)生成加密數(shù)據(jù)(ciphertext,encryptedtext)。本說明書中的對數(shù)據(jù)的加密方式可包括列級加密及表空間級加密。列級加密是指對被指定的希望被加密的列的數(shù)據(jù)進行加密。表空間級加密以表空間為單位對數(shù)據(jù)進行加密,例如,對在0S系統(tǒng)中生成的物理數(shù)據(jù)文件進行加密。根據(jù)本發(fā)明的一個方面,對于將要存儲的數(shù)據(jù)可進行列級加密。[0068]加密模塊220可基于上述數(shù)據(jù)值生成加密數(shù)據(jù)值。加密模塊220基于包含于加密密鑰中的加密信息確定加密函數(shù),并利用基于上述數(shù)據(jù)值進行計算的上述加密函數(shù)生成加密數(shù)據(jù)值。[0069]上述加密密鑰可至少包括與加密模式相關的信息、加密數(shù)據(jù)類型及數(shù)據(jù)長度信息等。上述加密模式可包括數(shù)據(jù)加密標準(DES,dataencrypt1nstandard)及三重數(shù)據(jù)加密標準(tripleDES)、高級加密標準(AES,advancedencrypt1nstandard)、ARIA、SEED中的至少一種。上述加密密鑰可用于加密及解密。加密函數(shù)可包括將純文本(plaintext)變更為加密文本(encryptedtext)的加密算法。上述加密函數(shù)在進行加密及解密時參照上述加密密鑰。上述加密密鑰(encrypt1nkey)存儲于上述數(shù)據(jù)庫服務器120的內部或存儲于上述數(shù)據(jù)庫服務器120的外部,而且為進一步的安全,上述加密密鑰可通過主密鑰(masterkey)加密并存儲。上述主密鑰可存儲于外部存儲介質或上述數(shù)據(jù)庫服務器120的內部。本發(fā)明的一個方面的加密(解密)技法可由各種加密算法、加密密鑰和/或加密選項(初始化向量使用與否等)的組合構成。[0070]另外,上述加密模塊220在被加密的數(shù)據(jù)值有更新時,可基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值。上述第二加密數(shù)據(jù)值可與現(xiàn)有加密數(shù)據(jù)值不同。[0071]上述加密動作可對決定對數(shù)據(jù)表270的一個以上的列的數(shù)據(jù)值進行加密的上述一個以上的列進行加密。因此,上述加密動作不是針對數(shù)據(jù)表270的全部數(shù)據(jù)值進行,而是只針對需要加密的列的數(shù)據(jù)值(例如,信用卡卡號、年薪等)進行,從而可以更有效地實現(xiàn)數(shù)據(jù)庫加密。[0072]哈希模塊230可生成用于驗證解密文本(decryptedtext)的完整性的哈希值。哈希模塊230利用SHA(securehashalgorithm)系列、MD5等哈希算法生成哈希值。上述哈希算法只是示例,本發(fā)明的哈希模塊230可利用任何哈希算法生成哈希值。[0073]上述哈希模塊230可至少部分基于數(shù)據(jù)表270的數(shù)據(jù)值及上述數(shù)據(jù)值的位置信息,生成與上述加密數(shù)據(jù)值匹配的哈希值。上述數(shù)據(jù)值的位置信息可包括行標識符(rowID)及列密鑰(columnkey)中的至少一種。上述列密鑰至少部分基于上述數(shù)據(jù)表的元信息,上述行標識符至少部分基于數(shù)據(jù)塊上的將要記錄上述數(shù)據(jù)值的位置。[0074]具體而言,哈希模塊230可至少部分基于上述數(shù)據(jù)表的元信息,獲得上述列密鑰。另外,加密數(shù)據(jù)可記錄于存儲器135的數(shù)據(jù)塊中。在這種情況下,可生成行標識符。上述行標識符相對于上述數(shù)據(jù)塊是固有的。另外,上述哈希模塊230可至少部分基于上述數(shù)據(jù)塊上的將要記錄上述數(shù)據(jù)值的位置,獲得上述行標識符。另外,上述哈希模塊230可至少部分基于上述數(shù)據(jù)值、上述列密鑰及上述行標識符,生成與上述加密數(shù)據(jù)值匹配的哈希值。[0075]另外,上述哈希模塊230可至少部分基于上述數(shù)據(jù)值及永久存儲介質140上的將要存儲上述數(shù)據(jù)值的存儲位置信息,生成與上述加密數(shù)據(jù)值匹配的哈希值。上述永久存儲介質140上的存儲位置信息可包括行標識符及列密鑰中的至少一種。[0076]另外,上述哈希模塊230在被加密的數(shù)據(jù)值有更新時,至少部分基于更新數(shù)據(jù)值及第二位置的位置信息,生成與上述第二加密數(shù)據(jù)值匹配的哈希值,所述第二位置是用于存儲基于上述更新數(shù)據(jù)值生成的第二加密數(shù)據(jù)值的、與上述加密數(shù)據(jù)值的位置不同的位置。[0077]另外,上述哈希模塊230在被加密的數(shù)據(jù)值有更新時,至少部分基于更新數(shù)據(jù)值及第二位置的位置信息,生成與上述第二加密數(shù)據(jù)值匹配的哈希值,所述第二位置是永久存儲介質140上的用于存儲基于上述更新數(shù)據(jù)值生成的第二加密數(shù)據(jù)值的、與上述加密數(shù)據(jù)值在上述永久存儲介質140上的位置不同的位置。[0078]另外,上述哈希模塊230在加密數(shù)據(jù)被解密時,可至少部分基于解密數(shù)據(jù)值及上述解密數(shù)據(jù)值在數(shù)據(jù)表270內的位置信息,生成與上述解密數(shù)據(jù)值匹配的哈希值。[0079]另外,上述哈希模塊230在加密數(shù)據(jù)被解密時,可至少部分基于解密數(shù)據(jù)值及上述解密數(shù)據(jù)值在上述永久存儲介質140上的存儲位置信息,生成與上述解密數(shù)據(jù)值匹配的哈希值。[0080]哈希模塊230至少部分基于數(shù)據(jù)值(純文本)、被更新的數(shù)據(jù)值(純文本)或解密數(shù)據(jù)值(解密文本)及上述各數(shù)據(jù)值在數(shù)據(jù)表270上的存儲位置信息,生成與上述各數(shù)據(jù)值匹配的哈希值。另外,哈希模塊230至少部分基于數(shù)據(jù)值(純文本)、被更新的數(shù)據(jù)值(純文本)或解密數(shù)據(jù)值(解密文本)及上述各數(shù)據(jù)值在永久存儲介質140上的存儲位置信息,生成與上述各數(shù)據(jù)值匹配的哈希值。[0081]在不使用上述哈希值時,擁有合法訪問權限的內部人員、擁有0S權限的人員或可物理訪問數(shù)據(jù)庫服務器120的人員可獲得加密數(shù)據(jù)值并將上述加密數(shù)據(jù)值存儲于永久存儲介質140上的與原來的位置不同的位置。此時,上述加密數(shù)據(jù)值的解密文本輸出有效的數(shù)據(jù)值,因此完整性驗證模塊260無法檢測上述數(shù)據(jù)的變化。通過使哈希值與上述加密數(shù)據(jù)值匹配,當數(shù)據(jù)變化時,存儲的哈希值和基于解密數(shù)據(jù)值的哈希值不同,因此上述完整性驗證模塊260可檢測出數(shù)據(jù)的變化。但是,當哈希值單純地基于數(shù)據(jù)的純文本時,當擁有合法訪問權限的內部人員、擁有OS權限的人員或可物理訪問數(shù)據(jù)庫服務器120的人員獲得加密數(shù)據(jù)值及與之匹配的哈希值,進行存儲于其他存儲位置的攻擊時,因解密數(shù)據(jù)值有效、且基于解密數(shù)據(jù)值的哈希值與存儲的哈希值相同,因此無法檢測出數(shù)據(jù)是否變化。但是,根據(jù)本發(fā)明的一實施例的上述哈希值至少部分基于數(shù)據(jù)值的純文本及上述加密數(shù)據(jù)的存儲位置。因此,針對如上所述的變更數(shù)據(jù)的存儲位置的攻擊,由于基于解密數(shù)據(jù)值及解密數(shù)據(jù)值的存儲位置的哈希值與存儲的哈希值不同,因此完整性驗證模塊260可檢測出有效的加密數(shù)據(jù)值的位置變更。[0082]存儲模塊240可決定加密數(shù)據(jù)值或哈希值的存儲位置。存儲模塊240可決定加密數(shù)據(jù)值在數(shù)據(jù)表270上的存儲位置。另外,上述存儲模塊240可決定加密數(shù)據(jù)值在永久存儲介質140上的存儲位置。另外,上述存儲模塊240可決定數(shù)據(jù)值、加密數(shù)據(jù)值及哈希值的存儲。另外,上述存儲模塊240可決定加密數(shù)據(jù)值及哈希值在存儲器135的數(shù)據(jù)塊上的存儲位置。如果決定了上述數(shù)據(jù)塊上的存儲位置,則決定了行標識符。[0083]在本發(fā)明的一實施例中,將數(shù)據(jù)(例如,加密數(shù)據(jù))記錄于永久存儲介質140的動作可通過DBMS130的后臺進程(例如,Databasebufferwriter、Datablockwriter、checkpointprocess和/或logwriter等)實現(xiàn)。在這種情況下,如果將加密模塊220加密的數(shù)據(jù)存儲于存儲器(例如,緩沖器高速緩沖存儲器)(foregroundprocess),則后臺進程在預定的時刻將加密數(shù)據(jù)記錄于永久存儲介質140。在本說明書中,為便于說明,對存儲模塊240包括決定數(shù)據(jù)存儲的動作和后臺進程的動作的情況進行說明。[0084]上述存儲模塊240在被加密的數(shù)據(jù)值有更新時,可決定將基于更新數(shù)據(jù)值生成的第二加密數(shù)據(jù)值存儲于與上述加密數(shù)據(jù)值的位置不同的第二位置。因此,上述第二加密數(shù)據(jù)值的行標識符可改變。[0085]另外,上述存儲模塊240在被加密的數(shù)據(jù)值有更新時,可決定將基于更新數(shù)據(jù)值生成的第二加密數(shù)據(jù)值存儲于上述永久存儲介質140上的與上述加密數(shù)據(jù)值在上述永久存儲介質140上的位置不同的第二位置。因此,上述第二加密數(shù)據(jù)值的行標識符可改變。[0086]當數(shù)據(jù)值有更新時,存儲模塊240可將更新的數(shù)據(jù)存儲(或記錄)在與更新之前存儲的位置不同的位置。[0087]在被加密的數(shù)據(jù)值有更新時,上述存儲模塊240將基于更新的值生成的第二加密數(shù)據(jù)值存儲于永久存儲介質140上的與現(xiàn)有的加密數(shù)據(jù)值的存儲位置不同的位置,因此與上述第二加密數(shù)據(jù)值匹配的哈希值可與現(xiàn)有的哈希值不同。因此,擁有合法訪問權限的內部人員、擁有0S權限的人員或可物理訪問上述數(shù)據(jù)庫服務器120或永久存儲介質140的人員,獲得更新前的加密數(shù)據(jù)值及哈希值并將其存儲于更新數(shù)據(jù)值的存儲位置時,完整性驗證模塊260也能檢測出數(shù)據(jù)值是否變化。因此,隨著被加密的數(shù)據(jù)的更新,安全水平可進一步提高。在現(xiàn)有的數(shù)據(jù)庫服務器中,在數(shù)據(jù)值被更新時,永久存儲介質上的存儲位置不會改變。但是,在本發(fā)明的一實施例的數(shù)據(jù)庫服務器120中,每當更新數(shù)據(jù)值時都改變永久存儲介質140上的存儲位置,從而達到更高的安全水平。[0088]存儲模塊240可決定將加密數(shù)據(jù)值及上述哈希值存儲于永久存儲介質140上的數(shù)據(jù)塊中。另外,上述存儲模塊240可將存儲器135的數(shù)據(jù)塊的數(shù)據(jù)記錄于上述永久存儲介質140?;谏鲜黾用軘?shù)據(jù)值及上述哈希值,可在上述永久存儲介質140的塊上生成檢驗和(checksum)。上述加密數(shù)據(jù)值或上述哈希值發(fā)生變化時,上述校驗和的值發(fā)生變化,因此上述校驗和可用于檢測上述加密數(shù)據(jù)值或上述哈希值的變化。[0089]解密模塊250可基于加密數(shù)據(jù)值生成解密數(shù)據(jù)值。此時,上述解密模塊250可使用與加密模塊220生成加密文本時使用的加密密鑰相同的對稱密鑰。上述解密模塊250可基于存儲在永久存儲介質140上的加密數(shù)據(jù)值生成解密數(shù)據(jù)值。[0090]完整性驗證模塊260通過對存儲于永久存儲介質140的與加密數(shù)據(jù)值匹配的第一哈希值及與解密數(shù)據(jù)值匹配的第二哈希值進行比較,驗證解密數(shù)據(jù)值的完整性。[0091]在本發(fā)明的一實施例中,存儲模塊240在對數(shù)據(jù)值進行加密并存儲時,將上述加密數(shù)據(jù)值和基于上述數(shù)據(jù)值及上述數(shù)據(jù)值的存儲位置的第一哈希值匹配存儲。另外,在本發(fā)明的一實施例中,在對加密數(shù)據(jù)進行解密時,對上述加密數(shù)據(jù)值進行解密的解密數(shù)據(jù)值和第二哈希值匹配,所述第二哈希值基于上述解密數(shù)據(jù)值及上述解密數(shù)據(jù)值的存儲位置。當上述第一哈希值及第二哈希值相同時,判定上述數(shù)據(jù)值及上述解密數(shù)據(jù)值相同,從而判斷上述解密數(shù)據(jù)值的完整性。上述各哈希值至少部分基于上述數(shù)據(jù)值的存儲位置,因此針對內部人員改變加密數(shù)據(jù)值的存儲位置的攻擊,可用于驗證數(shù)據(jù)的完整性。[0092]圖3是本發(fā)明的一實施例的數(shù)據(jù)庫加密方法順序圖。[0093]在本發(fā)明的一實施例中,上述方法例如可通過數(shù)據(jù)庫服務器120的各模塊執(zhí)行。另外,如圖3所示的順序圖的各步驟不是必須的,可根據(jù)需要省略或添加部分步驟。[0094]數(shù)據(jù)庫服務器120可決定對存儲于存儲器135的數(shù)據(jù)表270的一個以上的列的數(shù)據(jù)值進行加密(310)。根據(jù)本發(fā)明的一個方面,對將要保存的數(shù)據(jù)執(zhí)行列級加密。因此,數(shù)據(jù)庫服務器120不對整個數(shù)據(jù)表270進行加密,所以不受性能的制約,可節(jié)省資源且有效地對數(shù)據(jù)進行加密并存儲。在如圖2所示的數(shù)據(jù)表270的示例中,可以只對包括相當于年薪的數(shù)據(jù)值的“年薪”列執(zhí)行列級加密。[0095]加密模塊220可基于存儲于存儲器135的數(shù)據(jù)表270中包括的數(shù)據(jù)值生成加密數(shù)據(jù)值(320)。而如上所述,上述加密數(shù)據(jù)值可通過任何加密算法生成。[0096]哈希模塊230可至少部分基于上述數(shù)據(jù)值及上述數(shù)據(jù)值的位置信息,生成與上述加密數(shù)據(jù)值匹配的哈希值(330)。而上述數(shù)據(jù)值的位置信息可包括行標識符(rowID)及列密鑰(columnkey)中的至少一種。上述列密鑰可至少部分基于上述數(shù)據(jù)表270的元信息??梢园瓷鲜鰯?shù)據(jù)表270的列存在上述列密鑰,而且可以按不同的列有不同的上述列密鑰。上述行標識符至少部分基于數(shù)據(jù)塊上的將要記錄上述數(shù)據(jù)值的位置。加密數(shù)據(jù)值可記錄于存儲器135的數(shù)據(jù)塊中。在這種情況下,可生成行標識符。上述哈希模塊230可獲得上述行標識符。上述行標識符相對于上述數(shù)據(jù)塊是固有的。根據(jù)存儲器135的數(shù)據(jù)塊上的位置,可決定在永久存儲介質140上的物理存儲位置,而上述行標識符相對于永久存儲介質140是固有的。具體而言,哈希模塊230至少部分基于上述數(shù)據(jù)表的元信息,獲得上述列密鑰。另外,上述哈希模塊230至少部分基于上述數(shù)據(jù)塊上的將要記錄上述數(shù)據(jù)值的位置,獲得上述行標識符。另外,上述哈希模塊230可至少部分基于上述數(shù)據(jù)值、上述列密鑰及上述行標識符,生成與上述加密數(shù)據(jù)值匹配的哈希值。[0097]存儲模塊240可決定將上述加密數(shù)據(jù)值及上述哈希值記錄于永久存儲介質140(340)。根據(jù)本發(fā)明的另一方面,當存儲模塊240將加密數(shù)據(jù)值及哈希值存儲于存儲器時,后臺進程以預定的時間單位將存儲于存儲器上的數(shù)據(jù)值及哈希值記錄于永久存儲介質140。另外,上述存儲模塊240可決定上述加密數(shù)據(jù)值及上述哈希值在永久存儲介質140上的存儲位置。[0098]另外,加密模塊220在被加密的數(shù)據(jù)值有更新時,可基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值(350)。[0099]存儲模塊240可決定將上述第二加密數(shù)據(jù)值存儲于與上述加密數(shù)據(jù)值的位置不同的第二位置(360)。因此,第二加密數(shù)據(jù)值可存儲于與上述加密數(shù)據(jù)值的存儲位置不同的位置。因此,上述第二加密數(shù)據(jù)值的行標識符可改變。[0100]哈希模塊230至少部分基于更新數(shù)據(jù)值及上述第二位置的位置信息生成與上述第二加密數(shù)據(jù)值匹配的第二哈希值(370)。由于第二加密數(shù)據(jù)值的行標識符改變,所以第二哈希值可與上述第一哈希值不同。[0101]存儲模塊240可決定將上述第二加密數(shù)據(jù)值及上述第二哈希值記錄于上述永久存儲介質140上(380)。[0102]圖4是本發(fā)明的另一實施例的數(shù)據(jù)庫加密方法順序圖。[〇1〇3]在本發(fā)明的一實施例中,上述方法例如可通過數(shù)據(jù)庫服務器120的各模塊執(zhí)行。另外,如圖4所示的順序圖的各步驟不是必須的,可根據(jù)需要省略或添加部分步驟。[0104]如圖4所示的410至420步驟及450步驟與如圖3所示的310至320步驟及350步驟相同,因此對此的說明與上述內容一致。[0105]哈希模塊230可至少部分基于上述數(shù)據(jù)值及永久存儲介質140上的將要存儲上述數(shù)據(jù)值的存儲位置信息,生成與上述加密數(shù)據(jù)值匹配的哈希值(430)。在上述永久存儲介質140上的存儲位置信息可包括行標識符及列密鑰中的至少一種。[0106]存儲模塊240可決定將上述加密數(shù)據(jù)值及上述哈希值記錄于永久存儲介質140上(440)。上述存儲模塊240可決定上述加密數(shù)據(jù)值及上述哈希值在永久存儲介質140上的存儲位置。[0107]存儲模塊240可決定將對更新數(shù)據(jù)值進行加密而成的第二加密數(shù)據(jù)值存儲于上述永久存儲介質140上的與上述加密數(shù)據(jù)值在上述永久存儲介質140上的位置不同的第二位置(460)。因此,第二加密數(shù)據(jù)值的行標識符可改變。[0108]哈希模塊230至少部分基于更新數(shù)據(jù)值及上述第二位置的位置信息,生成與上述第二加密數(shù)據(jù)值匹配的第二哈希值(470)。由于第二加密數(shù)據(jù)值的行標識符可改變,所以第二哈希值可與上述第一哈希值不同。[0109]存儲模塊240可決定將上述第二加密數(shù)據(jù)值及上述第二哈希值記錄于上述永久存儲介質140上(480)。[0110]圖5是表示本發(fā)明的一實施例的被加密的數(shù)據(jù)值有更新時的數(shù)據(jù)庫服務器的運行順序圖。[0111]在本發(fā)明的一實施例中,上述方法例如可通過數(shù)據(jù)庫服務器120的各模塊執(zhí)行。另外,如圖5所示的順序圖的各步驟不是必須的,可根據(jù)需要省略或添加部分步驟。[0112]加密模塊220在被加密的數(shù)據(jù)值有更新時,可基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值(510)。[0113]存儲模塊240可決定將上述第二加密數(shù)據(jù)值存儲于與上述加密數(shù)據(jù)值的位置不同的第二位置(530)。因此,第二加密數(shù)據(jù)值可存儲于與上述加密數(shù)據(jù)值的存儲位置不同的位置。因此,上述第二加密數(shù)據(jù)值的行標識符可改變。[0114]哈希模塊230至少部分基于上述更新數(shù)據(jù)值及上述第二位置的位置信息,生成與上述第二加密數(shù)據(jù)值匹配的哈希值(550)。由于第二加密數(shù)據(jù)值的行標識符可改變,所以第二哈希值可與上述第一哈希值不同。[0115]存儲模塊240可記錄上述第二加密數(shù)據(jù)值及上述哈希值。[0116]圖6是表示本發(fā)明的另一實施例的被加密的數(shù)據(jù)值有更新時的數(shù)據(jù)庫服務器的運行順序圖。[0117]在本發(fā)明的一實施例中,上述方法例如可通過數(shù)據(jù)庫服務器120的各模塊執(zhí)行。另外,如圖6所示的順序圖的各步驟不是必須的,可根據(jù)需要省略或添加部分步驟。[0118]如圖6所示的610步驟與如圖5所示的510步驟相同,因此對此的說明與上述內容一致。[0119]存儲模塊240可決定將對更新數(shù)據(jù)值進行加密而成的第二加密數(shù)據(jù)值存儲于上述永久存儲介質140上的與上述加密數(shù)據(jù)值在上述永久存儲介質140上的位置不同的第二位置(630)。因此,第二加密數(shù)據(jù)值的行標識符可改變。[0120]哈希模塊230至少部分基于更新數(shù)據(jù)值及上述第二位置的位置信息,生成與上述第二加密數(shù)據(jù)值匹配的第二哈希值¢50)。由于第二加密數(shù)據(jù)值的行標識符可改變,所以第二哈希值可與上述第一哈希值不同。[0121]存儲模塊240可決定將上述第二加密數(shù)據(jù)值及上述第二哈希值記錄于上述永久存儲介質140上(670)。[0122]圖7是本發(fā)明的一實施例的數(shù)據(jù)庫解密方法順序圖。[0123]在本發(fā)明的一實施例中,上述方法例如可通過數(shù)據(jù)庫服務器120的各模塊執(zhí)行。另外,如圖7所示的順序圖的各步驟不是必須的,可根據(jù)需要省略或添加部分步驟。[0124]解密模塊250可基于存儲在上述永久存儲介質140上的加密數(shù)據(jù)值生成解密數(shù)據(jù)值(710)。[0125]哈希模塊230可至少部分基于上述解密數(shù)據(jù)值及上述解密數(shù)據(jù)值在數(shù)據(jù)表270內的位置信息,生成與上述解密數(shù)據(jù)值匹配的哈希值(730)。[0126]完整性驗證模塊260可通過對所生成的上述哈希值及存儲于上述永久存儲介質140上的哈希值進行比較,驗證上述解密數(shù)據(jù)的完整性(750)。存儲于上述永久存儲介質140上的哈希值可以是至少部分基于被解密的數(shù)據(jù)值被加密之前的純文本及上述純文本在數(shù)據(jù)表270內的位置信息生成的哈希值。當解密數(shù)據(jù)值與被加密的數(shù)據(jù)值的純文本相同、且上述解密數(shù)據(jù)值在數(shù)據(jù)表270內的位置與上述純文本在數(shù)據(jù)表270內的位置相同時,所存儲的哈希值和至少部分基于解密數(shù)據(jù)值及上述解密數(shù)據(jù)值在數(shù)據(jù)表270內的位置信息生成的哈希值有可能相同。此時,完整性驗證模塊260可判斷上述數(shù)據(jù)的完整性。[0127]圖8是本發(fā)明的一實施例的數(shù)據(jù)庫解密方法順序圖。[0128]在本發(fā)明的一實施例中,上述方法例如可通過數(shù)據(jù)庫服務器120的各模塊執(zhí)行。另外,如圖8所示的順序圖的各步驟不是必須的,可根據(jù)需要省略或添加部分步驟。[0129]如圖8所示的810步驟與如圖7所示的710步驟相同,因此對此的說明與上述內容一致。[0130]哈希模塊230可至少部分基于上述解密數(shù)據(jù)值及上述加密數(shù)據(jù)值在上述永久存儲介質140上的存儲位置信息,生成與上述解密數(shù)據(jù)值匹配的哈希值(830)。[0131]完整性驗證模塊260可通過對所生成的上述哈希值及存儲于上述永久存儲介質140上的哈希值進行比較,驗證上述解密數(shù)據(jù)的完整性(850)。存儲于上述永久存儲介質140上的哈希值可以是至少部分基于被解密的數(shù)據(jù)值被加密之前的純文本及上述純文本在永久存儲介質140上的位置信息生成的哈希值。當解密數(shù)據(jù)值與被加密的數(shù)據(jù)值的純文本相同、且上述解密數(shù)據(jù)值在被解密前在永久存儲介質140上的存儲位置及上述純文本的加密數(shù)據(jù)值在永久存儲介質140上的存儲位置相同時,所存儲的哈希值和至少部分基于上述解密數(shù)據(jù)值及上述加密數(shù)據(jù)值在永久存儲介質140上的存儲位置信息生成的哈希值有可能相同。此時,完整性驗證模塊260可判斷上述數(shù)據(jù)的完整性。[0132]本領域普通技術人員應當理解與在此公開的實施例相關的各種示例性邏輯塊、模塊、進程、方法、電路及算法步驟可通過電子硬件(為方便起見,在此稱為“軟件”)且可通過各種形式的程序和設計編碼或它們的組合實現(xiàn)。為明確說明硬件及軟件的上述相互兼容性,關于與各種示例性的元件、塊、模塊、電路及步驟及與其相關的功能已在上面進行了說明。上述功能是否通過硬件或軟件實現(xiàn)取決于對特定應用及整體系統(tǒng)的設計限制。本領域普通技術人員可通過各種方式實現(xiàn)對應用所說明的功能,但上述實現(xiàn)決定不應理解為超出本發(fā)明的范圍。[0133]在此公開的各種實施例可通過使用了方法、裝置或標準程序和/或工程技術的制造物品(article)實現(xiàn)。術語“制造物品”包括可以從任何計算機可讀裝置訪問的計算機程序、載體或介質(media)。例如,計算機可讀介質包括磁存儲裝置(例如,硬盤、軟盤、磁帶等)、光盤(例如,CD、DVD等)、智能卡及閃存裝置(例如,EEPR0M、卡、棒、鍵驅動等),但并不限于此。另外,在此公開的各種存儲介質可包括用于存儲信息的一個以上的裝置和/或其他機器可讀介質。術語“機器可讀介質”包括可存儲、保留和/或傳遞命令和/或數(shù)據(jù)的無線通道及各種其他介質,但并不限于此。[0134]包含在所公開的進程中的步驟的特定順序或分級結構應當理解為示例性接近的一例。應當理解為可基于設計優(yōu)先順序在本發(fā)明的范圍內重新排列進程中的步驟的特定順序或分級結構。所附的方法權利要求按樣品順序提供各種步驟的因素,但不限于所公開的特定順序或分級結構。[0135]對所揭示的實施例進行的說明用于幫助本領域的普通技術人員利用或實施本發(fā)明。本領域的普通技術人員應當能夠理解對所述實施例進行的多種變形,并且在不脫離本發(fā)明的范圍內,在此定義的一般原理可應用于其他實施例。因此,本發(fā)明不限于在此所揭示的實施例,而應當在與所揭示的原理和新的技術特征一致的范圍內對本發(fā)明進行解釋?!局鳈囗棥?.一種數(shù)據(jù)庫加密方法,用于對存儲于存儲器中的數(shù)據(jù)表所包含的數(shù)據(jù)值進行加密并存儲于永久存儲介質,所述數(shù)據(jù)庫加密方法的特征在于包括如下步驟:基于存儲于存儲器中的數(shù)據(jù)表所包含的數(shù)據(jù)值生成加密數(shù)據(jù)值的步驟;至少部分基于所述數(shù)據(jù)值和所述數(shù)據(jù)值的位置信息生成與所述加密數(shù)據(jù)值匹配的哈希值的步驟;以及決定將所述加密數(shù)據(jù)值和所述哈希值記錄于永久存儲介質的步驟。2.根據(jù)權利要求1所述的數(shù)據(jù)庫加密方法,其特征在于,所述數(shù)據(jù)值的位置信息包括行標識符和列密鑰中的至少一種。3.根據(jù)權利要求2所述的數(shù)據(jù)庫加密方法,其特征在于,所述列密鑰至少部分基于所述數(shù)據(jù)表的元信息,所述行標識符至少部分基于在數(shù)據(jù)塊上記錄所述數(shù)據(jù)值的位置。4.根據(jù)權利要求2所述的數(shù)據(jù)庫加密方法,其特征在于,生成所述哈希值的步驟包括如下步驟:至少部分基于所述數(shù)據(jù)表的元信息獲得所述列密鑰的步驟;至少部分基于在數(shù)據(jù)塊上記錄所述數(shù)據(jù)值的位置獲得所述行標識符的步驟;以及至少部分基于所述數(shù)據(jù)值、所述列密鑰及所述行標識符生成與所述加密數(shù)據(jù)值匹配的哈希值的步驟。5.根據(jù)權利要求1所述的數(shù)據(jù)庫加密方法,其特征在于,還包括決定對所述數(shù)據(jù)表的一個以上的列的數(shù)據(jù)值進行加密的步驟,對決定加密的所述一個以上的列的數(shù)據(jù)值執(zhí)行以上各步驟。6.根據(jù)權利要求1所述的數(shù)據(jù)庫加密方法,其特征在于,當被加密的所述數(shù)據(jù)值有更新時,還包括如下步驟:基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值的步驟;決定將所述第二加密數(shù)據(jù)值存儲于與所述加密數(shù)據(jù)值的位置不同的第二位置的步驟;至少部分基于所述更新數(shù)據(jù)值和所述第二位置的位置信息生成與所述第二加密數(shù)據(jù)值匹配的第二哈希值的步驟;以及決定將所述第二加密數(shù)據(jù)值和所述第二哈希值記錄于所述永久存儲介質的步驟。7.根據(jù)權利要求1所述的數(shù)據(jù)庫加密方法,其特征在于,還包括基于所述加密數(shù)據(jù)值和所述哈希值在所述永久存儲介質的塊上生成校驗和的步驟。8.根據(jù)權利要求1所述的數(shù)據(jù)庫加密方法,其特征在于,生成所述加密數(shù)據(jù)值的步驟包括如下步驟:基于加密密鑰中包含的加密信息決定加密函數(shù)的步驟;以及利用基于所述數(shù)據(jù)值進行計算的所述加密函數(shù)生成加密數(shù)據(jù)值的步驟。9.根據(jù)權利要求8所述的數(shù)據(jù)庫加密方法,其特征在于,所述加密密鑰至少包括與加密模式相關的信息、加密數(shù)據(jù)類型及數(shù)據(jù)長度信息,所述加密模式至少包括數(shù)據(jù)加密標準、三重數(shù)據(jù)加密標準、高級加密標準中的一種。10.—種數(shù)據(jù)庫加密方法,用于對存儲于存儲器中的數(shù)據(jù)表所包含的數(shù)據(jù)值進行加密并存儲于永久存儲介質,所述數(shù)據(jù)庫加密方法的特征在于包括如下步驟:基于存儲于存儲器中的數(shù)據(jù)表所包含的數(shù)據(jù)值生成加密數(shù)據(jù)值的步驟;至少部分基于所述數(shù)據(jù)值和在永久存儲介質上存儲所述數(shù)據(jù)值的存儲位置信息生成與所述加密數(shù)據(jù)值匹配的哈希值的步驟;以及決定將所述加密數(shù)據(jù)值和所述哈希值記錄于永久存儲介質的步驟。11.根據(jù)權利要求10所述的數(shù)據(jù)庫加密方法,其特征在于,當被加密的所述數(shù)據(jù)值有更新時,還包括如下步驟:基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值的步驟;決定將所述第二加密數(shù)據(jù)值存儲于所述永久存儲介質上的與所述加密數(shù)據(jù)值在所述永久存儲介質上的位置不同的第二位置的步驟;至少部分基于所述更新數(shù)據(jù)值和所述第二位置的位置信息生成與所述第二加密數(shù)據(jù)值匹配的第二哈希值的步驟;以及決定將所述第二加密數(shù)據(jù)值和所述第二哈希值記錄于所述永久存儲介質的步驟。12.—種數(shù)據(jù)庫加密方法,其特征在于包括如下步驟:當被加密的數(shù)據(jù)值有更新時,基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值的步驟;決定將所述第二加密數(shù)據(jù)值存儲于與加密數(shù)據(jù)值的位置不同的第二位置的步驟;至少部分基于所述更新數(shù)據(jù)值和所述第二位置的位置信息生成與所述第二加密數(shù)據(jù)值匹配的哈希值的步驟;以及決定將所述第二加密數(shù)據(jù)值和所述哈希值記錄于永久存儲介質的步驟。13.—種數(shù)據(jù)庫加密方法,其特征在于包括如下步驟:當被加密的數(shù)據(jù)值有更新時,基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值的步驟;決定將所述第二加密數(shù)據(jù)值存儲于永久存儲介質上的與加密數(shù)據(jù)值在所述永久存儲介質上的位置不同的第二位置的步驟;至少部分基于所述更新數(shù)據(jù)值和所述第二位置的位置信息生成與所述第二加密數(shù)據(jù)值匹配的哈希值的步驟;以及決定將所述第二加密數(shù)據(jù)值和所述哈希值記錄于所述永久存儲介質的步驟。14.一種數(shù)據(jù)庫加密方法,用于驗證存儲于永久存儲介質中的加密數(shù)據(jù)的完整性,其特征在于包括如下步驟:基于存儲于所述永久存儲介質中的加密數(shù)據(jù)值生成解密數(shù)據(jù)值的步驟;至少部分基于所述解密數(shù)據(jù)值和所述解密數(shù)據(jù)值在數(shù)據(jù)表內的位置信息生成與所述解密數(shù)據(jù)值匹配的哈希值的步驟;以及通過比較所生成的所述哈希值和存儲于所述永久存儲介質中的哈希值驗證所述解密數(shù)據(jù)的完整性的步驟。15.—種數(shù)據(jù)庫加密方法,用于驗證存儲于永久存儲介質中的加密數(shù)據(jù)的完整性,其特征在于包括如下步驟:基于存儲于所述永久存儲介質中的加密數(shù)據(jù)值生成解密數(shù)據(jù)值的步驟;至少部分基于所述解密數(shù)據(jù)值和所述加密數(shù)據(jù)值在所述永久存儲介質中的存儲位置信息生成與所述解密數(shù)據(jù)值匹配的哈希值的步驟;以及通過比較所生成的所述哈希值和存儲于所述永久存儲介質中的哈希值驗證所述解密數(shù)據(jù)的完整性的步驟。16.—種數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器用于提供數(shù)據(jù)安全,其特征在于包括:存儲器,存儲包含數(shù)據(jù)值的數(shù)據(jù)表;加密模塊,基于所述數(shù)據(jù)值生成加密數(shù)據(jù)值;哈希模塊,至少部分基于所述數(shù)據(jù)值和所述數(shù)據(jù)值的位置信息生成與所述加密數(shù)據(jù)值匹配的哈希值;以及永久存儲介質,記錄所述加密數(shù)據(jù)值和所述哈希值。17.—種數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器用于提供數(shù)據(jù)安全,其特征在于包括:存儲器,存儲包含數(shù)據(jù)值的數(shù)據(jù)表;加密模塊,基于所述數(shù)據(jù)值生成加密數(shù)據(jù)值;哈希模塊,至少部分基于所述數(shù)據(jù)值和在永久存儲介質上存儲所述數(shù)據(jù)值的存儲位置信息生成與所述加密數(shù)據(jù)值匹配的哈希值;以及所述永久存儲介質,記錄所述加密數(shù)據(jù)值和所述哈希值。18.—種數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器用于提供數(shù)據(jù)安全,其特征在于包括:加密模塊,當被加密的數(shù)據(jù)值有更新時,基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值;存儲模塊,決定將所述第二加密數(shù)據(jù)值存儲于與加密數(shù)據(jù)值的位置不同的第二位置;哈希模塊,至少部分基于所述更新數(shù)據(jù)值和所述第二位置的位置信息生成與所述第二加密數(shù)據(jù)值匹配的哈希值;以及永久存儲介質,記錄所述第二加密數(shù)據(jù)值和所述哈希值。19.一種數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器用于提供數(shù)據(jù)安全,其特征在于包括:加密模塊,當被加密的數(shù)據(jù)值有更新時,基于更新數(shù)據(jù)值生成第二加密數(shù)據(jù)值;存儲模塊,決定將所述第二加密數(shù)據(jù)值存儲于永久存儲介質上的與加密數(shù)據(jù)值在所述永久存儲介質上的位置不同的第二位置;哈希模塊,至少部分基于所述更新數(shù)據(jù)值和所述第二位置的位置信息生成與所述第二加密數(shù)據(jù)值匹配的哈希值;以及所述永久存儲介質,記錄所述第二加密數(shù)據(jù)值和所述哈希值。20.—種數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器用于驗證存儲于永久存儲介質中的加密數(shù)據(jù)值的完整性,其特征在于包括:永久存儲介質,存儲所述加密數(shù)據(jù)值和第一哈希值;解密模塊,基于存儲于所述永久存儲介質的加密數(shù)據(jù)值生成解密數(shù)據(jù)值;哈希模塊,至少部分基于所述解密數(shù)據(jù)值和所述解密數(shù)據(jù)值在數(shù)據(jù)表內的位置信息生成與所述解密數(shù)據(jù)值匹配的第二哈希值;以及完整性驗證模塊,通過比較所述第一哈希值和所述第二哈希值驗證所述解密數(shù)據(jù)值的完整性。21.—種數(shù)據(jù)庫服務器,所述數(shù)據(jù)庫服務器用于驗證存儲于永久存儲介質中的加密數(shù)據(jù)值的完整性,其特征在于包括:永久存儲介質,存儲所述加密數(shù)據(jù)值和第一哈希值;解密模塊,基于存儲于所述永久存儲介質的加密數(shù)據(jù)值生成解密數(shù)據(jù)值;哈希模塊,至少部分基于所述解密數(shù)據(jù)值和所述加密數(shù)據(jù)值在所述永久存儲介質中的存儲位置信息生成與所述解密數(shù)據(jù)值匹配的第二哈希值;以及完整性驗證模塊,通過比較所述第一哈希值和所述第二哈希值驗證所述解密數(shù)據(jù)值的完整性?!疚臋n編號】G06F21/62GK106022154SQ201510347270【公開日】2016年10月12日【申請日】2015年6月19日【發(fā)明人】尹晶,尹晶一,樸相永【申請人】株式會社特邁數(shù)據(jù)