• 沒有找到結果。

第三章 即時稽核架構

第二節 Aggregate Hash

2.1 資料結構

在這一節中,將會介紹實驗室的研究成果 Aggregate Hash,Aggregate Hash 是利用數學中的同餘(modulo)[14]來產生密碼學證據,需要宣告一個大質數 P 與

一個固定長度的一維陣列並將陣列中的值設為1,接著使用一個 Index function Γ 計算來得到其該存放到陣列中的哪個位置,此Index function Γ 如下。

𝚪(𝐂𝐨𝐧𝐝𝐢𝐭𝐢𝐨𝐧) = 𝐒𝐇𝐀𝟐𝟓𝟔(𝐂𝐨𝐧𝐝𝐢𝐭𝐢𝐨𝐧) 𝐦𝐨𝐝 𝐀𝐫𝐫𝐚𝐲𝐒𝐢𝐳𝐞

其中 Condition 為使用者查詢資料時經常使用的欄位條件,例如 id=10、

22000<Salary<50000 等。定位後將那一筆 row 的證據儲存在該位置,陣列是利用 (key, value)的方式儲存,儲存格式如下。

𝐱 = 𝚪(𝐂𝐨𝐧𝐝𝐢𝐭𝐢𝐨𝐧) 𝐤𝐞𝐲 = 𝐂𝐨𝐧𝐝𝐢𝐭𝐢𝐨𝐧

𝐯𝐚𝐥𝐮𝐞 = [𝐡(𝐫𝐨𝐰𝐡𝐚𝐬𝐡(𝐱)), 𝐡(𝐫𝐨𝐰𝐡𝐚𝐬𝐡(𝐱 − 𝟏)), 𝐡(𝐫𝐨𝐰𝐡𝐚𝐬𝐡(𝐱 + 𝟏))]

儲存後需要將陣列中的每一個slot都計算出一個證據,其證據的計算方式如

下。

𝐀𝐫𝐫𝐚𝐲[𝐱] = 𝟏 × 𝐡(𝐯𝐚𝐥𝐮𝐞𝟏) × 𝐡(𝐯𝐚𝐥𝐮𝐞𝟐) × … × 𝐡(𝐯𝐚𝐥𝐮𝐞𝐧) 𝐦𝐨𝐝 𝐏

用戶必須要保存整個陣列用來稽核,當每一個slot都計算完之後,將這些證

據結合成一個證據,其計算方式如下。

𝐀𝐇 = 𝐀𝐫𝐫𝐚𝐲[𝟎] × 𝐀𝐫𝐫𝐚𝐲[𝟏] × … × 𝐀𝐫𝐫𝐚𝐲[𝐧] 𝐦𝐨𝐝 𝐏

這個AH值可以拿來對雲端資料庫作稽核的一個依據,AH還要交由雙方進行 簽章並互相保存以支援POV。

2.2 SQL 指令結果之稽核流程

在即時稽核架構中,分別有同步伺服器、用戶端裝置、雲端服務提供者三個 角色,我們將介紹在每一個SQL 指令中,稽核的詳細流程。

Select operation:

Step1: 用戶端向同步伺服器拿最新的 AH 及作為證據的 Array

Step2: 用戶端向雲端資料庫發出 Select operation 請求

Step3: 服務提供者將 Select operation 結果及對應 slot 的內容取出 Step4: 服務提供者回傳 Select operation 結果及對應 slot 的內容 Step5: 用戶端透過 Select operation 結果及對應 slot 的內容稽核 Step6: 用戶端稽核完成,告知服務提供者

Insert operation:

Step1: 用戶端向同步伺服器拿最新的 AH 及作為證據的 Array Step2: 用戶端向雲端資料庫發出 Insert operation 請求

Step3: 服務提供者將 Insert operation 結果及對應 slot 的內容取出並計算新的 AH

Step4: 服務提供者回傳 Insert operation 結果、對應 slot 的內容、新的 AH 及

針對AH 所作簽章

Step5: 用戶端稽核舊的資料並更新 AH

Step6: 用戶端更新完成,回傳新的 AH 及雙方簽章給服務提供者及同步伺服

Delete operation:

Step1: 用戶端向同步伺服器拿最新的 AH 及作為證據的 Array Step2: 用戶端向雲端資料庫發出 Delete operation 請求

Step3: 服務提供者將 Delete operation 結果及對應 slot 的內容取出並計算新

的AH

Step4: 服務提供者回傳 Delete operation 結果、對應 slot 的內容、新的 AH 及

針對AH 所作簽章

Step5: 用戶端稽核舊的資料並更新 AH

Step6: 用戶端更新完成,回傳新的 AH 及雙方簽章給服務提供者及同步伺服

Update operation:

Step1: 用戶端向同步伺服器拿最新的 AH 及作為證據的 Array Step2: 用戶端向雲端資料庫發出 Update operation 請求

Step3: 服務提供者將 Update operation 結果及對應 slot 的內容取出並計算新

的AH

Step4: 服務提供者回傳 Update operation 結果、對應 slot 的內容、新的 AH

及針對AH 所作簽章

Step5: 用戶端稽核舊的資料並更新 AH

Step6: 用戶端更新完成,回傳新的 AH 及雙方簽章給服務提供者及同步伺服

2.3 稽核細節

當用戶向雲端服務提供者提出query 請求前,需先向同步伺服器拿取最新的 AH 及作為證據的 Array,query 請求後,服務提供者需利用 Condition 來進行定

位slot,取出與其相同 slot 的內容。回傳該 slot 內容與 query 結果後,用戶須先 使用query 的結果取 hash 比對 row hash,接著與其他內容回推該 slot 的值,如果 獲得的結果與在同步伺服器的內容相符的話,稽核成功,若失敗,則以服務提供 者所回傳的資訊與保存的雙方簽章作為證據,要求服務提供者進行賠償。

2.4 Range Selection

與IMT 相同,若只利用 slot hash 驗證,則無法檢查出少了資料,所以在 slot 的value 中,額外儲存了前後兩筆 row hash,在 Range Selection 的動作中,用戶

要要求服務提供者額外回傳前後兩筆 row 的資料,這樣就可以檢查服務提供者

是否有少給資料。

相關文件