本說明書實施例屬于數(shù)據(jù)處理領域,尤其涉及一種保護隱私的多方數(shù)據(jù)處理方法和計算設備。
背景技術:
1、在保護隱私的多方計算場景中,兩個參與方經(jīng)常需要共同計算兩方的向量的內(nèi)積,而不泄露各自的向量信息。具體是,假設有p0,p1兩個參與方,他們分別持有向量集其中,每個向量的長度都是l,n通??梢詾閹装佟珟兹f的數(shù)值,l例如為16等。p0,p1要通過某種安全的方法計算這些向量的內(nèi)積(符號<·,·>表示向量的內(nèi)積,下文中也用向量之間的“·”表示內(nèi)積),在計算結果例如由p0得到的情況下,需要滿足:p0只能得到內(nèi)積結果,不能得到除內(nèi)積之外的任何關于ui的信息,p1無法得到關于p0的向量vi的任何信息。
2、在一種技術方案中,利用同態(tài)加密解決上述問題。例如,可以使用paillier同態(tài)加密算法。首先p0將自己的向量加密,由于每個向量包含l個整數(shù),因此每個向量被加密成l個密文,p0共有n個向量,因此需要傳輸nl個密文給p1。p1收到密文后,通過密文乘明文操作計算乘法,而后通過密文加法得到密態(tài)的內(nèi)積結果,共n個密文。最后將這n個密文返回給p0,由p0來解密,得到最后的內(nèi)積結果。然而,使用paillier(以及類似的)同態(tài)加密方案,密文尺寸較大,使得通信量較大,并且計算量較大。
技術實現(xiàn)思路
1、本發(fā)明的目的在于提供一種保護隱私的多方數(shù)據(jù)處理方法,使得兩個參與方以減小的計算量和通信數(shù)據(jù)量批量得到多組向量之間的內(nèi)積。
2、本說明書第一方面提供一種保護隱私的多方數(shù)據(jù)處理方法,所述多方包括第一方和第二方,所述第一方擁有順序排列的h個第一實數(shù)向量,所述第二方擁有順序排列的h個第二實數(shù)向量,其中,相同順序的第一實數(shù)向量和第二實數(shù)向量為待計算內(nèi)積的一組實數(shù)向量,所述方法包括:
3、所述第一方執(zhí)行如下步驟:
4、將所述h個第一實數(shù)向量合并為第一合并向量,其中,所述h對應于n/l,所述h個第一實數(shù)向量中的每組相同位置的h個分量在所述第一合并向量中連續(xù)排列,所述n為預設多項式空間中的多項式的項數(shù),所述第一實數(shù)向量和所述第二實數(shù)向量包括l個分量;
5、對所述第一合并向量進行同態(tài)加密,得到第一密文,所述第一密文包括所述多項式空間中的多項式;
6、將所述第一密文發(fā)送給所述第二方;
7、所述第二方執(zhí)行如下步驟:
8、將所述h個第二實數(shù)向量合并為第二合并向量,其中,所述h個第二實數(shù)向量中的每組相同位置的h個分量在所述第二合并向量中連續(xù)排列;
9、將所述第二合并向量轉(zhuǎn)換為第二明文多項式,所述第二明文多項式包括n項;
10、計算所述第一密文與所述第二明文多項式的乘積,得到第二密文;
11、對所述第二密文進行同態(tài)運算,得到第三密文,所述第三密文對應的明文向量的多個分量中包括所述h組實數(shù)向量中各組實數(shù)向量的內(nèi)積。
12、本說明書第二方面提供一種保護隱私的多方數(shù)據(jù)處理方法,所述多方包括第一方和第二方,所述第一方擁有順序排列的h個第一實數(shù)向量,所述第二方擁有順序排列的h個第二實數(shù)向量,其中,相同順序的第一實數(shù)向量和第二實數(shù)向量為待計算內(nèi)積的一組實數(shù)向量,所述方法由所述第一方執(zhí)行,包括:
13、將所述h個第一實數(shù)向量合并為第一合并向量,其中,所述h對應于n/l,所述h個第一實數(shù)向量中的每組相同位置的h個分量在所述第一合并向量中連續(xù)排列,所述n為預設多項式空間中的多項式的項數(shù),所述第一實數(shù)向量和所述第二實數(shù)向量包括l個分量;
14、對所述第一合并向量進行同態(tài)加密,得到第一密文,所述第一密文包括所述多項式空間中的多項式;
15、將所述第一密文發(fā)送給所述第二方。
16、本說明書第三方面提供一種保護隱私的多方數(shù)據(jù)處理方法,所述多方包括第一方和第二方,所述第一方擁有順序排列的h個第一實數(shù)向量,所述第二方擁有順序排列的h個第二實數(shù)向量,其中,相同順序的第一實數(shù)向量和第二實數(shù)向量為待計算內(nèi)積的一組實數(shù)向量,所述方法由所述第二方執(zhí)行,包括:
17、從所述第一方接收第一密文,所述第一密文為第一合并向量的同態(tài)密文,所述第一合并向量通過合并所述h個第一實數(shù)向量得到,其中,所述h對應于n/l,所述h個第一實數(shù)向量中的每組相同位置的h個分量在所述第一合并向量中連續(xù)排列,所述n為預設多項式空間中的多項式的項數(shù),所述第一實數(shù)向量和所述第二實數(shù)向量包括l個分量;
18、將所述h個第二實數(shù)向量合并為第二合并向量,其中,所述h個第二實數(shù)向量中的每組相同位置的h個分量在所述第二合并向量中連續(xù)排列;
19、將所述第二合并向量轉(zhuǎn)換為第二明文多項式,所述第二明文多項式包括n項;
20、計算所述第一密文與所述第二明文多項式的乘積,得到第二密文;
21、對所述第二密文進行同態(tài)運算,得到第三密文,所述第三密文對應的明文向量的多個分量中包括所述h組實數(shù)向量中各組實數(shù)向量的內(nèi)積。
22、本說明書第四方面提供一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,當所述計算機程序在計算機中執(zhí)行時,令計算機執(zhí)行第一方面~第三方面中任一方面所述的方法。
23、本說明書第五方面提供一種計算設備,包括存儲器和處理器,所述存儲器中存儲有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時,實現(xiàn)第一方面~第三方面中任一方面所述的方法。
24、本說明書第六方面提供一種計算機程序產(chǎn)品,包括計算機程序/指令,該計算機程序/指令被處理器執(zhí)行時實現(xiàn)第一方面~第三方面中任一方面所述方法的步驟。
25、通過本說明書實施例的保護隱私的多方數(shù)據(jù)處理方案,每個參與方通過以特定方式將其多個實數(shù)向量打包到一個長向量中,從而可通過同態(tài)運算批量地得到多對實數(shù)向量的內(nèi)積vi·ui,并且保護各個參與方的向量的信息不泄露給其他參與方,如此,減少了多方數(shù)據(jù)處理過程中各個參與方的計算量和通信數(shù)據(jù)量。
1.一種保護隱私的多方數(shù)據(jù)處理方法,所述多方包括第一方和第二方,所述第一方擁有順序排列的h個第一實數(shù)向量,所述第二方擁有順序排列的h個第二實數(shù)向量,其中,相同順序的第一實數(shù)向量和第二實數(shù)向量為待計算內(nèi)積的一組實數(shù)向量,所述方法包括:
2.根據(jù)權利要求1所述的方法,所述將所述h個第一實數(shù)向量合并為第一合并向量,包括:
3.根據(jù)權利要求2所述的方法,所述將所述h個第二實數(shù)向量合并為第二合并向量,包括:
4.根據(jù)權利要求3所述的方法,所述第一方擁有n組順序排列的h個第一實數(shù)向量,所述第二方擁有n組順序排列的h個第二實數(shù)向量,所述將所述h個第二實數(shù)向量合并為第二合并向量,包括:
5.根據(jù)權利要求4所述的方法,所述對所述第二密文進行同態(tài)運算,得到第三密文,包括:
6.根據(jù)權利要求5所述的方法,所述基于第六密文和l進行旋轉(zhuǎn)和相加的同態(tài)運算得到第七密文,包括:
7.根據(jù)權利要求6所述的方法,所述第七密文對應的明文多項式中相鄰非零項的系數(shù)對應的x的冪次方相差n/l,所述方法還包括:
8.一種保護隱私的多方數(shù)據(jù)處理方法,所述多方包括第一方和第二方,所述第一方擁有順序排列的h個第一實數(shù)向量,所述第二方擁有順序排列的h個第二實數(shù)向量,其中,相同順序的第一實數(shù)向量和第二實數(shù)向量為待計算內(nèi)積的一組實數(shù)向量,所述方法由所述第一方執(zhí)行,包括:
9.一種保護隱私的多方數(shù)據(jù)處理方法,所述多方包括第一方和第二方,所述第一方擁有順序排列的h個第一實數(shù)向量,所述第二方擁有順序排列的h個第二實數(shù)向量,其中,相同順序的第一實數(shù)向量和第二實數(shù)向量為待計算內(nèi)積的一組實數(shù)向量,所述方法由所述第二方執(zhí)行,包括:
10.一種計算設備,包括存儲器和處理器,所述存儲器中存儲有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時,實現(xiàn)權利要求1-9中任一項所述的方法。