過去研究中,許多研究者提出不同的資料完整性檢查協定,例如:PDP、POR 等。
Giuseppe Ateniese et al.[4]提出的 PDP 協定是最先提出並較完整的資料完整性檢查協定。
PDP 為基礎的完整性檢查協定中通常有五個階段。
第四階段:雲端資料庫接收到使用者的 challenge 後利用 challenge 中的參數、儲存在本 地端的使用者的資料以及認證碼計算證明碼 ( proof ),再傳送給使用者。 數時間,Feifei Liu et al.[6]提出比較有效的動態更新資料完整性檢查協定,改善[5]。
Qian Wang et al.[7]提出了一個 Merkle Hash Tree 為基礎的完整性檢查協定。雖然此 協定可以提升資料庫安全性,必須要維護 Merkle Hash Tree 的資料結構及儲存大量的資 料區塊的 Hash。圖 2 顯示一個檔案切成 n 個區塊後,資料庫中除了要儲存 n 個資料區 塊( Data Block )及它們的 hash 值( Hash of Data Block )以外需要儲存個別 hash 值延升出 來的 hash 值( Redundant Storage of Hash Block ),共有( n-1 )個 hash。並且完整性檢查的 過程中,除了要傳送檢查資料的 hash 以外與它相鄰的 hash 以及所有與此資料有關的路 徑上的 hash 給使用者,以便能夠檢查 hash Root 的正確性。這會讓運算成本增加以外傳 輸成本也會跟著增加。如果此方法使用在龐大的資料(例如:雲端儲存空間上儲存的資 料、資料庫中的資料)完整性檢查時,除了儲存成本增加以外計算及傳輸成本也會越來 越可觀。
圖 2 Merkle Hash Tree
Zhuo Hao et al.[10]提出的完整性驗證協定也是基礎在 PDP 的協定。計算認證碼的建 造方式參考於[4]的方法。S-PDP[4]提出的使用者自己執行的完整性驗證。為了減輕使用 者負擔,Zhuo Hao [10]提出交給第三方驗證資料的完整性,欲保證資料的隱私性( privacy preserving ),也就是資料交給第三方驗證完整性時,資料擁有者不需要擔心洩漏資料的 隱私。任何第三方驗證者都可以利用公開資訊幫資料擁有者驗證資料的完整性。並且可 以動態的更新(Dynamic Data)資料的功能,包含插入、更新及刪除資料等。安全分析也 是與[4]的安全性證明一樣基礎在 KEA1- assumption 上面。Syam Kumar P et al.[11]提出 的完整性檢查協定的安全性建立在橢圓曲線密碼及 Sobol Sequence(亂數取樣)上面。雖 然橢圓曲線密碼只用了較小的金鑰長度就有 RSA 一樣的安全性,且可以應用在計算能 力有限的裝置上,而 PDP 的安全程度建立在指數運算的難度上,此安全性等於橢圓曲 線密碼上點與點之間的相乘。因此這篇提出的方法與 PDP 協定安全等級一樣,另一種 表示方式而已。Hamidah Ibrahim[13]以及 Ali Amer Alwan et al.[14]提出的資料完整性檢 查在於關聯式資料庫中,更新資料後檢查是否符合資料欄位規定的型態,而非檢查資料 本身的完整性驗證。
Raluca Ada Popa et al.[3]提出安全的關聯式資料庫上 SQL 查詢,包含相等方式比對 ( DET )、order preserving encryption ( SORT, MAX, MIN )、整數資料的加總查詢( SUM ) 等的查詢,且也提出了關鍵字查詢( Keyword Search )。藉用 SQL代理伺服器的計算能力,
改寫 SQL 查詢封包內容與資料庫溝通。為了保護使用者資料的安全,提出了新的加密 技術“onions of encryption ”。利用多層的加密方式,資料庫中儲存的資料表及資料欄位 的名稱與資料一併加密,資料表以及資料名稱重新命名成非資料擁有者猜測不出資料欄 位中儲存的資料內容資訊。並且每一種 SQL 查詢層利用不同的加密技術,包含 AES-CBC mode 加密安全性最高的外層、整數資料的加總層利用 paillier 技術加密、相等方式比對 ( DET )資料層卻利用 AES-CMC mode 的加密技術以及利用 Song et al.[19]提出的加密技 術實作關鍵字查詢( Keyword Search )等。雖然此系統利用各種不同的加密技術達到許多 功能,卻沒提供資料庫安全原理中最重要的一項,資料完整性檢查功能。