這裡將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本說明書相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本說明書的一些態樣相一致的裝置和方法的例子。
在本說明書使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本說明書。在本說明書和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指並包含一個或多個相關聯的列出專案的任何或所有可能組合。
應當理解,儘管在本說明書可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“回應於確定”。
在大數據時代,多個資料持有方可以持有同一個統計對象的資料,在這種情況下,在對資料進行統計計算時,可能會涉及多個資料持有方,需要多個資料持有方合作完成資料統計。然而,由於不同企業之間的競爭關係或者隱私保護的考慮,在統計過程中不能洩露企業各自的資料。
例如,同一個自然人可以在不同的P2P(peer-to-peer,互聯網金融點對點借貸)平台借款,各P2P平台儲存有該自然人在本平台的借款數額。在統計該自然人總共的借款數額時,往往需要聯合多個P2P平台合作完成統計計算。
在這個例子中,P2P平台是資料持有方,該自然人的借款數額是資料持有方持有的資料,該自然人總共的借款數額是待計算的統計值。
又例如,每個共用單車平台都可以為用戶提供單車使用服務,各共用單車平台儲存有該平台每天共用單車的使用量。在統計某一天共用單車的使用總量時,往往需要聯合多個共用單車平台完成統計計算。
在這個例子中,共用單車平台是資料持有方,這一天共用單車的使用量是資料持有方持有的資料,這一天共用單車的使用總量是待計算的統計值。
圖1是本說明書一示例性實施例示出的一種資料統計方法的流程示意圖。
本實施例應用於聯合N個資料持有方之間的資料進行資料統計,N為大於等於2的自然數。
請參考圖1,所述資料統計方法可以應用於資料持有方,包括有以下步驟:
步驟102,與其他資料持有方兩兩協商出共同的偽隨機數序列,得到與協商對象一一對應的N-1個偽隨機數序列。
在本實施例中,每個資料持有方可將其他資料持有方看作協商對象,然後分別與各個協商對象進行兩兩協商,協商出共同的偽隨機數序列。
在一個例子中,資料持有方可在每次進行資料統計時與其他資料持有方協商出所述N-1個偽隨機數序列。即,每次進行資料統計時,均會更新所述偽隨機數序列,所述偽隨機數序列僅用於一次資料統計。
在另一個例子中,資料持有方也可以預先與其他資料持有方協商出所述N-1個偽隨機數序列,所述N-1個偽隨機數序列可用於多次資料統計。
步驟104,根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數,得到與協商對象一一對應的N-1個偽隨機數。
在本實施例中,所述選取策略可用於從一個偽隨機數序列中選取偽隨機數,最終得到一個與該偽隨機數序列對應的偽隨機數,該偽隨機數也與協商對象對應。
在一個例子中,所述選取策略可以是一個順序號。所述順序號可用於表示選取偽隨機數序列中的該順序號對應的偽隨機數。假設順序號是5,則表示選取偽隨機數序列中第5位偽隨機數。
所述順序號也可用於表示從偽隨機數序列中的該順序號對應的偽隨機數開始進行選取。仍假設順序號是5,則可表示從偽隨機數序列中第5位偽隨機數開始,逐個選取K個偽隨機數;也可表示從偽隨機數序列中第5+H位偽隨機數開始,逐個選取K個偽隨機數;還可表示從偽隨機數序列中第5位偽隨機數開始,按照J的間隔選取K個偽隨機數等,本說明書對此不作特殊限制。在選取得到K個偽隨機數後,可將這K個偽隨機數進行組合,得到一個組合後的偽隨機數。其中,K是大於等於2的自然數,J和H是大於等於1的自然數。
當然,所述選取策略也可以包括若干個順序號,可用於表示選取偽隨機數序列中這些順序號對應的偽隨機數,然後對選取的偽隨機數進行組合,得到一個組合後的偽隨機數。
在另一個例子中,所述選取策略可以包括順序號和排序規則。其中,所述排序規則可包括:從大到小進行排列、從小到大進行排列等。在本例中,可根據所述順序號從排序後的偽隨機數序列中選取偽隨機數,具體的選取方法可參考前述描述,本實施例在此不再一一贅述。
上述選取策略僅為示例性的說明,在實際應用中,還可以採用其他的選取策略,本說明書對此不作特殊限制。
步驟106,根據所述N個資料持有方之間的排列順序,確定每個協商對象對應的偽隨機數在參與運算時的參與值,所述參與值是所述偽隨機數或所述偽隨機數的相反數。
在本實施例中,所述排列順序可由資料持有方的ID號確定,例如,按照ID號從小到大,或從大到小的順序對所有資料持有方進行排序。
當然,還可以基於其他資訊對資料持有方進行排序,例如,基於IP地址的演算法等,本說明書對此不作特殊限制。
在本實施例中,各資料持有方可根據排序結果確定每個協商對象對應的偽隨機數在參與運算時的參與值。
在一個例子中,當所述協商對象排列在本資料持有方之後時,可將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數;當所述協商對象排列在本資料持有方之前時,可將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數的相反數。
在另一個例子中,當所述協商對象排列在本資料持有方之後時,可將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數的相反數;當所述協商對象排列在本資料持有方之前時,可將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數,本說明書對此不作特殊限制。
步驟108,對持有的資料和所述N-1個偽隨機數的參與值進行求和計算。
在本實施例中,各個資料持有方可對其持有的資料和前述步驟106得到的N-1個偽隨機數的參與值進行求和計算,以將其真實資料隱藏在求和結果中。
步驟110,將所述求和結果發送給所述第三方,以供第三方對所有資料持有方的求和結果進行求和計算,得到所述統計值。
在本實施例中,各個資料持有方在計算得到求和結果後,可將求和結果發送給第三方,第三方對各個資料持有方的求和結果進行求和計算,以得到統計值。
由以上描述可以看出,本說明書每個資料持有方可與其他資料持有方兩兩協商出共同的偽隨機數序列,以使得每個資料持有方持有N-1個偽隨機數序列,還可根據全域相同的偽隨機數選取策略分別從每個偽隨機數序列中選取偽隨機數,以得到N-1個與協商對象一一對應的偽隨機數,然後確定各個偽隨機數在參與運算時的參與值,並結合本端持有的資料進行求和計算,以將本端真實資料隱藏在求和結果中,確保資料不洩露。各資料持有方可將求和結果發送給第三方,由第三方進行求和計算,得到統計值,從而實現多方安全計算。並且,在資料統計時,各個資料持有方之間無需進行通信,可大大減少資料統計時的通信量,提高計算效率。
下面分別透過實施例一和實施例二兩個實施例來描述本說明書的具體實現過程。
實施例一
在本實施例中,在生成偽隨機數序列之前,每個資料持有方可以將其他資料持有方看作協商對象,然後分別與各個協商對象進行兩兩協商,以協商出共同的種子。
舉例來說,假設有4個資料持有方,分別為資料持有方1至資料持有方4。以資料持有方1為例,資料持有方1可將資料持有方2至資料持有方4看作協商對象,然後分別與這3個協商對象進行協商,以確定用於生成偽隨機序列的種子。
表1
請參考表1的示例,資料持有方1與資料持有方2協商,可確定共同的種子
。資料持有方1與資料持有方3協商,可確定共同的種子
。資料持有方1與資料持有方4協商,可確定共同的種子
。對於資料持有方1而言,
與資料持有方2對應,
與資料持有方3對應,
與資料持有方4對應。
表2
在表1的基礎上,請參考表2的示例,對於資料持有方2而言,其與資料持有方1協商確定的共同種子是
,與資料持有方3協商,可確定共同的種子
,與資料持有方4協商,可確定共同的種子
。其中,
與資料持有方1對應,
與資料持有方3對應,
與資料持有方4對應。
表3
依次類推,資料持有方1至資料持有方4可生成表3所示的種子示例。由此,每個資料持有方生成的種子分別與其他3個資料持有方一一對應。
在本實施例中,各資料持有方可預先生成與協商對象一一對應的N-1個偽隨機數序列,所述N-1個偽隨機數序列可用於多次資料統計。
在一個例子中,各資料持有方可將種子作為唯一輸入參數輸入偽隨機數發生器以生成偽隨機數序列,相同種子生成的偽隨機數序列也相同。
表4
仍以表3所示的種子示例為例,請參考表4的示例,資料持有方1可生成3個偽隨機數序列,分別為
、
和
。其中,
與資料持有方2對應,
與資料持有方3對應,
與資料持有方4對應等。
至此,資料持有方1至資料持有方4均生成3個偽隨機數序列,並且,每兩個資料持有方之間均具有1個共同的偽隨機數序列,例如,資料持有方1和資料持有方2具有共同的偽隨機數序列
,資料持有方1和資料持有方3具有共同的偽隨機數序列
等。
在N個資料持有方的應用場景中,每個資料持有方持有N-1個偽隨機數序列,這N-1個偽隨機數序列分別與其他N-1個資料持有方一一對應,且任意兩個資料持有方會具有一個共同的偽隨機數序列。
在本實施例中,偽隨機數序列的元素數量可由偽隨機數發生器的演算法確定,例如,AES128(Advanced
Encryption Standard,高級加密標準)演算法生成的偽隨機數序列有128個元素,AES256演算法生成的偽隨機數序列有256個元素,HMAC256(Hash-based Message
Authentication Code,雜湊訊息認證碼)演算法生成的偽隨機數序列也有256個元素等。
在另一個例子中,在生成偽隨機數序列時,除種子之外,還可以存在其他輸入參數,例如計數值等。
以計數值為例,各資料持有方在協商種子時,還可與協商對象協商出共同的計數值,然後將種子和計數值輸入偽隨機數發生器,以生成偽隨機數序列。基於相同的種子和相同的計數值,也可以生成相同的偽隨機數序列。
在生成偽隨機數序列之後,資料持有方可根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數,得到與協商對象一一對應的N-1個偽隨機數。
在本實施例中,所述選取策略可由第三方在每次進行資料統計時指定。
所述第三方獨立於各個資料持有方,可為各個資料持有方指定計數值,還可以聯合所有資料持有方的求和結果計算統計值。
在實際實現中,所述第三方提供的上述功能可由一個平台來實現,也可由不同的平台來實現,例如:由指定平台為各個資料持有方指定計數值,由計算平台以聯合所有資料持有方的求和結果計算統計值等,本說明書對此不作特殊限制。
在一個例子中,仍以前述資料持有方1至資料持有方4為例,假設所述偽隨機數選取策略是順序號5,表示選取偽隨機數序列中第5位偽隨機數,則各個資料持有方分別從自身生成的3個偽隨機數序列中選取第5位偽隨機數作為與協商對象對應的偽隨機數。
表5
基於表4的示例,資料持有方1從偽隨機數序列
中選取第5位偽隨機數,假設該第5位偽隨機數是
,從偽隨機數序列
中選取第5位偽隨機數,假設該第5位偽隨機數是
,依次類推,可得到表5所示的偽隨機數示例,資料持有方1至資料持有方4均選出3個與協商對象一一對應的偽隨機數。
在本實施例中,由於每兩個資料持有方之間均具有1個共同的偽隨機數序列,並且,針對每個偽隨機數序列,各個資料持有方採用全域相同的選取策略進行偽隨機數選取,所以在選取得到偽隨機數後,每兩個資料持有方之間均具有1個共同的偽隨機數。例如,資料持有方1和資料持有方2之間選取得到共同的偽隨機數
,資料持有方1和資料持有方3之間選取得到共同的偽隨機數
等。
由此,各資料持有方與其協商對象在生成共同的偽隨機數序列後,還會從所述偽隨機數序列中選取得到共同的偽隨機數。
在另一個例子中,假設所述選取策略是順序號5,表示從偽隨機數序列中第5位偽隨機數開始,逐個選取K個偽隨機數,K是全域唯一,由資料持有方預先約定,其取值是3。各資料持有方可分別從其持有的偽隨機數序列中選取第5位、第6位和第7位偽隨機數,然後對選取得到的3個偽隨機數進行組合,並將組合結果作為與所述偽隨機數序列對應的偽隨機數。
以資料持有方1為例,假設從偽隨機數序列
中選取的第5位偽隨機數是123,第6位偽隨機數是456,第7位偽隨機數是789,則可以將123、456和789進行組合。
例如,可將這3個偽隨機數按照順序號從小到大的順序拼接在一起,得到組合結果123456789,即
是
123456789。
再例如,還可將3個偽隨機數按照順序號從大到小的順序拼接在一起,得到組合結果789456123,即
是789456123。
當然還可以採用其他的組合方案,或者對選取的3個偽隨機數進行設定的運算等,本說明書對此不作特殊限制。
在本實施例中,在選取得到與協商對象一一對應的N-1個偽隨機數後,可確定每個偽隨機數在參與運算時的參與值。
仍以表5所示的4個資料持有方為例,按照ID號從小到大進行排序,排序結果為:資料持有方1、資料持有方2、資料持有方3、資料持有方4。
假設,當所述協商對象排列在本資料持有方之後時,將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數;當所述協商對象排列在本資料持有方之前時,將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數的相反數。
表6
請繼續參考表5,對於資料持有方2而言,其協商對象資料持有方1排列在前,因而可將資料持有方1對應的偽隨機數
的參與值確定為其相反數-
,協商對象資料持有方3排列在後,因而可將資料持有方3對應的偽隨機數
的參與值確定為
,依次類推,可得到表6所示的參與值示例。
在本實施例中,各資料持有方在確定N-1個協商對象對應的N-1個偽隨機數的參與值後,可對持有的資料和所述N-1個偽隨機數的參與值進行求和計算,以將其真實資料隱藏在求和結果中。
表7
請繼續參考表6,假設資料持有方1持有的資料是
,資料持有方2持有的資料是
,依次類推,在進行求和後,可得到表7所示的求和結果。
在本實施例中,各個資料持有方在計算得到求和結果後,可將求和結果發送給第三方,第三方對各個資料持有方的求和結果進行求和計算,以得到統計值。
請繼續參考表7,第三方對資料持有方1至資料持有方4的求和結果進行求和計算,得到統計值
![Figure 02_image073](https://patentimages.storage.googleapis.com/97/64/e4/ad51796d1b4df2/02_image073.png)
。
在本實施例中,第三方對各個資料持有方的求和結果進行求和計算即可得到統計值,無需其他運算,簡單快捷。
可選的,在另一個例子中,各個資料持有方在計算得到求和結果後,也可以廣播求和結果,然後對所有參與統計的資料持有方的求和結果進行求和計算,得到統計值。
可選的,為確保資料持有方求和結果的隨機性,第三方可在每次進行資料統計時,指定不同的全域選取策略。仍以選取策略是順序號為例,第三方可為每次資料統計指定不同的順序號,例如:第一次指定順序號是1,第二次指定順序號是2,依次類推,直到順序號取值為偽隨機數序列中偽隨機數的數量。當順序號取值為偽隨機數序列中偽隨機數的數量時,各個資料持有方可重新進行兩兩協商,以生成新的共同偽隨機數序列,第三方可重新將順序號指定為1、2、…,依次類推。
採用這樣的實現方式,可在資料持有方側對所述選取策略進行校驗。例如,各個資料持有方可對所述選取策略進行記錄,當再次接收到第三方指定的選取策略時,判斷該接收到的選取策略是否與記錄的選取策略衝突,所述衝突通常表示接收到的選取策略已被使用過。
若衝突,可向第三方返回錯誤提示。
若不衝突,則執行根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數的步驟,並更新記錄的選取策略。
仍以第三方從1開始順序指定順序號為例,資料持有方可以記錄第三方發送的順序號,當再次接收到第三方發送的順序號時,可判斷接收到的順序號是否大於記錄的順序號。
若大於,則可說明該順序號對應的偽隨機數尚未被使用過,可以根據接收到的順序號從每個偽隨機數序列中選取偽隨機數,並可在選取結束後對記錄的順序號進行更新。
若小於等於,則可說明該順序號對應的偽隨機數已經被使用過,可以向第三方返回錯誤提示。
類似的,當順序號表示從偽隨機數序列中的該順序號對應的偽隨機數開始逐個選取K個偽隨機數再進行組合時,資料持有方可記錄選出的偽隨機數的最大順序號,即順序號+K-1。當再次接收到第三方發送的順序號時,判斷接收到的順序號是否大於記錄的所述最大順序號。
在本實施例中,可基於選取策略制定不同的策略記錄、衝突判斷方案,本說明書在此不再一一贅述。
本實施例在每次進行資料統計時,可從偽隨機數序列中選取得到不同的偽隨機數參與求和計算,使得求和結果具有隨機性,可有效防止不法人員從多次求和結果中分析出資料持有方持有的真實資料,從而確保資料安全、不洩露。
值得注意的是,採用第三方下發選取策略的實現方案,當有資料持有方斷線時,並不影響線上資料持有方的資料統計,線上的資料持有方仍可基於第三方發送的選取策略進行偽隨機數選取、求和計算等步驟,以得到所有線上資料持有方持有資料的統計值。
實施例二
在本實施例中,在生成偽隨機數序列之前,每個資料持有方也可以將其他資料持有方看作協商對象,然後分別與各個協商對象進行兩兩協商,以協商出共同的種子。
種子協商的過程可以參考前述實施例一,在此不再一一贅述。
在本實施例中,第三方可在每次進行資料統計時,為資料持有方指定全域相同的計數值,各個資料持有方在接收到所述計數值後,可將種子和計數值作為輸入參數輸入偽隨機數產生器,以生成偽隨機數序列。
為避免資料持有方在多次資料統計時生成相同的偽隨機數序列,第三方可在每次進行資料統計時,指定不同的計數值。
例如,第三方可從1開始順序指定計數值,即第一次指定計數值是1,第二次指定計數值是2等,依次類推。
在本實施例中,可在資料持有方側對計數值進行校驗。例如,各個資料持有方可記錄所述計數值,當再次接收到第三方指定的計數值時,判斷該接收到的計數值是否大於記錄的計數值。
若大於,則可說明該計數值尚未被使用過,可執行偽隨機數序列的生成步驟,並可在生成偽隨機數序列後對記錄的計數值進行更新。
若小於等於,則可說明該計數值已經被使用過,可以向第三方返回錯誤提示。
當然,在實際實現中,計數值也不會一直取到無限大,可以設定一個迴圈週期,例如三個月、半年等。在到達該週期時,各個資料持有方可重新進行種子協商,第三方也可重新將計數值的取值設置為1。
採用第三方指定計數值的實現方案,可有效減少資料持有方之間頻繁進行種子協商,減少網路通信量。
在本實施例中,每個資料持有方也可生成N-1個偽隨機數序列,這N-1個偽隨機數序列分別與其他N-1個資料持有方一一對應,且任意兩個資料持有方會具有一個共同的偽隨機數序列。
每次生成的偽隨機數序列可僅用於一次資料統計。
在本實施例中,全域相同的選取策略也可由第三方指定,其具體實現方案可參考前述實施例一。
若所述選取策略是順序號,較為簡單的,當計數值未超出偽隨機數序列元素的數量時,也可將第三方指定的計數值作為選取策略的順序號,本說明書對此不作特殊限制。
可選的,在本實施例中,由於在每次進行資料統計時,各個資料持有方均會重新生成偽隨機數序列,所以也可以採用全域相同的固定選取策略。例如,每次進行偽隨機數選取時,均從偽隨機數序列中選取第10位至20位偽隨機數,然後對這些偽隨機數進行組合,並將組合結果作為與協商對象對應的偽隨機數。
在本實施例中,在選取得到與協商對象一一對應的偽隨機數後,可根據資料持有方之間的排列順序,確定每個協商對象對應的偽隨機數在參與運算時的參與值,然後對持有的資料和所述N-1個偽隨機數的參與值進行求和計算,並將所述求和結果發送給所述第三方,由第三方對所有資料持有方的求和結果進行求和計算,得到所述統計值,這部分的處理與實現可以參照前述實施例一,本實施例在此不再一一贅述。
與前述資料統計方法的實施例相對應,本說明書還提供了資料統計裝置的實施例。
本說明書資料統計裝置的實施例可以應用在資料持有方部署的伺服器或者伺服器集群上。裝置實施例可以透過軟體實現,也可以透過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在伺服器的處理器將非易失性記憶體中對應的電腦程式指令讀取到記憶體中運行形成的。從硬體層面而言,如圖2所示,為本說明書資料統計裝置所在伺服器的一種硬體結構圖,除了圖2所示的處理器、記憶體、網路介面、以及非易失性記憶體之外,實施例中裝置所在的伺服器通常根據該伺服器的實際功能,還可以包括其他硬體,對此不再贅述。
圖3是本說明書一示例性實施例示出的一種資料統計裝置的框圖。
請參考圖3,所述資料統計裝置200可以應用於聯合N個資料持有方之間的資料進行資料統計,所述資料持有方持有待計算統計值的資料,所述資料統計裝置200包括有:兩兩協商單元201、偽隨機數選取單元202、參與值確定單元203、求和計算單元204、結果發送單元205、衝突判斷單元206和計數值判斷單元207。
其中,兩兩協商單元201,與其他資料持有方兩兩協商出共同的偽隨機數序列,得到與協商對象一一對應的N-1個偽隨機數序列;
偽隨機數選取單元202,根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數,得到與協商對象一一對應的N-1個偽隨機數;
參與值確定單元203,根據所述N個資料持有方之間的排列順序,確定每個協商對象對應的偽隨機數在參與運算時的參與值,所述參與值是所述偽隨機數或所述偽隨機數的相反數;
求和計算單元204,對持有的資料和所述N-1個偽隨機數的參與值進行求和計算;
結果發送單元205,將所述求和結果發送給所述第三方,以供第三方對所有資料持有方的求和結果進行求和計算,得到所述統計值;
其中,N是大於等於2的自然數。
可選的,所述兩兩協商單元201:
與其他資料持有方兩兩協商出共同的種子,得到與協商對象一一對應的N-1個種子;
根據所述N-1個種子生成N-1個偽隨機數序列。
可選的,所述選取策略由所述第三方在每次進行資料統計時指定。
衝突判斷單元206,記錄所述選取策略,當再次接收到第三方指定的選取策略時,判斷該接收到的選取策略是否與記錄的選取策略衝突;若不衝突,則執行根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數的步驟,並更新記錄的選取策略。
可選的,所述兩兩協商單元201:
與其他資料持有方預先兩兩協商出共同的種子,得到與協商對象一一對應的N-1個種子;
接收所述第三方在每次進行資料統計時指定的全域相同的計數值;
根據所述N-1個種子和所述計數值生成N-1個偽隨機數序列。
計數值判斷單元207,記錄所述計數值;當再次接收到第三方指定的計數值時,判斷該計數值是否大於記錄的計數值;若大於,則執行根據所述N-1個種子和所述計數值生成N-1個偽隨機數序列的步驟,並更新記錄的計數值。
可選的,所述選取策略是固定的。
可選的,所述選取策略是順序號。
可選的,所述偽隨機數選取單元202,從每個偽隨機數序列中選取全域相同的順序號對應的偽隨機數。
可選的,所述偽隨機數選取單元202,針對每個偽隨機數序列,從所述偽隨機數序列中全域相同的順序號對應的偽隨機數開始,選取若干個偽隨機數;組合選取的若干個偽隨機數,並將組合結果作為從所述偽隨機數序列中選取的偽隨機數。
可選的,所述偽隨機數選取單元202,逐個選取固定數量的偽隨機數,所述固定數量大於1。
可選的,所述參與值確定單元203:
當所述協商對象排列在本資料持有方之後時,將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數;
當所述協商對象排列在本資料持有方之前時,將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數的相反數。
上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、行動電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
與前述資料統計方法的實施例相對應,本說明書還提供一種資料統計裝置,該資料統計裝置包括:處理器以及用於儲存與資料統計邏輯對應的機器可執行指令的記憶體。其中,所述資料統計邏輯對應的機器可執行指令應用於聯合N個資料持有方之間的資料進行資料統計,所述資料持有方持有待計算統計值的資料。所述處理器和所述記憶體通常藉由內部匯流排相互連接。在其他可能的實現方式中,所述設備還可能包括外部介面,以能夠與其他設備或者部件進行通信。
在本實施例中,透過讀取並執行所述記憶體儲存的與資料統計邏輯對應的機器可執行指令,所述處理器被促使:
與其他資料持有方兩兩協商出共同的偽隨機數序列,得到與協商對象一一對應的N-1個偽隨機數序列;
根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數,得到與協商對象一一對應的N-1個偽隨機數;
根據所述N個資料持有方之間的排列順序,確定每個協商對象對應的偽隨機數在參與運算時的參與值,所述參與值是所述偽隨機數或所述偽隨機數的相反數;
對持有的資料和所述N-1個偽隨機數的參與值進行求和計算;
將所述求和結果發送給所述第三方,以供第三方對所有資料持有方的求和結果進行求和計算,得到所述統計值;
其中,N是大於等於2的自然數。
可選的,在與其他資料持有方兩兩協商出共同的偽隨機數序列時,所述處理器被促使:
與其他資料持有方兩兩協商出共同的種子,得到與協商對象一一對應的N-1個種子;
根據所述N-1個種子生成N-1個偽隨機數序列。
可選的,所述選取策略由所述第三方在每次進行資料統計時指定。
可選的,所述處理器還被促使:
記錄所述選取策略;
當再次接收到第三方指定的選取策略時,判斷該接收到的選取策略是否與記錄的選取策略衝突;
若不衝突,則執行根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數的步驟,並更新記錄的選取策略。
可選的,在與其他資料持有方兩兩協商出共同的偽隨機數序列時,所述處理器被促使:
與其他資料持有方預先兩兩協商出共同的種子,得到與協商對象一一對應的N-1個種子;
接收所述第三方在每次進行資料統計時指定的全域相同的計數值;
根據所述N-1個種子和所述計數值生成N-1個偽隨機數序列。
可選的,所述處理器還被促使:
記錄所述計數值;
當再次接收到第三方指定的計數值時,判斷該計數值是否大於記錄的計數值;
若大於,則執行根據所述N-1個種子和所述計數值生成N-1個偽隨機數序列的步驟,並更新記錄的計數值。
可選的,所述選取策略是固定的。
可選的,所述選取策略是順序號。
可選的,在根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數時,所述處理器還被促使:
從每個偽隨機數序列中選取全域相同的順序號對應的偽隨機數。
可選的,在根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數時,所述處理器還被促使:
針對每個偽隨機數序列,從所述偽隨機數序列中全域相同的順序號對應的偽隨機數開始,選取若干個偽隨機數;
組合選取的若干個偽隨機數,並將組合結果作為從所述偽隨機數序列中選取的偽隨機數。
可選的,在選取若干個偽隨機數時,所述處理器被促使:
逐個選取固定數量的偽隨機數,所述固定數量大於1。
可選的,在根據所述N個資料持有方之間的排列順序,確定每個協商對象對應的偽隨機數在參與運算時的參與值時,所述處理器被促使:
當所述協商對象排列在本資料持有方之後時,將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數;
當所述協商對象排列在本資料持有方之前時,將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數的相反數。
與前述資料統計方法的實施例相對應,本說明書還提供一種電腦可讀儲存媒體,所述電腦可讀儲存媒體上儲存有電腦程式,該程式應用於聯合N個資料持有方之間的資料進行資料統計,所述資料持有方持有待計算統計值的資料,該程式被處理器執行時實現以下步驟:
與其他資料持有方兩兩協商出共同的偽隨機數序列,得到與協商對象一一對應的N-1個偽隨機數序列;
根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數,得到與協商對象一一對應的N-1個偽隨機數;
根據所述N個資料持有方之間的排列順序,確定每個協商對象對應的偽隨機數在參與運算時的參與值,所述參與值是所述偽隨機數或所述偽隨機數的相反數;
對持有的資料和所述N-1個偽隨機數的參與值進行求和計算;
將所述求和結果發送給所述第三方,以供第三方對所有資料持有方的求和結果進行求和計算,得到所述統計值;
其中,N是大於等於2的自然數。
可選的,所述與其他資料持有方兩兩協商出共同的偽隨機數序列,包括:
與其他資料持有方兩兩協商出共同的種子,得到與協商對象一一對應的N-1個種子;
根據所述N-1個種子生成N-1個偽隨機數序列。
可選的,所述選取策略由所述第三方在每次進行資料統計時指定。
可選的,還包括:
記錄所述選取策略;
當再次接收到第三方指定的選取策略時,判斷該接收到的選取策略是否與記錄的選取策略衝突;
若不衝突,則執行根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數的步驟,並更新記錄的選取策略。
可選的,所述與其他資料持有方兩兩協商出共同的偽隨機數序列,包括:
與其他資料持有方預先兩兩協商出共同的種子,得到與協商對象一一對應的N-1個種子;
接收所述第三方在每次進行資料統計時指定的全域相同的計數值;
根據所述N-1個種子和所述計數值生成N-1個偽隨機數序列。
可選的,還包括:
記錄所述計數值;
當再次接收到第三方指定的計數值時,判斷該計數值是否大於記錄的計數值;
若大於,則執行根據所述N-1個種子和所述計數值生成N-1個偽隨機數序列的步驟,並更新記錄的計數值。
可選的,所述選取策略是固定的。
可選的,所述選取策略是順序號。
可選的,所述根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數,包括:
從每個偽隨機數序列中選取全域相同的順序號對應的偽隨機數。
可選的,所述根據全域相同的選取策略分別從每個偽隨機數序列中選取偽隨機數,包括:
針對每個偽隨機數序列,從所述偽隨機數序列中全域相同的順序號對應的偽隨機數開始,選取若干個偽隨機數;
組合選取的若干個偽隨機數,並將組合結果作為從所述偽隨機數序列中選取的偽隨機數。
可選的,所述選取若干個偽隨機數,包括:
逐個選取固定數量的偽隨機數,所述固定數量大於1。
可選的,所述根據所述N個資料持有方之間的排列順序,確定每個協商對象對應的偽隨機數在參與運算時的參與值,包括:
當所述協商對象排列在本資料持有方之後時,將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數;
當所述協商對象排列在本資料持有方之前時,將所述協商對象對應的偽隨機數在參與運算時的參與值確定為所述偽隨機數的相反數。
上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多工處理和並行處理也是可以的或者可能是有利的。
以上所述僅為本說明書的較佳實施例而已,並不用以限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。