Encryption

搜尋加密數據

  • January 9, 2019

正如標題所說,我正在研究如何搜尋加密數據。而且,我看到 cryptDB 使用了 Song 等人的文章Practical Techniques for Searches on Encrypted Data中的加密方案來搜尋加密數據上的單詞。但是為什麼他們不對每個單詞使用 DET 加密,而搜尋一個單詞只是加密一個單詞並進行比較呢?

如果你用ECB模式加密的話,就會洩露我們稱之為頻率攻擊的資訊。攻擊者可以看到哪些單詞在行中重複,並嘗試提取資訊,特別是如果攻擊者對數據庫中包含的數據有一定的了解。

如果使用 ECB 模式加密,我們可以在一個小的 SEARCH 列中看到這一點;

| ID  |...| SEARCH                                         |
| x01 |...| 0xF41, 0x650, 0x086, 0x331 ....                |
| x02 |...| 0xF41, 0x165, 0x086, 0x63f, 0x754 ....         |
| x03 |...| 0x650, 0x331, 0x1E6, 0x12f, 0x004 ....         |

如您所見,如果您直接使用 ECB 模式,您可以從 SEARCH 行中提取資訊。在 CryptDB 中使用ECB列是您的選擇。如果您認為數據容易受到攻擊,請不要使用該ECB模式。

他們沒有使用ECB,而是選擇將Song的作品修改

他們用標準分隔符分割單詞,刪除重複,隨機排列重複的單詞,將每個單詞填充成相同的大小,然後加密。

他們聲稱他們的模式SEARCH幾乎和他們的模式一樣安全RND,CBC 模式對每個加密都具有隨機 IV。他們還聲稱,DBMS 伺服器無法區分一個單詞是否在多行中重複,它只會通過比較RND列和SEARCH列的大小來洩漏不同單詞的數量。

從他們的文章中不清楚這對性能有何影響。實際上,很明顯,每行使用不同密鑰的加密不是在數據庫上執行的。整個系統的負擔都基於Proxy-Server,本文沒有衡量到代理伺服器的成本。

引用自:https://crypto.stackexchange.com/questions/66362