
如何在數據庫中秘密地查詢隱私數據
日常生活中經常會出現這樣的場景:你想在數據庫上查詢某個東西,但卻不希望留下線索,讓別人知道你查詢了什么。比方說,投資人可能會在數據庫上查詢某支股票的信息,但卻不希望任何人知道他感興趣的股票究竟是哪一支??瓷先?,似乎唯一的辦法就是把整個數據庫全部拷回家。然而,這些數據往往都擁有非常龐大的體積,全部拷走通常都是很不現實的;另外,考慮到數據內容的隱私性和數據本身的寶貴價值,數據的持有者通常也不允許其他人把整個數據全盤拷走。不過,隨著分布式數據庫的廣泛應用,上面的難題有了一個兩全其美的好辦法:假設有兩個內容完全相同的數據庫,投資人可以先在第一個數據庫上執行一個不會透露目的的查詢,再在另一個數據庫上執行另一個不會透露目的的查詢,兩次查詢結合起來便能推出想要的結果。只要沒有人刻意去收集并且對比兩個數據庫的查詢記錄,那么誰也不會知道投資人真正想要查詢的是什么。在這個背景下,我們有了下面這個有趣的問題。
服務器隨機產生了一個 {1, 2, …, 100} 的子集 S ,并且同時發送給了 A 和 B 兩名前臺工作人員。 A 、 B 兩名前臺都接受其他人的提問,但為了保護數據,兩個人都只能用“是”或者“否”來回答問題,并且都不允許同一個人重復提問。你非常關心某個數 n 是否在這個子集里。其實,你本來可以直接問 A 和 B 中的任何一個人“數字 n 是否在集合 S 里”,但是這樣一來,對方就知道了你想要查詢的是什么。為此,你可以向 A 和 B 各問一個問題(結合兩人的回答便能推出集合 S 里是否包含數字 n ),但卻不能讓 A 和 B 當中的任何一個人知道你查詢的是哪個數(我們假設 A 、 B 兩人不會串通起來,把他們各自收到的問題聯系在一起)。事實上,你需要保證 A 和 B 兩人都不能從你的問題中獲取到任何信息,也就是說,對于 A 和 B 當中的任何一個人來說,各種問題出現的概率不會隨著 n 值的改變而改變。再換句話說,如果 n 的值變了,那么 A 和 B 各自將會聽到的問題應該擁有和原來相同的概率分布。
答案:首先,自己隨機生成一個 {1, 2, …, 100} 的子集 T1 (每個數都有 1/2 的概率被選進 T1 )。如果 T1 里面正好包含數字 n ,那么就把 T1 里的數字 n 去掉,把所得的結果記作 T2 ;如果 T1 里面沒有數字 n ,那么就在 T1 中加入數字 n ,從而得到 T2 ?,F在,將 T1 發送給 A ,并詢問 T1 里面是否有偶數個數正好也在 S 里。類似地,再將 T2 發送給 B ,并且詢問同樣的問題:在 T2 里面是否有偶數個數同時也屬于 S 。注意, T1 和 T2 的唯一差別,就是一個里面有 n 一個里面沒有 n 。因此,如果 A 和 B 的回答是一致的,就說明數字 n 不在 S 里面;如果 A 和 B 的回答不一致,就說明數字 n 在 S 里面。另外,容易看出,不管是 T1 還是 T2 ,從 1 到 100 每個數在里面出現的概率都是 1/2 。因此,不管是 A 還是 B ,他被問到的問題都總是具有完全相同的概率分布,這不隨 n 的變化而變化。
這種方案的缺陷就是,每條詢問都非常長。為了描述 T1 或者 T2 ,我們需要使用一個 100 位的 01 串,它一共有 100 個 bit 。如果 S 不是 {1, 2, …, 100} 的子集,而是 {1, 2, …, N} 的子集,那么在上述方案中,我們需要給 A 、 B 各發送 O(N) 個 bit 的數據。在 N 非常大的情況下,這么做同樣是不現實的。有趣的是,如果前臺不止兩個人,而是四個人的話,那么我們可以做得更好:我們可以給四個人都只發送 O(√N) 個 bit 的數據,并且同樣保證每個人都不能從中推出任何信息來。
為了便于說明,我們現在假設 S 是 {0, 1, 2, …, 99} 的一個子集。假設你想要知道, 67 是否在集合 S 里。于是,你首先隨機生成一個 {0, 1, 2, …, 9} 的子集 T1 ,然后在里面加上數字 6 (如果 T1 里沒有 6 的話)或者去掉數字 6 (如果 T1 里有 6 的話),得到 T2;再生成另一個 {0, 1, 2, …, 9} 的子集 T3 ,然后在里面加上數字 7 (如果 T3 里沒有 7 的話)或者去掉數字 7 (如果 T3 里有 7 的話),得到子集 T4 。接下來,向 A 、 B 、 C 、 D 依次詢問下面四個問題
如果 T1 等于 {2, 4, 7, 8, 6} ,那么 T2 就應該等于 {2, 4, 7, 8} ;如果 T3 等于 {2, 3, 5} ,那么 T4 就應該等于 {2, 3, 5, 7} 。四次詢問之后我們便可得知,在下圖各種顏色的方框中,屬于集合 S 的數有奇數個還是偶數個。結合 A 、 B 的回答(藍色方框和黃色方框),我們就能推出,在集合 S 當中,十位數屬于 T1 并且個位數恰好為 7 的數有奇數個還是偶數個;結合 C 、 D 的回答(紅色方框和綠色方框),我們就能推出,在集合 S 當中,十位數屬于 T2 并且個位數恰好為 7 的數有奇數個還是偶數個。于是,我們就可以知道,十位數恰好為 6 并且個位數恰好為 7 的數是否在集合 S 當中了。
類似地,如果集合 S 是 {1, 2, …, N} 的子集,那么我們可以對這 N 個數進行重新編碼,使得每個數都由高位和低位組成。那么,高位和低位的取值范圍都是從 1 到 √N 。在整個協議中,我們需要給每個人發送兩個 {1, 2, …, √N} 的子集,這相當于兩個 √N 位的 01 串,因此其數據量為 2√N 個 bit ,也就是 O(√N) 個 bit 。
不過,請注意,雖然與每個人交流的數據量少了,但這次卻有四個人了,因而你需要發送四個這么大的數據。當 N 很小的時候, 4 · 2√N 很可能反而比 2 · N 更大。
同樣地,如果我們有 2d 個人,我們就可以把 1 到 N 里面的所有數都看作 d 位數,每一位的取值范圍是從 1 到 N1/d 。為了完成一次查詢,我們需要給每個人發送 d 個 {1, 2, …, N1/d} 的子集,因此總共需要發送 2d · d · N1/d 個 bit 。對于不同的 N ,我們可以選取最合適的 d ,使得 2d · d · N1/d 最小。例如,下圖所示的就是 N = 1 000 000 時函數 f(d) = 2d · d · N1/d 的圖像,可見 d = 4 時的通信成本是最低的。因此,如果查詢點足夠多的話,我們可以選擇在 16 個不同的地方進行查詢。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
2025 年,數據如同數字時代的 DNA,編碼著人類社會的未來圖景,驅動著商業時代的運轉。從全球互聯網用戶每天產生的2.5億TB數據, ...
2025-05-27CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25