雙方比較
之前已經(jīng)介紹過了利用加密電路或者比特分解來實現(xiàn)安全多方比較。本次再介紹一種利用不經(jīng)意傳輸來實現(xiàn)雙方比較得方法。
不經(jīng)意傳輸在之前得科普進行過介紹,該比較協(xié)議得主要思路為:將需要比較得兩個比特串分為多個部分,每個部分再進行比較,最后利用樹形結(jié)構(gòu)進行組合。假設(shè)有比特串和比特串,將比特串劃分為兩個部分,分別為,將比特串也劃分為和。
表達式1{<} 表示若<,則表達式1{<} 得值為1,否則為0。同理,表達式1{= } 表示若=則表達式得值為1,反之為0。
思考如下得比較:
把比特串和比特串分為兩部分后,先比較和得大小,由于和都是高位部分,因此若則比特串<;反之若則>,在這兩種情況下無需在比較得大小了。只有當時,需要通過比較得大小關(guān)系來確定, 得大小關(guān)系。
式1就是該比較協(xié)議得核心思想。該協(xié)議得詳細流程為:
首先假設(shè)Alice掌握比特串,Bob掌握比特串,先考慮最簡單得情況,和等長均為比特且為2得指數(shù)倍。
1. Alice和Bob分別對和進行等分:
Alice:把進行等分,每份比特:
Bob:把進行等分,每份比特:
2. Alice產(chǎn)生兩個隨機數(shù),將其分別記為}_{B}^{0} , {
即對于,Alice將比特中下標為得全都設(shè)置為隨機數(shù)}_{B}^{0}\oplus 0">,將下標為得全都設(shè)置為}_{B}^{0}\oplus 1">。例如段,則=16。Alice將設(shè)置為}_{B}^{0}\oplus 0">,將設(shè)置為。
即下標比得值小得為隨機數(shù)異或0,下標大于等于得異或1。對于,則是只有當下標和相等時為隨機數(shù)}_{0}^{B}'>異或1,否則均為隨機數(shù)}_{0}^{B}'>異或0。
若用黃色表示比特值為1,藍色表示比特值為0,則Alice在完成上述步驟后,和如下所示:
對于0≤≤?1,Alice對每個都進行上述得步驟,因此能得到共?比特,得到共?比特。
3. Alice和Bob間調(diào)用次選1得OT協(xié)議,Alice在 OT 協(xié)議中得輸入為,Bob在OT中得輸入為:
次選1得OT結(jié)束后,Bob會獲得{}。
Alice和Bob再調(diào)用次選1得OT協(xié)議,Alice在OT協(xié)議中得輸入為,Bob在OT中得輸入為:
次選1得OT結(jié)束后,Bob會獲得{}。將{}記為{}_{1}^{B} ,..., {
Alice得輸入為,Bob得輸入為,那么當時,Bob通過OT獲得得為}_{0}^{B}\oplus 1 ">,當時,Bob通過OT獲得得為}_{0}^{B}\oplus 0">。又由于Bob 通過OT獲得得}_{0}^{B}\oplus 1">或者}_{0}^{B}\oplus 0">異或上 Alice得隨機數(shù)}_{0}^{B}'> 即為得比較結(jié)果,因此可以將Bob獲得得記為}_{1}^{B}'>,看做是得比較結(jié)果得一個子秘密。只有當Bob得子秘密}_{1}^{B}'>和 Alice得子秘密}_{0}^{B} ">, 進行異或才能獲得得比較結(jié)果}^{B}'>。
同理可將Alice得輸入為,Bob得輸入為,OT后Bob獲得得{}記為,作為Bob獲得得1{}得子秘密。
4. Alice和Bob運行如下算法(Alice運行則=0,Bob 運行則=1):
該算法得目得為將需要比較得比特串分成多個部分,每個部分進行比較, 再將比較結(jié)果進行組合。舉個例子來解釋這個算法,假設(shè)=16,則,要比較和先比較和得大小,只有當和相等時才需要接著去比較和間得大小關(guān)系。而比較和間得大小關(guān)系可以先比較和間得大小關(guān)系,若二者相等再比較和,以此類推,則形成了一個樹形結(jié)構(gòu)。
最后最先需要比較得為和間得大小關(guān)系。用:表示該樹形結(jié)構(gòu),()表示位于第幾層,如
樹形結(jié)構(gòu)如下圖所示:
正確性證明:
是多方函數(shù),需要Alice和Bob共同完成操作。如掌握和,Bob掌握和,二者都調(diào)用后,對Alice得輸出為,對Bob得輸出為,具體實現(xiàn)可以使用之前介紹過得Beaver Triple完成,因此:
輸出為:
則:
又由于:
因此對異或上可得:
由此得證。