一種基于秘密分享的不經(jīng)意隨機(jī)打亂方法和系統(tǒng)與流程
1.本發(fā)明涉及多方安全計(jì)算領(lǐng)域,尤其涉及一種基于秘密分享的不經(jīng)意隨機(jī)打亂方法和系統(tǒng)。
背景技術(shù):
2.多方安全計(jì)算(multi-party computation,可以簡(jiǎn)稱為mpc),指多方共同計(jì)算出一個(gè)函數(shù)的結(jié)果,而不泄露這個(gè)函數(shù)各方的輸入數(shù)據(jù),計(jì)算的結(jié)果公開(kāi)給其中的一方或多方。多方安全計(jì)算典型的應(yīng)用包括聯(lián)邦學(xué)習(xí)、隱私求交(private set intersection,psi)等。
3.聯(lián)邦學(xué)習(xí)指的是擁有數(shù)據(jù)的各個(gè)數(shù)據(jù)方,在不共享受保護(hù)的隱私數(shù)據(jù)且自有數(shù)據(jù)不傳遞到外部的前提下,通過(guò)加密的方式交換模型相關(guān)信息從而實(shí)現(xiàn)協(xié)同優(yōu)化聯(lián)邦學(xué)習(xí)模型。隱私求交可以理解為在基于隱私保護(hù)的前提下,確定多方之間的數(shù)據(jù)交集。
4.在基于多方安全計(jì)算的聯(lián)邦學(xué)習(xí)以及隱私求交等應(yīng)用場(chǎng)景中,存在需要將參與方的輸入數(shù)據(jù)進(jìn)行打亂的情況。如何在不泄露數(shù)據(jù)隱私的前提下,實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行打亂,成為目前亟待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
5.本發(fā)明實(shí)施例提供一種基于秘密分享的不經(jīng)意隨機(jī)打亂方法和系統(tǒng),可以在多方安全計(jì)算中,在不泄露數(shù)據(jù)隱私的前提下,實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行隨機(jī)打亂。
6.為了解決上述問(wèn)題,本發(fā)明實(shí)施例公開(kāi)了一種基于秘密分享的不經(jīng)意隨機(jī)打亂方法,應(yīng)用于多方安全計(jì)算中的參與方,所述多方安全計(jì)算包括n個(gè)參與方,所述n個(gè)參與方持有第一數(shù)據(jù)向量的分片,所述第一數(shù)據(jù)向量的長(zhǎng)度為m,所述n個(gè)參與方包括參與方s0~s
n-1
,所述方法包括:所述n個(gè)參與方分別生成隨機(jī)排序向量,所述隨機(jī)排序向量的長(zhǎng)度為m;所述n個(gè)參與方基于各自持有的第一數(shù)據(jù)向量的分片和各自持有的隨機(jī)排序向量進(jìn)行n輪迭代的打亂操作,使得所述n個(gè)參與方得到第二數(shù)據(jù)向量的分片,所述第二數(shù)據(jù)向量為所述第一數(shù)據(jù)向量按照所述n個(gè)參與方的隨機(jī)排序向量進(jìn)行n輪迭代打亂后的向量;所述n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入。
7.另一方面,本發(fā)明實(shí)施例公開(kāi)了一種多方安全計(jì)算系統(tǒng),所述多方安全計(jì)算系統(tǒng)用于進(jìn)行多方安全計(jì)算,所述多方安全計(jì)算包括n個(gè)參與方,所述n個(gè)參與方持有第一數(shù)據(jù)向量的分片,所述第一數(shù)據(jù)向量的長(zhǎng)度為m,所述n個(gè)參與方包括參與方s0~s
n-1
,其中,所述n個(gè)參與方,用于分別生成隨機(jī)排序向量,所述隨機(jī)排序向量的長(zhǎng)度為m;所述n個(gè)參與方,還用于基于各自持有的第一數(shù)據(jù)向量的分片和各自持有的隨機(jī)排序向量進(jìn)行n輪迭代的打亂操作,使得所述n個(gè)參與方得到第二數(shù)據(jù)向量的分片,所述第二數(shù)據(jù)向量為所述第一數(shù)據(jù)向量按照所述n個(gè)參與方的隨機(jī)排序向量進(jìn)行n輪迭代打亂后的向量;所述n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入。
8.再一方面,本發(fā)明實(shí)施例公開(kāi)了一種用于基于秘密分享的不經(jīng)意隨機(jī)打亂的裝置,包括有存儲(chǔ)器,以及一個(gè)以上程序,其中一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器中,且經(jīng)配置以由一個(gè)以上處理器執(zhí)行所述一個(gè)以上程序,所述一個(gè)以上程序包含用于進(jìn)行如前述一個(gè)或多個(gè)所述的基于秘密分享的不經(jīng)意隨機(jī)打亂方法的指令。
9.又一方面,本發(fā)明實(shí)施例公開(kāi)了一種機(jī)器可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有指令,當(dāng)所述指令由裝置的一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得裝置執(zhí)行如前述一個(gè)或多個(gè)所述的基于秘密分享的不經(jīng)意隨機(jī)打亂方法。
10.本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):本發(fā)明實(shí)施例提供了一種基于秘密分享的不經(jīng)意隨機(jī)打亂方法,n個(gè)參與方中的每個(gè)參與方分別生成一個(gè)隨機(jī)排序向量,利用每個(gè)參與方的隨機(jī)排序向量對(duì)第一數(shù)據(jù)向量依次進(jìn)行n輪迭代的打亂操作,所述n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入,在n輪迭代的打亂操作執(zhí)行完成后,得到最終的打亂結(jié)果。在打亂過(guò)程中,每個(gè)參與方持有的是第一數(shù)據(jù)向量的分片,不會(huì)得到第一數(shù)據(jù)向量的明文;此外,由于每個(gè)參與方生成的是隨機(jī)排序向量,且互相之間沒(méi)有透露自己的隨機(jī)排序向量,因此,在進(jìn)行n輪迭代的打亂操作后,每個(gè)參與方只能得到第一數(shù)據(jù)向量的隨機(jī)打亂結(jié)果(第二數(shù)據(jù)向量)的一個(gè)分片,不會(huì)得到第二數(shù)據(jù)向量的明文;再者,n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入,且每一輪的打亂順序是某個(gè)參與方生成的隨機(jī)排序,n輪迭代的打亂操作后,每個(gè)參與方都無(wú)法得到打亂的具體順序,可以實(shí)現(xiàn)打亂的隨機(jī)性,保證數(shù)據(jù)的隱私安全。
附圖說(shuō)明
11.為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)本發(fā)明實(shí)施例的描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
12.圖1是本發(fā)明的一種基于秘密分享的不經(jīng)意隨機(jī)打亂方法實(shí)施例的步驟流程圖;圖2是本發(fā)明的一種多方安全計(jì)算系統(tǒng)200實(shí)施例的結(jié)構(gòu)框圖;圖3是本發(fā)明的一種用于基于秘密分享的不經(jīng)意隨機(jī)打亂的裝置800的框圖;圖4是本發(fā)明的一些實(shí)施例中服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
13.下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
14.本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤摇暗谝弧薄ⅰ暗诙钡人鶇^(qū)分的對(duì)象通常為一類,并不限定對(duì)象的個(gè)數(shù),例如第一對(duì)象可以是一個(gè),也可以是多個(gè)。此外,說(shuō)明書(shū)以及權(quán)利要求中的術(shù)語(yǔ)“和/或”用于描述關(guān)聯(lián)對(duì)象的關(guān)聯(lián)關(guān)系,表
示可以存在三種關(guān)系,例如,a和/或b,可以表示:?jiǎn)为?dú)存在a,同時(shí)存在a和b,單獨(dú)存在b這三種情況。字符“/”一般表示前后關(guān)聯(lián)對(duì)象是一種“或”的關(guān)系。本發(fā)明實(shí)施例中術(shù)語(yǔ)“多個(gè)”是指兩個(gè)或兩個(gè)以上,其它量詞與之類似。
15.參照?qǐng)D1,示出了本發(fā)明的一種基于秘密分享的不經(jīng)意隨機(jī)打亂方法實(shí)施例的步驟流程圖,應(yīng)用于多方安全計(jì)算中的參與方,所述多方安全計(jì)算包括n個(gè)參與方,所述n個(gè)參與方持有第一數(shù)據(jù)向量的分片,所述第一數(shù)據(jù)向量的長(zhǎng)度為m,所述n個(gè)參與方包括參與方s0~s
n-1
,所述方法可以包括如下步驟:步驟101、所述n個(gè)參與方分別生成隨機(jī)排序向量,所述隨機(jī)排序向量的長(zhǎng)度為m;步驟102、所述n個(gè)參與方基于各自持有的第一數(shù)據(jù)向量的分片和各自持有的隨機(jī)排序向量進(jìn)行n輪迭代的打亂操作,使得所述n個(gè)參與方得到第二數(shù)據(jù)向量的分片,所述第二數(shù)據(jù)向量為所述第一數(shù)據(jù)向量按照所述n個(gè)參與方的隨機(jī)排序向量進(jìn)行n輪迭代打亂后的向量;所述n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入。
16.本發(fā)明實(shí)施例提供的基于秘密分享的不經(jīng)意隨機(jī)打亂方法,可應(yīng)用于多方安全計(jì)算中需要將第一數(shù)據(jù)向量進(jìn)行隨機(jī)打亂的場(chǎng)景。所述第一數(shù)據(jù)向量和所述隨機(jī)排序向量是向量型數(shù)據(jù)。
17.本發(fā)明實(shí)施例的基于秘密分享的不經(jīng)意隨機(jī)打亂方法可應(yīng)用于基于秘密分享協(xié)議的多方安全計(jì)算場(chǎng)景。秘密分享(secret share)協(xié)議,是密碼學(xué)中由多個(gè)參與方進(jìn)行秘密分發(fā)、保存、計(jì)算、恢復(fù)的信息保護(hù)協(xié)議。各個(gè)參與方可以將一份數(shù)據(jù)分成多份,每份稱為一個(gè)分享(或分片)并分發(fā)給其他參與方,之后通過(guò)計(jì)算和通信,可以完成對(duì)這些數(shù)據(jù)正確的函數(shù)計(jì)算并且保障參與方數(shù)據(jù)的隱私。
18.示例性地,所述第一數(shù)據(jù)向量可以表示為x={x0,..,x
m-1
},參與方sj的隨機(jī)排序向量可以表示為一個(gè)排列函數(shù)πj,如πj:{0,1,2,...,m-1},或者π
j ({0,1,2,...,m-1}),j的取值為0~n-1。
19.在本發(fā)明實(shí)施例中,不經(jīng)意隨機(jī)打亂(oblivious random shuffle),是依次讓每個(gè)參與方提供一個(gè)隨機(jī)排序向量,如參與方sj的隨機(jī)排序向量為πj,并利用每個(gè)參與方的隨機(jī)排序向量對(duì)第一數(shù)據(jù)向量依次進(jìn)行n輪迭代的打亂操作,所述n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入,在n輪迭代的打亂操作執(zhí)行完成后,得到最終的排序結(jié)果。由于每個(gè)參與方生成的是隨機(jī)排序向量,且互相之間沒(méi)有透露自己的隨機(jī)排序向量,因此,進(jìn)行n輪迭代的打亂操作后,每個(gè)參與方只能得到第一數(shù)據(jù)向量的隨機(jī)打亂結(jié)果(第二數(shù)據(jù)向量)的一個(gè)分片,各個(gè)參與方無(wú)法得到第一數(shù)據(jù)向量的明文數(shù)據(jù),也無(wú)法得到第二數(shù)據(jù)向量的具體順序,可以保證數(shù)據(jù)的隱私安全。
20.在本發(fā)明實(shí)施例中,所述多方安全計(jì)算包括n個(gè)參與方,n為大于1的整數(shù)。所述n個(gè)參與方持有第一數(shù)據(jù)向量的分片。也即,所述n個(gè)參與方分別持有x的一個(gè)分片。進(jìn)一步地,由于x是向量型數(shù)據(jù),x中包含了m個(gè)元素,如x0~x
m-1
,因此,所述n個(gè)參與方分別持有x的一個(gè)分片,也就是所述n個(gè)參與方分別持有x中每個(gè)元素的一個(gè)分片。例如,對(duì)于參與方s0,其持有第一數(shù)據(jù)向量x的一個(gè)分片,指的是參與方s0持有x0的一個(gè)分片,參與方s0持有x1的一個(gè)分片,以此類推,參與方s0持有x
m-1
的一個(gè)分片。同樣地,對(duì)于參與方s1,其持有第一數(shù)據(jù)向量x的一個(gè)分片,指的是參與方s1持有x0的一個(gè)分片,參與方s1持有x1的一個(gè)分片,以此類推,參與方s1持有x
m-1
的一個(gè)分片。只有同時(shí)獲取s0~s
n-1
這n個(gè)參與方分別持有的第一數(shù)據(jù)向量x
的分片,才可以恢復(fù)得到x={x0,..,x
m-1
}的明文。
21.本發(fā)明實(shí)施例對(duì)所述第一數(shù)據(jù)向量的來(lái)源不做限制。在本發(fā)明的一種可選實(shí)施例中,所述第一數(shù)據(jù)向量可以為所述n個(gè)參與方中任意一個(gè)參與方所擁有并秘密分享給所述n個(gè)參與方,或者,所述第一數(shù)據(jù)向量可以為所述n個(gè)參與方進(jìn)行多方安全計(jì)算產(chǎn)生的中間結(jié)果。
22.本發(fā)明實(shí)施例可以將n個(gè)參與方中任意一個(gè)或任意多個(gè)參與方擁有的向量型數(shù)據(jù)(第一數(shù)據(jù)向量)進(jìn)行隨機(jī)打亂,且在打亂過(guò)程中,不會(huì)恢復(fù)得到第一數(shù)據(jù)向量的明文,也無(wú)法得到打亂的具體順序。擁有該第一數(shù)據(jù)向量的參與方可以將該第一數(shù)據(jù)向量進(jìn)行秘密分享,使得n個(gè)參與方分別持有該第一數(shù)據(jù)向量的一個(gè)分片。
23.所述第一數(shù)據(jù)向量還可以為所述n個(gè)參與方進(jìn)行多方安全計(jì)算產(chǎn)生的中間結(jié)果。本發(fā)明實(shí)施例可以將n個(gè)參與方在多方安全計(jì)算中得到的中間結(jié)果進(jìn)行隨機(jī)打亂,且在打亂過(guò)程中,不會(huì)恢復(fù)得到該中間結(jié)果的明文,也無(wú)法得到打亂的具體順序。擁有該中間結(jié)果的參與方可以將該中間結(jié)果進(jìn)行秘密分享,使得n個(gè)參與方分別持有該向中間結(jié)果的一個(gè)分片。該中間結(jié)果為向量型數(shù)據(jù)。
24.本發(fā)明實(shí)施例對(duì)所述多方安全計(jì)算的類型不做限制。例如,所述多方安全計(jì)算可以包括基于秘密分享的聯(lián)邦學(xué)習(xí)或者隱私集合求交等。
25.在多方秘密分享協(xié)議中,每個(gè)參與方可以擁有一個(gè)計(jì)算引擎,可以視為黑盒。每個(gè)參與方將擁有的分片輸入到各自的計(jì)算引擎中,多個(gè)參與方的計(jì)算引擎進(jìn)行多方安全計(jì)算,多個(gè)參與方的計(jì)算引擎在進(jìn)行多方安全計(jì)算的過(guò)程中會(huì)進(jìn)行通信和計(jì)算,最后每個(gè)參與方的計(jì)算引擎將計(jì)算結(jié)果的分片輸出至對(duì)應(yīng)的參與方。
26.在本發(fā)明實(shí)施例中,所述多方安全計(jì)算包括n個(gè)參與方,如記為參與方s0~s
n-1
,所述n個(gè)參與方持有第一數(shù)據(jù)向量的分片,所述第一數(shù)據(jù)向量的長(zhǎng)度為m。其中,n為大于1的整數(shù)。
27.首先,所述n個(gè)參與方分別在本地生成各自的隨機(jī)排序向量。本發(fā)明實(shí)施例對(duì)生成隨機(jī)排序向量的方法不做限制。例如,可以使用明文的shuffle算法(例如knuth shuffle)生成隨機(jī)排序向量。
28.所述n個(gè)參與方基于各自持有的第一數(shù)據(jù)向量的分片和各自持有的隨機(jī)排序向量進(jìn)行n輪迭代的打亂操作,在所述n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入。
29.例如,通過(guò)第一輪的打亂操作,將第一數(shù)據(jù)向量按照參與方s0的隨機(jī)排序向量進(jìn)行打亂,得到第一輪打亂的結(jié)果。將第一輪打亂的結(jié)果作為第二輪的輸入,執(zhí)行第二輪的打亂操作。通過(guò)第二輪的打亂操作,將第一輪打亂的結(jié)果按照參與方s1的隨機(jī)排序向量進(jìn)行打亂,得到第二輪打亂的結(jié)果。以此類推,直到n輪迭代的打亂操作完成。
30.在本發(fā)明的一種可選實(shí)施例中,所述n個(gè)參與方基于各自持有的第一數(shù)據(jù)向量的分片和各自持有的隨機(jī)排序向量進(jìn)行n輪迭代的打亂操作,可以包括:步驟s11、所述n個(gè)參與方基于各自持有的第一數(shù)據(jù)向量的分片以及參與方s0持有的隨機(jī)排序向量進(jìn)行第一輪的打亂操作,使得所述n個(gè)參與方得到第一個(gè)中間向量的分片,所述第一個(gè)中間向量為所述第一數(shù)據(jù)向量按照所述參與方s0的隨機(jī)排序向量打亂后的向量;
步驟s11、所述n個(gè)參與方基于各自持有的第k-1個(gè)中間向量的分片以及參與方s
k-1
持有的隨機(jī)排序向量進(jìn)行第k輪的打亂操作,使得所述n個(gè)參與方得到第k個(gè)中間向量的分片,所述第k個(gè)中間向量為所述第k-1個(gè)中間向量按照所述參與方s
k-1
的隨機(jī)排序向量打亂后的向量;其中,k的取值為2~n。
31.在本發(fā)明實(shí)施例中,將第一輪打亂操作得到的結(jié)果稱為第一個(gè)中間向量。需要說(shuō)明的是,在第一輪打亂操作執(zhí)行完成時(shí),每個(gè)參與方得到的是第一個(gè)中間向量的一個(gè)分片。同理,將第二輪打亂操作得到的結(jié)果稱為第二個(gè)中間向量,每個(gè)參與方得到的是第二個(gè)中間向量的一個(gè)分片。以此類推,將第n輪打亂操作得到的結(jié)果稱為第n個(gè)中間向量,每個(gè)參與方得到的是第n個(gè)中間向量的一個(gè)分片。第n個(gè)中間向量即為所述第二數(shù)據(jù)向量,也即,第n個(gè)中間向量即為對(duì)所述第一數(shù)據(jù)向量進(jìn)行基于秘密分享的不經(jīng)意隨機(jī)打亂得到的結(jié)果。
32.在本發(fā)明實(shí)施例中,每一輪打亂操作可以看作是一個(gè)黑盒操作。該黑盒操作的輸入包括n個(gè)參與方輸入各自計(jì)算引擎的數(shù)據(jù),該黑盒操作的輸出是n個(gè)參與方的計(jì)算引擎的輸出。
33.例如,對(duì)于第一輪打亂操作,第一輪打亂操作的輸入包括n個(gè)參與方各自持有的第一數(shù)據(jù)向量的分片以及參與方s0持有的隨機(jī)排序向量。n個(gè)參與方的計(jì)算引擎利用自己持有的數(shù)據(jù)進(jìn)行通信,協(xié)同計(jì)算得到各自輸出的結(jié)果。每個(gè)參與方的計(jì)算引擎輸出的是第一個(gè)中間向量的一個(gè)分片,第一個(gè)中間向量為所述第一數(shù)據(jù)向量按照所述參與方s0的隨機(jī)排序向量打亂后的向量。在第一輪打亂操作的過(guò)程中,任意一個(gè)參與方都無(wú)法獲得第一個(gè)中間向量的明文。n個(gè)參與方中的每個(gè)參與方只能得到第一個(gè)中間向量的一個(gè)分片。
34.對(duì)于第二輪打亂操作,第二輪打亂操作的輸入包括n個(gè)參與方各自持有的第一個(gè)中間向量的分片以及參與方s1持有的隨機(jī)排序向量。n個(gè)參與方的計(jì)算引擎利用自己持有的數(shù)據(jù)進(jìn)行通信,協(xié)同計(jì)算得到各自輸出的結(jié)果。每個(gè)參與方的計(jì)算引擎輸出的是第二個(gè)中間向量的一個(gè)分片,第二個(gè)中間向量為所述第一個(gè)中間向量按照所述參與方s1的隨機(jī)排序向量打亂后的向量。在第二輪打亂操作的過(guò)程中,任意一個(gè)參與方都無(wú)法獲得第二個(gè)中間向量的明文。n個(gè)參與方中的每個(gè)參與方只能得到第二個(gè)中間向量的一個(gè)分片。
35.對(duì)于第三輪打亂操作,第三輪打亂操作的輸入包括n個(gè)參與方各自持有的第二個(gè)中間向量的分片以及參與方s2持有的隨機(jī)排序向量。n個(gè)參與方的計(jì)算引擎利用自己持有的數(shù)據(jù)進(jìn)行通信,協(xié)同計(jì)算得到各自輸出的結(jié)果。每個(gè)參與方的計(jì)算引擎輸出的是第三個(gè)中間向量的一個(gè)分片,第三個(gè)中間向量為所述第二個(gè)中間向量按照所述參與方s2的隨機(jī)排序向量打亂后的向量。在第三輪打亂操作的過(guò)程中,任意一個(gè)參與方都無(wú)法獲得第三個(gè)中間向量的明文。n個(gè)參與方中的每個(gè)參與方只能得到第三個(gè)中間向量的一個(gè)分片。
36.以此類推,直到第n輪打亂操作執(zhí)行完成,所述n個(gè)參與方得到第n個(gè)中間向量的分片,也即,所述n個(gè)參與方得到第二數(shù)據(jù)向量的分片。
37.在本發(fā)明的一種可選實(shí)施例中,所述n個(gè)參與方基于各自持有的第一數(shù)據(jù)向量的分片以及參與方s0持有的隨機(jī)排序向量進(jìn)行第一輪的打亂操作,可以包括:步驟s21、所述參與方s0生成第一矩陣和第二矩陣;所述第一矩陣為(p0,p1,...,p
m-1
)
t
,其中,pi=(i,i,...,i),i的取值為0~m-1;所述第二矩陣為(ind,ind,...,ind)
t
,其中,ind為所述參與方s0持有的隨機(jī)排序向量;所述第一矩陣和所述第二矩陣為m
×
m的矩陣;
步驟s22、所述參與方s0在本地對(duì)所述第一矩陣和所述第二矩陣進(jìn)行明文比較操作,得到第一比較結(jié)果矩陣;步驟s23、所述參與方s0將所述第一比較結(jié)果矩陣進(jìn)行秘密分享,使得所述n個(gè)參與方得到所述第一比較結(jié)果矩陣的分片;步驟s24、所述n個(gè)參與方基于各自持有的第一數(shù)據(jù)向量的分片和第一比較結(jié)果矩陣的分片進(jìn)行秘密分享的乘法操作,使得所述n個(gè)參與方得到所述第一個(gè)中間向量的分片。
38.在本發(fā)明實(shí)施例中,每一輪的打亂操作,是n個(gè)參與方依次按照其中一個(gè)參與方的隨機(jī)排序向量執(zhí)行基于秘密分享的不經(jīng)意隨機(jī)打亂方法的過(guò)程。
39.以第一輪打亂操作為例,參與方s0可以在本地生成第一矩陣和第二矩陣。所述第一矩陣為(p0,p1,...,p
m-1
)
t
,其中,pi=(i,i,...,i),i的取值為0~m-1。
40.在本發(fā)明實(shí)施例中,假設(shè)參與方sj生成隨機(jī)排序向量πj({0,1,2,...,m-1}),并將πj({0,1,2,...,m-1})記為ind,將第二矩陣記為(ind,ind,...,ind)
t
。在第一輪打亂操作中,參與方s0在本地生成第二矩陣,該第二矩陣中的ind為所述參與方s0持有的隨機(jī)排序向量。在第二輪打亂操作中,參與方s1在本地生成第一矩陣和第二矩陣。參與方s1生成的第一矩陣與參與方s0生成的第一矩陣相同,參與方s1生成的第二矩陣中的ind為參與方s1持有的隨機(jī)排序向量。在第三輪打亂操作中,參與方s2在本地生成第一矩陣和第二矩陣,以此類推。所述第一矩陣和第二矩陣為m
×
m的矩陣。
41.示例一,假設(shè)n=3,m=4。示例性地,將第一數(shù)據(jù)向量記為x,假設(shè)x=(x0,x1,x2,x3);將參與方sj的隨機(jī)排序向量記為πj,j的取值為0~n-1。經(jīng)過(guò)秘密分享,第一數(shù)據(jù)向量(x0,x1,x2,x3)被分為三個(gè)分片,三個(gè)參與方各持有一個(gè)分片。
42.在示例一中,將3個(gè)參與方記為s0、s1和s2,參與方s0在本地生成第一矩陣,如將第一矩陣記為p_matrix,則p_matrix=(p0,p1,p2,p3)
t
。其中,p0=(0,0,0,0),p1=(1,1,1,1),p2=(2,2,2,2),p3=(3,3,3,3)。假設(shè)將參與方s0生成的第一矩陣記為p_matrix_0,則:第一矩陣p_matrix_0為m
×
m的矩陣,第一矩陣p_matrix_0中的元素值可以為明文。
43.參與方s0在本地生成第二矩陣,如將第二矩陣記為ind_matrix,則ind_matrix=(ind,ind,...,ind)
t
。假設(shè)s0生成的隨機(jī)排序向量為π0=(3,2,1,0),則ind=(3,2,1,0)。將參與方s0生成的第二矩陣記為ind_matrix_0,則:第二矩陣ind_matrix_0為m
×
m的矩陣,第二矩陣ind_matrix_0中的元素值可以為明文。
44.參與方s0在本地對(duì)其生成的所述第一矩陣p_matrix_0和所述第二矩陣ind_
matrix_0進(jìn)行明文比較操作,得到第一比較結(jié)果矩陣。如將參與方s0得到的第一比較結(jié)果矩陣記為cmp_matrix_0,則:參與方s0在本地對(duì)第一矩陣p_matrix_0和第二矩陣ind_matrix_0中每個(gè)對(duì)應(yīng)位置的元素進(jìn)行比較,若相同位置的兩個(gè)元素相等,則將第一比較結(jié)果矩陣cmp_matrix_0中該位置的元素值記為1,否則記為0。
45.第一比較結(jié)果矩陣cmp_matrix_0為m
×
m的矩陣,第一比較結(jié)果矩陣cmp_matrix_0中的元素值可以為明文。
46.參與方s0將其計(jì)算得到的第一比較結(jié)果矩陣cmp_matrix_0進(jìn)行秘密分享,使得所述n個(gè)參與方得到所述第一比較結(jié)果矩陣cmp_matrix_0的分片;所述n個(gè)參與方基于各自持有的第一數(shù)據(jù)向量x的分片和第一比較結(jié)果矩陣cmp_matrix_0的分片進(jìn)行秘密分享的乘法操作,使得所述n個(gè)參與方得到所述第一個(gè)中間向量的分片。
47.在示例一中,參與方s0將第一比較結(jié)果矩陣cmp_matrix_0進(jìn)行秘密分享,參與方s1和s2會(huì)收到第一比較結(jié)果矩陣cmp_matrix_0的分片但不知道第一比較結(jié)果矩陣cmp_matrix_0的明文。參與方s0、s1和s2三方執(zhí)行秘密分享的矩陣乘法操作,分別得到第一個(gè)中間向量的分片。
48.如將第一個(gè)中間向量記為res0,則res0=(x3,x2,x1,x0)。參與方s0、s1和s2三方分別持有res0的一個(gè)分片。
49.在本發(fā)明實(shí)施例中,所述n個(gè)參與方基于各自持有的第一數(shù)據(jù)向量的分片和第一比較結(jié)果矩陣的分片進(jìn)行秘密分享的乘法操作,該乘法操作可以看作是一個(gè)黑盒操作。該黑盒操作的輸入包括n個(gè)參與方輸入各自計(jì)算引擎的數(shù)據(jù),該黑盒操作的輸出是n個(gè)參與方的計(jì)算引擎的輸出。該乘法操作的輸入包括n個(gè)參與方輸入的各自持有的第一數(shù)據(jù)向量的分片,以及n個(gè)參與方輸入的各自持有的第一比較結(jié)果矩陣的分片。n個(gè)參與方的計(jì)算引擎利用自己持有的數(shù)據(jù)進(jìn)行通信,協(xié)同計(jì)算得到各自輸出的結(jié)果。每個(gè)參與方的計(jì)算引擎輸出的是第一個(gè)中間向量的一個(gè)分片,所述第一個(gè)中間向量為所述第一數(shù)據(jù)向量按照參與方s0的隨機(jī)排序向量打亂后的向量。在該乘法操作過(guò)程中任意一個(gè)參與方都無(wú)法獲得第一個(gè)中間向量的明文。n個(gè)參與方中的每個(gè)參與方只能得到第一個(gè)中間向量的一個(gè)分片。
50.在具體實(shí)施中,n個(gè)參與方基于各自持有的第一數(shù)據(jù)向量的分片和第一比較結(jié)果矩陣的分片進(jìn)行秘密分享的乘法操作,該乘法操作可以通過(guò)調(diào)用秘密分享的矩陣乘法算子來(lái)實(shí)現(xiàn)或者通過(guò)直接調(diào)用乘法算子來(lái)實(shí)現(xiàn)。示例性地,調(diào)用秘密分享的矩陣乘法算子的方式,可以通過(guò)ot(oblivious transfer,不經(jīng)意傳輸)或全同態(tài)生成矩陣beaver三元組實(shí)現(xiàn)。直接調(diào)用乘法算子的方式,可以通過(guò)將矩陣乘法轉(zhuǎn)換為m
×k×
n次乘法和k次加法實(shí)現(xiàn)。本發(fā)明實(shí)施例對(duì)秘密分享的矩陣乘法算子的內(nèi)部實(shí)現(xiàn)不作限制,將其作為黑盒算子進(jìn)行調(diào)用,已有的以及未來(lái)將會(huì)出現(xiàn)的能實(shí)現(xiàn)前述矩陣乘法功能的算法均可為本發(fā)明實(shí)施例使用。
51.接下來(lái)執(zhí)行第二輪的打亂操作。需要說(shuō)明的是,第k輪的打亂操作與第一輪的打亂
操作步驟相同,區(qū)別在于輸入數(shù)據(jù)有所不同。例如,第一輪的打亂操作的輸入數(shù)據(jù)為n個(gè)參與方各自持有的第一數(shù)據(jù)向量的分片,第二輪的打亂操作的輸入數(shù)據(jù)為n個(gè)參與方各自持有的第一個(gè)中間向量的分片。此外,在第k輪的打亂操作中,由參與方s
k-1
生成m
×
m的第一矩陣和第二矩陣,并在本地對(duì)其生成的第一矩陣和第二矩陣進(jìn)行明文比較操作,得到第一比較結(jié)果矩陣,以及將該第一比較結(jié)果矩陣進(jìn)行秘密分享。
52.在第二輪的打亂操作中,參與方s1在本地生成第一矩陣,假設(shè)記為p_matrix_1,則p_matrix_1= (p0,p1,p2,p3)
t
。其中,p0=(0,0,0,0),p1= (1,1,1,1),p2=(2,2,2,2),p3=(3,3,3,3)。也即:參與方s1在本地生成第二矩陣,假設(shè)記為ind_matrix_1,則ind_matrix_1=(ind,ind,...,ind)
t
。假設(shè)s1生成的隨機(jī)排序向量為π1=(2,1,0,3),則ind=(2,1,0,3)。也即:參與方s1在本地對(duì)其生成的所述第一矩陣p_matrix_1和所述第二矩陣ind_matrix_1進(jìn)行明文比較操作,得到第一比較結(jié)果矩陣cmp_matrix_1,則:參與方s1在本地對(duì)第一矩陣p_matrix_1和第二矩陣ind_matrix_1中每個(gè)對(duì)應(yīng)位置的元素進(jìn)行比較,若相同位置的兩個(gè)元素相等,則將第一比較結(jié)果矩陣cmp_matrix_1中該位置的元素值記為1,否則記為0。
53.參與方s1將其計(jì)算得到的第一比較結(jié)果矩陣cmp_matrix_1進(jìn)行秘密分享,使得所述n個(gè)參與方得到所述第一比較結(jié)果矩陣cmp_matrix_1的分片;所述n個(gè)參與方基于各自持有的第一個(gè)中間向量的分片和第一比較結(jié)果矩陣cmp_matrix_1的分片進(jìn)行秘密分享的乘法操作,使得所述n個(gè)參與方得到所述第二個(gè)中間向量的分片。
54.在示例一中,參與方s1將第一比較結(jié)果矩陣cmp_matrix_1進(jìn)行秘密分享,參與方s0和s2會(huì)收到第一比較結(jié)果矩陣cmp_matrix_1的分片但不知道第一比較結(jié)果矩陣cmp_matrix_1的明文。參與方s0、s1和s2三方執(zhí)行秘密分享的矩陣乘法操作,分別得到第二個(gè)中間向量的分片。
55.如將第二個(gè)中間向量記為res1,則res1=(x1,x2,x3,x0)。參與方s0、s1和s2三方分別持有res1的一個(gè)分片。
56.接下來(lái)執(zhí)行第三輪的打亂操作。
57.參與方s2在本地生成第一矩陣,如記為p_matrix_2,則p_matrix_2=(p0,p1,p2,p3)
t
。
其中,p0=(0,0,0,0),p1= (1,1,1,1),p2=(2,2,2,2),p3=(3,3,3,3)。也即:參與方s2在本地生成第二矩陣,如記為ind_matrix_2,則ind_matrix_2=(ind,ind,...,ind)
t
。假設(shè)s2生成的隨機(jī)排序向量為π2=(1,3,2,0),則ind=(1,3,2,0)。也即:參與方s2在本地對(duì)其生成的所述第一矩陣p_matrix_2和所述第二矩陣ind_matrix_2進(jìn)行明文比較操作,得到第一比較結(jié)果矩陣cmp_matrix_2,則:參與方s2在本地對(duì)第一矩陣p_matrix_2和第二矩陣ind_matrix_2中每個(gè)對(duì)應(yīng)位置的元素進(jìn)行比較,若相同位置的兩個(gè)元素相等,則將第一比較結(jié)果矩陣cmp_matrix_2中該位置的元素值記為1,否則記為0。
58.參與方s2將其計(jì)算得到的第一比較結(jié)果矩陣cmp_matrix_2進(jìn)行秘密分享,使得所述n個(gè)參與方得到所述第一比較結(jié)果矩陣cmp_matrix_2的分片;所述n個(gè)參與方基于各自持有的第二個(gè)中間向量的分片和第一比較結(jié)果矩陣cmp_matrix_2的分片進(jìn)行秘密分享的乘法操作,使得所述n個(gè)參與方得到所述第三個(gè)中間向量的分片。
59.在示例一中,參與方s2將第一比較結(jié)果矩陣cmp_matrix_2進(jìn)行秘密分享,參與方s0和s1會(huì)收到第一比較結(jié)果矩陣cmp_matrix_2的分片但不知道第一比較結(jié)果矩陣cmp_matrix_2的明文。參與方s0、s1和s2三方執(zhí)行秘密分享的矩陣乘法操作,分別得到第三個(gè)中間向量的分片。
60.如將第三個(gè)中間向量記為res2,則res2=(x2,x0,x3,x1)。參與方s0、s1和s2三方分別持有res2的一個(gè)分片。
61.此時(shí),n輪迭代的打亂操作執(zhí)行完成,參與方s0、s1和s2三方分別持有第二數(shù)據(jù)向量(res2)的一個(gè)分片。
62.在示例一中,第一數(shù)據(jù)向量x=(x0,x1,x2,x3),第二數(shù)據(jù)向量res2=(x2,x0,x3,x1)。所述第二數(shù)據(jù)向量為所述第一數(shù)據(jù)向量按照所述n個(gè)參與方的隨機(jī)排序向量進(jìn)行n輪迭代打亂后的向量。由于每個(gè)參與方生成的是隨機(jī)排序向量,且互相之間沒(méi)有透露自己的隨機(jī)排序向量,每個(gè)參與方生成的隨機(jī)排序向量?jī)H作為其中一輪的打亂順序,在n次迭代打亂后,任意一個(gè)參與方都無(wú)法得到具體的打亂順序,可以保證數(shù)據(jù)的隱私安全。
63.在本發(fā)明的一種可選實(shí)施例中,所述n個(gè)參與方還持有第三數(shù)據(jù)向量的分片,所述方法還可以包括:
步驟s31、將所述第二數(shù)據(jù)向量作為目標(biāo)排序向量;步驟s32、所述n個(gè)參與方基于各自持有的目標(biāo)排序向量的分片和各自持有的第三數(shù)據(jù)向量的分片,執(zhí)行基于秘密分享的不經(jīng)意打亂操作,使得所述n個(gè)參與方得到第四數(shù)據(jù)向量的分片,所述第四數(shù)據(jù)向量為所述第三數(shù)據(jù)向量按照所述目標(biāo)排序向量打亂后的向量。
64.在執(zhí)行本發(fā)明實(shí)施例的基于秘密分享的不經(jīng)意隨機(jī)打亂方法后,可以將第一數(shù)據(jù)向量進(jìn)行隨機(jī)打亂,每個(gè)參與方可以得到隨機(jī)打亂結(jié)果(第二數(shù)據(jù)向量)的一個(gè)分片。進(jìn)一步地,還可以將第二數(shù)據(jù)向量作為目標(biāo)排序向量,對(duì)第三數(shù)據(jù)向量進(jìn)行基于秘密分享的不經(jīng)意打亂。在該不經(jīng)意打亂的過(guò)程中,打亂的具體順序不是由某個(gè)參與方提供的,而是通過(guò)秘密分享的方式進(jìn)行多次迭代計(jì)算得到的,可以實(shí)現(xiàn)不經(jīng)意打亂的隨機(jī)性,保證任意一個(gè)參與方都無(wú)法得知打亂的具體順序,可以進(jìn)一步保證數(shù)據(jù)的隱私安全。
65.綜上,本發(fā)明實(shí)施例提供了一種基于秘密分享的不經(jīng)意隨機(jī)打亂方法,n個(gè)參與方中的每個(gè)參與方分別生成一個(gè)隨機(jī)排序向量,利用每個(gè)參與方的隨機(jī)排序向量對(duì)第一數(shù)據(jù)向量依次進(jìn)行n輪迭代的打亂操作,所述n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入,在n輪迭代的打亂操作執(zhí)行完成后,得到最終的打亂結(jié)果。在打亂過(guò)程中,每個(gè)參與方持有的是第一數(shù)據(jù)向量的分片,不會(huì)得到第一數(shù)據(jù)向量的明文;此外,由于每個(gè)參與方生成的是隨機(jī)排序向量,且互相之間沒(méi)有透露自己的隨機(jī)排序向量,因此,在進(jìn)行n輪迭代的打亂操作后,每個(gè)參與方只能得到第一數(shù)據(jù)向量的隨機(jī)打亂結(jié)果(第二數(shù)據(jù)向量)的一個(gè)分片,不會(huì)得到第二數(shù)據(jù)向量的明文;再者,n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入,且每一輪的打亂順序是某個(gè)參與方生成的隨機(jī)排序,n輪迭代的打亂操作后,每個(gè)參與方都無(wú)法得到打亂的具體順序,可以實(shí)現(xiàn)打亂的隨機(jī)性,保證數(shù)據(jù)的隱私安全。
66.需要說(shuō)明的是,對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書(shū)中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明實(shí)施例所必須的。
67.參照?qǐng)D2,示出了本發(fā)明的一種多方安全計(jì)算系統(tǒng)200實(shí)施例的結(jié)構(gòu)框圖,所述多方安全計(jì)算系統(tǒng)用于進(jìn)行多方安全計(jì)算,所述多方安全計(jì)算包括n個(gè)參與方,所述n個(gè)參與方持有第一數(shù)據(jù)向量的分片,所述第一數(shù)據(jù)向量的長(zhǎng)度為m,所述n個(gè)參與方包括參與方s0~s
n-1
,其中,所述n個(gè)參與方,用于分別生成隨機(jī)排序向量,所述隨機(jī)排序向量的長(zhǎng)度為m;所述n個(gè)參與方,還用于基于各自持有的第一數(shù)據(jù)向量的分片和各自持有的隨機(jī)排序向量進(jìn)行n輪迭代的打亂操作,使得所述n個(gè)參與方得到第二數(shù)據(jù)向量的分片,所述第二數(shù)據(jù)向量為所述第一數(shù)據(jù)向量按照所述n個(gè)參與方的隨機(jī)排序向量進(jìn)行n輪迭代打亂后的向量;所述n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入。
68.可選地,所述n個(gè)參與方,具體用于基于各自持有的第一數(shù)據(jù)向量的分片以及參與方s0持有的隨機(jī)排序向量進(jìn)行第一輪的打亂操作,使得所述n個(gè)參與方得到第一個(gè)中間向量的分片,所述第一個(gè)中間向量為所述第一數(shù)據(jù)向量按照所述參與方s0的隨機(jī)排序向量打
亂后的向量;基于各自持有的第k-1個(gè)中間向量的分片以及參與方s
k-1
持有的隨機(jī)排序向量進(jìn)行第k輪的打亂操作,使得所述n個(gè)參與方得到第k個(gè)中間向量的分片,所述第k個(gè)中間向量為所述第k-1個(gè)中間向量按照所述參與方s
k-1
的隨機(jī)排序向量打亂后的向量;其中,k的取值為2~n。
69.可選地,所述參與方s0,具體用于生成第一矩陣和第二矩陣;所述第一矩陣為(p0,p1,...,p
m-1
)
t
,其中,pi=(i,i,...,i),i的取值為0~m-1;所述第二矩陣為(ind,ind,...,ind)
t
,其中,ind為所述參與方s0持有的隨機(jī)排序向量;所述第一矩陣和所述第二矩陣為m
×
m的矩陣;在本地對(duì)所述第一矩陣和所述第二矩陣進(jìn)行明文比較操作,得到第一比較結(jié)果矩陣;以及將所述第一比較結(jié)果矩陣進(jìn)行秘密分享,使得所述n個(gè)參與方得到所述第一比較結(jié)果矩陣的分片;所述n個(gè)參與方,具體用于基于各自持有的第一數(shù)據(jù)向量的分片和第一比較結(jié)果矩陣的分片進(jìn)行秘密分享的乘法操作,使得所述n個(gè)參與方得到所述第一個(gè)中間向量的分片。
70.可選地,所述n個(gè)參與方持有第三數(shù)據(jù)向量的分片,并將所述第二數(shù)據(jù)向量作為目標(biāo)排序向量;所述n個(gè)參與方,還用于基于各自持有的目標(biāo)排序向量的分片和各自持有的第三數(shù)據(jù)向量的分片,執(zhí)行基于秘密分享的不經(jīng)意打亂操作,使得所述n個(gè)參與方得到第四數(shù)據(jù)向量的分片,所述第四數(shù)據(jù)向量為所述第三數(shù)據(jù)向量按照所述目標(biāo)排序向量打亂后的向量。
71.可選地,所述第一數(shù)據(jù)向量為所述n個(gè)參與方中任意一個(gè)參與方所擁有并秘密分享給所述n個(gè)參與方,或者,所述第一數(shù)據(jù)向量為所述n個(gè)參與方進(jìn)行多方安全計(jì)算產(chǎn)生的中間結(jié)果。
72.在本發(fā)明實(shí)施例中,不經(jīng)意隨機(jī)打亂(oblivious random shuffle),是依次讓每個(gè)參與方提供一個(gè)隨機(jī)排序向量,并利用每個(gè)參與方的隨機(jī)排序向量對(duì)第一數(shù)據(jù)向量依次進(jìn)行n輪迭代的打亂操作,所述n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入,在n輪迭代的打亂操作執(zhí)行完成后,得到最終的打亂結(jié)果。由于每個(gè)參與方生成的是隨機(jī)排序向量,且互相之間沒(méi)有透露自己的隨機(jī)排序向量,因此,進(jìn)行n輪迭代的打亂操作后,每個(gè)參與方只能得到第一數(shù)據(jù)向量的隨機(jī)打亂結(jié)果(第二數(shù)據(jù)向量)的一個(gè)分片,各個(gè)參與方無(wú)法得到第一數(shù)據(jù)向量的明文數(shù)據(jù),也無(wú)法得到第二數(shù)據(jù)向量的具體順序,可以保證數(shù)據(jù)的隱私安全。
73.綜上,本發(fā)明實(shí)施例提供了一種多方安全計(jì)算系統(tǒng),可用于實(shí)現(xiàn)基于秘密分享的不經(jīng)意隨機(jī)打亂方法。所述多方安全計(jì)算系統(tǒng)包括n個(gè)參與方,n個(gè)參與方中的每個(gè)參與方分別生成一個(gè)隨機(jī)排序向量,利用每個(gè)參與方的隨機(jī)排序向量對(duì)第一數(shù)據(jù)向量依次進(jìn)行n輪迭代的打亂操作,所述n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入,在n輪迭代的打亂操作執(zhí)行完成后,得到最終的打亂結(jié)果。在打亂過(guò)程中,每個(gè)參與方持有的是第一數(shù)據(jù)向量的分片,不會(huì)得到第一數(shù)據(jù)向量的明文;此外,由于每個(gè)參與方生成的是隨機(jī)排序向量,且互相之間沒(méi)有透露自己的隨機(jī)排序向量,因此,在進(jìn)行n輪迭代的打亂操作后,每個(gè)參與方只能得到第一數(shù)據(jù)向量的隨機(jī)打亂結(jié)果(第二數(shù)據(jù)向量)的一個(gè)分片,不會(huì)得到第二數(shù)據(jù)向量的明文;再者,n輪迭代的打亂操作中,前一輪的輸出結(jié)果作為后一輪的輸入,
且每一輪的打亂順序是某個(gè)參與方生成的隨機(jī)排序,n輪迭代的打亂操作后,每個(gè)參與方都無(wú)法得到打亂的具體順序,可以實(shí)現(xiàn)打亂的隨機(jī)性,保證數(shù)據(jù)的隱私安全。
74.對(duì)于系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
75.本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。
76.關(guān)于上述實(shí)施例中的系統(tǒng),其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說(shuō)明。
77.本發(fā)明實(shí)施例提供了一種用于基于秘密分享的不經(jīng)意隨機(jī)打亂的裝置,包括有存儲(chǔ)器,以及一個(gè)以上的程序,其中一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器中,且經(jīng)配置以由一個(gè)以上處理器執(zhí)行所述一個(gè)以上程序包含用于進(jìn)行上述一個(gè)或多個(gè)實(shí)施例中所述的基于秘密分享的不經(jīng)意隨機(jī)打亂方法的指令。
78.圖3是根據(jù)一示例性實(shí)施例示出的一種用于基于秘密分享的不經(jīng)意隨機(jī)打亂的裝置800的框圖。例如,裝置800可以是移動(dòng)電話,計(jì)算機(jī),數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺(tái),平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個(gè)人數(shù)字助理等。
79.參照?qǐng)D3,裝置800可以包括以下一個(gè)或多個(gè)組件:處理組件802,存儲(chǔ)器804,電源組件806,多媒體組件808,音頻組件810,輸入/輸出(i/ o)的接口812,傳感器組件814,以及通信組件816。
80.處理組件802通常控制裝置800的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機(jī)操作和記錄操作相關(guān)聯(lián)的操作。處理元件802可以包括一個(gè)或多個(gè)處理器820來(lái)執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件802可以包括一個(gè)或多個(gè)模塊,便于處理組件802和其他組件之間的交互。例如,處理組件802可以包括多媒體模塊,以方便多媒體組件808和處理組件802之間的交互。
81.存儲(chǔ)器804被配置為存儲(chǔ)各種類型的數(shù)據(jù)以支持在設(shè)備800的操作。這些數(shù)據(jù)的示例包括用于在裝置800上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲(chǔ)器804可以由任何類型的易失性或非易失性存儲(chǔ)設(shè)備或者它們的組合實(shí)現(xiàn),如靜態(tài)隨機(jī)存取存儲(chǔ)器(sram),電可擦除可編程只讀存儲(chǔ)器(eeprom),可擦除可編程只讀存儲(chǔ)器(eprom),可編程只讀存儲(chǔ)器(prom),只讀存儲(chǔ)器(rom),磁存儲(chǔ)器,快閃存儲(chǔ)器,磁盤或光盤。
82.電源組件806為裝置800的各種組件提供電力。電源組件806可以包括電源管理系統(tǒng),一個(gè)或多個(gè)電源,及其他與為裝置800生成、管理和分配電力相關(guān)聯(lián)的組件。
83.多媒體組件808包括在所述裝置800和用戶之間的提供一個(gè)輸出接口的屏幕。在一些實(shí)施例中,屏幕可以包括液晶顯示器(lcd)和觸摸面板(tp)。如果屏幕包括觸摸面板,屏幕可以被實(shí)現(xiàn)為觸摸屏,以接收來(lái)自用戶的輸入信號(hào)。觸摸面板包括一個(gè)或多個(gè)觸摸傳感器以感測(cè)觸摸、滑動(dòng)和觸摸面板上的手勢(shì)。所述觸摸傳感器可以不僅感測(cè)觸摸或滑動(dòng)動(dòng)作的邊界,而且還檢測(cè)與所述觸摸或滑動(dòng)操作相關(guān)的持續(xù)時(shí)間和壓力。在一些實(shí)施例中,多媒體組件808包括一個(gè)前置攝像頭和/或后置攝像頭。當(dāng)設(shè)備800處于操作模式,如拍攝模式或視頻模式時(shí),前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個(gè)前置攝像頭和后置攝像頭可以是一個(gè)固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。
84.音頻組件810被配置為輸出和/或輸入音頻信號(hào)。例如,音頻組件810包括一個(gè)麥克風(fēng)(mic),當(dāng)裝置800處于操作模式,如呼叫模式、記錄模式和語(yǔ)音信息處理模式時(shí),麥克風(fēng)被配置為接收外部音頻信號(hào)。所接收的音頻信號(hào)可以被進(jìn)一步存儲(chǔ)在存儲(chǔ)器804或經(jīng)由通信組件816發(fā)送。在一些實(shí)施例中,音頻組件810還包括一個(gè)揚(yáng)聲器,用于輸出音頻信號(hào)。
85.i/ o接口812為處理組件802和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點(diǎn)擊輪,按鈕等。這些按鈕可包括但不限于:主頁(yè)按鈕、音量按鈕、啟動(dòng)按鈕和鎖定按鈕。
86.傳感器組件814包括一個(gè)或多個(gè)傳感器,用于為裝置800提供各個(gè)方面的狀態(tài)評(píng)估。例如,傳感器組件814可以檢測(cè)到設(shè)備800的打開(kāi)/關(guān)閉狀態(tài),組件的相對(duì)定位,例如所述組件為裝置800的顯示器和小鍵盤,傳感器組件814還可以搜索裝置800或裝置800一個(gè)組件的位置改變,用戶與裝置800接觸的存在或不存在,裝置800方位或加速/減速和裝置800的溫度變化。傳感器組件814可以包括接近傳感器,被配置用來(lái)在沒(méi)有任何的物理接觸時(shí)檢測(cè)附近物體的存在。傳感器組件814還可以包括光傳感器,如cmos或ccd圖像傳感器,用于在成像應(yīng)用中使用。在一些實(shí)施例中,該傳感器組件814還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
87.通信組件816被配置為便于裝置800和其他設(shè)備之間有線或無(wú)線方式的通信。裝置800可以接入基于通信標(biāo)準(zhǔn)的無(wú)線網(wǎng)絡(luò),如wifi,2g或3g,或它們的組合。在一個(gè)示例性實(shí)施例中,通信組件816經(jīng)由廣播信道接收來(lái)自外部廣播管理系統(tǒng)的廣播信號(hào)或廣播相關(guān)信息。在一個(gè)示例性實(shí)施例中,所述通信組件816還包括近場(chǎng)通信(nfc)模塊,以促進(jìn)短程通信。例如,在nfc模塊可基于射頻信息處理(rfid)技術(shù),紅外數(shù)據(jù)協(xié)會(huì)(irda)技術(shù),超寬帶(uwb)技術(shù),藍(lán)牙(bt)技術(shù)和其他技術(shù)來(lái)實(shí)現(xiàn)。
88.在示例性實(shí)施例中,裝置800可以被一個(gè)或多個(gè)應(yīng)用專用集成電路(asic)、數(shù)字信號(hào)處理器(dsp)、數(shù)字信號(hào)處理設(shè)備(dspd)、可編程邏輯器件(pld)、現(xiàn)場(chǎng)可編程門陣列(fpga)、控制器、微控制器、微處理器或其他電子元件實(shí)現(xiàn),用于執(zhí)行上述方法。
89.在示例性實(shí)施例中,還提供了一種包括指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器804,上述指令可由裝置800的處理器820執(zhí)行以完成上述方法。例如,所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是rom、隨機(jī)存取存儲(chǔ)器(ram)、cd-rom、磁帶、軟盤和光數(shù)據(jù)存儲(chǔ)設(shè)備等。
90.圖4是本發(fā)明的一些實(shí)施例中服務(wù)器的結(jié)構(gòu)示意圖。該服務(wù)器1900可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個(gè)或一個(gè)以上中央處理器(central processing units,cpu)1922(例如,一個(gè)或一個(gè)以上處理器)和存儲(chǔ)器1932,一個(gè)或一個(gè)以上存儲(chǔ)應(yīng)用程序1942或數(shù)據(jù)1944的存儲(chǔ)介質(zhì)1930(例如一個(gè)或一個(gè)以上海量存儲(chǔ)設(shè)備)。其中,存儲(chǔ)器1932和存儲(chǔ)介質(zhì)1930可以是短暫存儲(chǔ)或持久存儲(chǔ)。存儲(chǔ)在存儲(chǔ)介質(zhì)1930的程序可以包括一個(gè)或一個(gè)以上模塊(圖示沒(méi)標(biāo)出),每個(gè)模塊可以包括對(duì)服務(wù)器中的一系列指令操作。更進(jìn)一步地,中央處理器1922可以設(shè)置為與存儲(chǔ)介質(zhì)1930通信,在服務(wù)器1900上執(zhí)行存儲(chǔ)介質(zhì)1930中的一系列指令操作。
91.服務(wù)器1900還可以包括一個(gè)或一個(gè)以上電源1926,一個(gè)或一個(gè)以上有線或無(wú)線網(wǎng)絡(luò)接口1950,一個(gè)或一個(gè)以上輸入輸出接口1958,一個(gè)或一個(gè)以上鍵盤1956,和/或,一個(gè)或一個(gè)以上操作系統(tǒng)1941,例如windows servertm,mac os xtm,unixtm, linuxtm,
freebsdtm等等。
92.一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的指令由裝置(服務(wù)器或者終端)的處理器執(zhí)行時(shí),使得裝置能夠執(zhí)行圖1所示的基于秘密分享的不經(jīng)意隨機(jī)打亂方法。
93.一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的指令由裝置(服務(wù)器或者終端)的處理器執(zhí)行時(shí),使得裝置能夠執(zhí)行前文圖1所對(duì)應(yīng)實(shí)施例中基于秘密分享的不經(jīng)意隨機(jī)打亂方法的描述,因此,這里將不再進(jìn)行贅述。另外,對(duì)采用相同方法的有益效果描述,也不再進(jìn)行贅述。對(duì)于本技術(shù)所涉及的計(jì)算機(jī)程序產(chǎn)品或者計(jì)算機(jī)程序?qū)嵤├形磁兜募夹g(shù)細(xì)節(jié),請(qǐng)參照本技術(shù)方法實(shí)施例的描述。
94.此外,需要說(shuō)明的是:本技術(shù)實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)程序,該計(jì)算機(jī)程序產(chǎn)品或者計(jì)算機(jī)程序可以包括計(jì)算機(jī)指令,該計(jì)算機(jī)指令可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。計(jì)算機(jī)設(shè)備的處理器從計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)讀取該計(jì)算機(jī)指令,處理器可以執(zhí)行該計(jì)算機(jī)指令,使得該計(jì)算機(jī)設(shè)備執(zhí)行前文圖1所對(duì)應(yīng)實(shí)施例中基于秘密分享的不經(jīng)意隨機(jī)打亂方法的描述,因此,這里將不再進(jìn)行贅述。另外,對(duì)采用相同方法的有益效果描述,也不再進(jìn)行贅述。對(duì)于本技術(shù)所涉及的計(jì)算機(jī)程序產(chǎn)品或者計(jì)算機(jī)程序?qū)嵤├形磁兜募夹g(shù)細(xì)節(jié),請(qǐng)參照本技術(shù)方法實(shí)施例的描述。
95.本領(lǐng)域技術(shù)人員在考慮說(shuō)明書(shū)及實(shí)踐這里公開(kāi)的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本發(fā)明旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開(kāi)的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書(shū)和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
96.應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來(lái)限制。
97.以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
98.以上對(duì)本發(fā)明所提供的一種基于秘密分享的不經(jīng)意隨機(jī)打亂方法、一種多方安全計(jì)算系統(tǒng)、一種用于基于秘密分享的不經(jīng)意隨機(jī)打亂的裝置和一種可讀存儲(chǔ)介質(zhì),進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
