Encryption
僅用於相互資訊共享的算法設計
Bob 和 Alice 各有一個他們想要保密的字元串。他們每個人都想知道他們的兩個字元串的按位與是什麼而不告訴對方或其他任何人聽他們交換他們的實際位字元串……他們怎麼能這樣做?請記住,即使他們都持有兩個位字元串的 AND,他們仍然不能準確計算對方的字元串(當然,除非他們的字元串之一全是 1)。
我知道我以前在某種互密鑰系統/投票系統中看到過類似的東西,但我不記得在哪裡。它必須像製作一個私人隨機密鑰,異或它並以某種方式使用它……但我無法弄清楚細節。那裡有任何聰明的加密設計人員嗎?
理論 CS 上的Aaron Roth非常友好地回答了以下任何感興趣的人的答案。
你想要做的就是所謂的“Private Set Intersection”。您可以將 Alice 和 Bob 視為各自持有的集合(他們的字元串為“1”的索引),並且他們想要計算交集(按位與),這樣他們都不會了解對方的集合,除了什麼是由交叉點本身暗示。
這個問題很好研究。例如,參見 Freedman、Nissim 和 Pinkas:http ://www.pinkas.net/PAPERS/FNP04.pdf
亂碼電路可能是實現此目的的好方法。有很多庫可以讓您輕鬆完成亂碼電路。想到的兩個是Fairplay/FairplayMP,或者是由弗吉尼亞大學完成的更新的系統。
與您引用的論文相比,這些系統的優勢在於它們不使用公鑰加密,因此它們應該更快。如果您使用 UVa 系統,我希望您的表現與他們在漢明距離上的結果相似。