下面將結合本說明書實施例中的附圖,對本說明書實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本說明書一部分實施例,而不是全部的實施例。基於本說明書中的實施例,發明所屬技術領域中具有通常知識者在沒有作出進步性勞動前提下所獲得的所有其他實施例,都應當屬於本說明書保護的範圍。
請參閱圖1。上述相關技術中,協力廠商可以產生第一亂數集合、第二亂數集合、第三亂數集合、第四亂數集合、第五亂數集合和第六亂數集合。所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述第六亂數集合中均可以包括至少一個亂數。並且所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述第六亂數集合中的亂數可以滿足預設條件。
協力廠商可以向第一設備下發第一亂數集合、第二亂數集合和第五亂數集合;可以向第二設備下發第三亂數集合、第四亂數集合和第六亂數集合。所述第一設備可以接收所述第一亂數集合、所述第二亂數集合和所述第五亂數集合。所述第二設備可以接收所述第三亂數集合、所述第四亂數集合和所述第六亂數集合。這樣所述第一設備可以基於所述第一亂數集合、所述第二亂數集合和所述第五亂數集合,所述第二設備可以基於所述第三亂數集合、所述第四亂數集合和所述第六亂數集合,進行多方安全計算。由於協力廠商需要向所述第一設備下發第一亂數集合、第二亂數集合和第五亂數集合,並且需要向所述第二設備下發第三亂數集合、第四亂數集合和第六亂數集合,使得協力廠商下發的亂數的數量較多,從而佔用了大量的網路頻寬。
多方安全計算(Secure Muti-Party Computation,MPC)是一種保護資料隱私安全的演算法。多個參與方可以在不洩漏自身資料的前提下,使用多方安全計算技術進行協作計算,得到計算結果。例如,採用多方安全計算,參與方
P 1
,…,
P n
可以協作計算函數
f
(
x 1
,…,
x n
)=(
y 1
,…,
y n
)=
y
。其中,
n
≥2;
x 1
,...,
x n
分別為參與方
P 1
,…,
P n
擁有的資料;
y
為計算結果;
y 1
,…,
y n
分別為參與方
P 1
,…,
P n
在計算後所擁有的計算結果
y
的份額。
多方安全計算在業務實際中獲得了廣泛應用。例如,在合作安全模組化的場景中,出於保護資料隱私的考慮,多個資料方可以在不洩漏自身所擁有的資料的前提下,利用多方安全計算技術對資料處理模型進行協作訓練。
秘密分享(SS,Secret Sharing)是一種用於實現多方安全計算的演算法。秘密分享演算法的思想是:將秘密資訊以適當的方式進行拆分;拆分後的份額由不同的參與方管理;單個參與方無法恢復秘密資訊;只有若干個參與方一同協作才能恢復秘密資訊。例如,參與方
P 1
擁有資料
x 1
,參與方
P 2
擁有資料
x 2
。採用秘密分享演算法,參與方
P 1
和參與方
P 2
可以進行協作計算,得到計算結果
。參與方
P 1
在計算後可以獲得計算結果
y
的份額
y 1
,參與方
P 2
在計算後可以獲得計算結果
y
的份額
y 2
。
隨機種子可以為一種用於產生亂數的亂數。所述隨機種子具體可以為真亂數;或者,也可以為偽亂數。在實際應用中,以所述隨機種子作為初始條件,利用亂數產生演算法進行多次反覆運算,便可以產生相應的多個亂數。
請參閱圖2。本說明書提供一種資料處理系統的實施例。
在該實施例中,所述資料處理系統可以包括亂數伺服器、第一設備和第二設備。
所述亂數伺服器可以為一個伺服器;或者,還可以為包括多個伺服器的伺服器叢集。所述亂數伺服器作為一個可信任的協力廠商(TTP,Trusted Third Party),用於分別向所述第一設備和所述第二設備下發隨機種子和亂數。具體地,所述亂數伺服器可以基於第一隨機種子、第二隨機種子、第三隨機種子和第四隨機種子分別依次產生第一亂數集合、第二亂數集合、第三亂數集合和第四亂數集合;可以基於所述第一亂數集合、所述第二亂數集合、所述第三亂數集合和所述第四亂數集合分別產生第五亂數集合和第六亂數集合;所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述第六亂數集合中的亂數滿足預設條件;可以向第一設備發送所述第一隨機種子、所述第二隨機種子和所述第五亂數集合;可以向第二設備發送所述第三隨機種子、所述第四隨機種子和所述第六亂數集合。
所述第一設備和所述第二設備均可以為伺服器、手機、平板電腦、或個人電腦等設備;或者,也均可以為由多台設備組成的系統,例如由多個伺服器組成的伺服器叢集。所述第一設備和所述第二設備可以為參與多方安全計算的雙方。具體地,所述第一設備可以接收所述第一隨機種子、所述第二隨機種子和所述第五亂數集合;可以基於所述第一隨機種子和所述第二隨機種子在本地分別產生所述第一亂數集合和所述第二亂數集合。所述第二設備可以接收所述第三隨機種子、所述第四隨機種子和所述第六亂數集合;可以基於所述第三隨機種子和所述第四隨機種子在本地分別產生所述第三亂數集合和所述第四亂數集合。如此所述第一設備可以基於所述第一亂數集合、所述第二亂數集合和所述第五亂數集合,所述第二設備可以基於所述第三亂數集合、所述第四亂數集合和所述第六亂數集合,進行多方安全計算。
考慮到基於相同的隨機種子,由不同的實施主體執行相同的亂數產生演算法,得到的亂數是相同的。因此所述亂數伺服器、所述第一設備和所述第二設備之間可以約定有亂數產生演算法。所述亂數產生演算法可以包括平方取中法(Midsquare Method)、線性同餘法(Linear Congruential Method)等等。這樣基於所述第一隨機種子,所述亂數伺服器和所述第一設備通過執行約定的亂數產生演算法,可以獲得相同的第一亂數集合。相類似地,所述亂數伺服器和所述第一設備還可以獲得相同的第二亂數集合。所述亂數伺服器和所述第二設備可以獲得相同的第三亂數集合和第四亂數集合。
本說明書還提供一種資料互動方法的實施例。請參閱圖3。該實施例可以包括以下步驟。
步驟S11:亂數伺服器基於第一隨機種子、第二隨機種子、第三隨機種子和第四隨機種子分別產生第一亂數集合、第二亂數集合、第三亂數集合和第四亂數集合。
在一些實施例中,所述第一隨機種子、所述第二隨機種子、所述第三隨機種子和所述第四隨機種子均為多方安全計算隨機種子,基於所述多方安全計算隨機種子產生的亂數可以用於參與多方安全計算。所述第一隨機種子、所述第二隨機種子、所述第三隨機種子和所述第四隨機種子可以是所述亂數伺服器產生的;或者,也可以是其它電子設備發來的,本實施例對此並不做具體限定。所述第一隨機種子可以用於產生第一亂數集合中的亂數,所述第二隨機種子可以用於產生第二亂數集合中的亂數,所述第三隨機種子可以用於產生第三亂數集合中的亂數,所述第四隨機種子可以用於產生第四亂數集合中的亂數。其中,所述第一亂數集合、所述第二亂數集合、所述第三亂數集合和所述第四亂數集合中均可以包括至少一個用於參與多方安全計算的亂數。
所述第一亂數集合、所述第二亂數集合、所述第三亂數集合和所述第四亂數集合中的亂數之間可以具有對應關係。在一個場景示例中,所述第一亂數集合可以為
,
表示所述第一亂數集合中的第
i
個亂數
u 0
。所述第二亂數集合可以為
,
表示所述第二亂數集合中的第
i
個亂數
v 0
。所述第三亂數集合可以為
,
表示所述第三亂數集合中的第
i
個亂數
u 1
。所述第四亂數集合可以為
,
表示所述第四亂數集合中的第
i
個亂數
v 1
。那麼,
、
、
和
之間可以具有對應關係。
i
為大於0的自然數。
在一些實施例中,所述第一亂數集合可以包括一個亂數。如此所述亂數伺服器可以以所述第一隨機種子為初始條件,利用約定的亂數產生演算法產生一個亂數作為所述第一亂數集合中的亂數。或者,所述第一亂數集合還可以包括多個亂數。如此所述亂數伺服器可以以所述第一隨機種子為初始條件,利用約定的亂數產生演算法進行多次反覆運算,得到多個亂數作為所述第一亂數集合中的亂數。所述亂數伺服器產生第二亂數集合、第三亂數集合和第四亂數集合的過程,可以與產生第一亂數集合的過程相類似,在此不再贅述。
步驟S13:亂數伺服器基於所述第一亂數集合、所述第二亂數集合、所述第三亂數集合和所述第四亂數集合分別產生第五亂數集合和第六亂數集合。
在一些實施例中,所述第五亂數集合和所述第六亂數集合中均可以包括至少一個亂數。所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述第六亂數集合中的亂數之間可以具有對應關係。延續前面的場景示例,所述第五亂數集合可以為
,
表示所述第五亂數集合中的第
i
個亂數
z 0
。所述第六亂數集合可以為
,
表示所述第六亂數集合中的第
i
個亂數
z 1
。那麼,
、
、
、
、
和
之間可以具有對應關係。
所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述第六亂數集合中的亂數之間可以滿足預設條件。延續前面的場景示例,所述預設條件可以為:
。
在一些實施例中,所述亂數伺服器可以產生第五亂數集合;可以基於所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述預設條件,計算第一資料作為所述第六亂數集合中的亂數。延續前面的場景示例,所述亂數伺服器可以產生亂數
作為第五亂數集合
R
5中的亂數;可以基於亂數
、
、
、
、
和預設條件
計算第一資料
作為第六亂數集合
R
6中的亂數。
或者,所述亂數伺服器還可以產生第六亂數集合;可以基於所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第六亂數集合和所述預設條件,計算第二資料作為所述第五亂數集合中的亂數。延續前面的場景示例,所述亂數伺服器可以產生亂數
作為第六亂數集合
R
6中的亂數;可以基於
、
、
、
、
和預設條件
計算第二資料
作為第五亂數集合
R
5中的亂數。
步驟S15:亂數伺服器向第一設備發送所述第一隨機種子、所述第二隨機種子和所述第五亂數集合。
在一些實施例中,所述亂數伺服器可以向所述第一設備發送所述第一隨機種子、所述第二隨機種子和所述第五亂數集合。所述第一設備可以接收所述第一隨機種子、所述第二隨機種子和所述第五亂數集合。
步驟S17:亂數伺服器向第二設備發送所述第三隨機種子、所述第四隨機種子和所述第六亂數集合。
在一些實施例中,所述亂數伺服器還可以向所述第二設備發送所述第三隨機種子、所述第四隨機種子和所述第六亂數集合。所述第二設備可以接收所述第三隨機種子、所述第四隨機種子和所述第六亂數集合。
步驟S19:第一設備接收所述第一隨機種子、所述第二隨機種子和所述第五亂數集合;基於所述第一隨機種子和所述第二隨機種子分別產生所述第一亂數集合和所述第二亂數集合。
在一些實施例中,所述第一設備可以基於所述第一隨機種子和所述第二隨機種子,利用約定的亂數產生演算法在本地分別產生所述第一亂數集合和所述第二亂數集合。
步驟S21:第二設備接收所述第三隨機種子、所述第四隨機種子和所述第六亂數集合;基於所述第三隨機種子和所述第四隨機種子分別產生所述第三亂數集合和所述第四亂數集合。
在一些實施例中,所述第二設備可以基於所述第三隨機種子和所述第四亂數集合,利用約定的亂數產生演算法在本地分別產生所述第三亂數集合和所述第四亂數集合。
步驟S23:第一設備基於所述第一亂數集合、所述第二亂數集合和所述第五亂數集合,第二設備基於所述第三亂數集合、所述第四亂數集合和所述第六亂數集合,進行多方安全計算。
在一些實施例中,由所述第一設備在本地產生的第一亂數集合和第二亂數集合分別與由所述亂數伺服器在本地產生的第一亂數集合和第二亂數集合相同,並且由所述第二設備在本地產生的第三亂數集合和第四亂數集合分別與由所述亂數伺服器在本地產生的第三亂數集合和第四亂數集合相同。因此所述第一設備在本地產生的第一亂數集合、所述第一設備在本地產生的第二亂數集合、所述第二設備在本地產生的第三亂數集合、所述第二設備在本地產生的第四亂數集合、所述亂數伺服器產生的第五亂數集合、所述亂數伺服器產生的第六亂數集合中的亂數之間滿足前面的預設條件。這樣所述第一設備可以基於所述第一亂數集合、所述第二亂數集合和所述第五亂數集合,所述第二設備可以基於所述第三亂數集合、所述第四亂數集合和所述第六亂數集合,進行多方安全計算。
秘密分享是一種用於實現多方安全計算的演算法。請參閱圖4。以下介紹所述第一設備和所述第二設備進行秘密分享的一個場景示例。
在本場景示例中,所述第一設備擁有第一業務資料集合
和第二業務資料集合
。其中,
表示所述第一業務資料集合中的第
i
個業務資料
a 0
,
表示所述第二業務資料集合中的第
i
個業務資料
b 0
。
所述第二設備擁有第三業務資料集合
和第四業務資料集合
。其中,
表示所述第三業務資料集合中的第
i
個業務資料
a 1
,
表示所述第四業務資料集合中的第
i
個業務資料
b 1
。
可以理解為業務資料
的一個份額,
可以理解為業務資料
的另一個份額。
。相類似地,
可以理解為業務資料
的一個份額,
可以理解為業務資料
的另一個份額,
。
在本場景示例中,所述第一設備可以產生第一亂數集合
和第二亂數集合
;可以接收來自亂數伺服器的第五亂數集合
。
所述第二設備可以產生第三亂數集合
和第四亂數集合
;可以接收來自亂數伺服器的第六亂數集合
。
、
、
、
、
和
分別表示所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述第六亂數集合中的第
i
個亂數。
、
、
、
、
和
之間滿足如下預設條件:
。
在本場景示例中,所述第一設備可以基於業務資料
、業務資料
、亂數
、亂數
和亂數
,所述第二設備可以基於業務資料
、業務資料
、亂數
、亂數
和亂數
,秘密分享乘積
。所述第一設備可以獲得乘積
的一個份額
,所述第二設備可以獲得乘積
的另一個份額
。
。具體過程如下。
所述第一設備可以計算
和
;可以向所述第二設備發送
和
。所述第二設備可以接收
和
。
所述第二設備可以計算
和
;可以向所述第一設備發送
和
。所述第一設備可以接收
和
。
所述第一設備可以計算
;可以計算
。所述第二設備可以計算
;可以計算
。這樣所述第一設備和所述第二設備均獲得了
和
。
所述第一設備可以計算
。所述第二設備可以計算
。這樣便實現了秘密分享。
本說明書實施例的資料互動方法,亂數伺服器可以向第一設備下發第一隨機種子和第二隨機種子;可以向第二設備下發第三隨機種子和第四隨機種子。亂數伺服器通過向第一設備和第二設備下發隨機種子,可以減少下發的亂數數量,從而減少了網路頻寬的佔用。
以下介紹本說明書實施例的一個應用場景示例。需要說明的是,該應用場景示例的目的僅在於更好地說明本說明書的實施例,並不構成對本說明書實施例的不當限定。
在合作安全模組化的場景中,出於保護資料隱私的考慮,多個資料方可以在不洩漏自身所擁有的資料的前提下,基於自身擁有的資料,對資料處理模型進行協作訓練。所述資料處理模型包括但不限於邏輯迴歸模型、線性迴歸模型、神經網路模型等。在對資料處理模型進行訓練的過程中,可以利用模型參數最佳化方法對資料處理模型的模型參數進行最佳化調整。模型參數最佳化方法可以包括梯度下降法、牛頓法等等。考慮到在合作安全模組化的場景中,用於對資料處理模型進行訓練的資料分散在合作模組化的各資料方。因此在合作安全模組化的場景中,所述模型參數最佳化方法可以採用秘密分享演算法來實現。
通常情況下,可以由協力廠商向第一設備下發第一亂數集合、第二亂數集合和第五亂數集合,並向第二設備下發第三亂數集合、第四亂數集合和第六亂數集合。所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述第六亂數集合中的亂數可以滿足預設條件。這樣所述第一設備可以基於所述第一亂數集合、所述第二亂數集合和所述第五亂數集合,所述第二設備可以基於所述第三亂數集合、所述第四亂數集合和所述第六亂數集合,利用秘密分享演算法實現所述模型參數最佳化方法,從而實現對資料處理模型的模型參數進行最佳化調整。但是,由於協力廠商需要向所述第一設備下發第一亂數集合、第二亂數集合和第五亂數集合,並且需要向所述第二設備下發第三亂數集合、第四亂數集合和第六亂數集合,使得協力廠商下發的亂數的數量較多,從而佔用了大量的網路頻寬。
基於前面實施例中的資料互動方法可以解決網路頻寬佔用較大的問題。具體地,協力廠商可以向第一設備下發第一隨機種子、第二隨機種子和第五亂數集合;可以向第二設備下發第三隨機種子、第四隨機種子和第六亂數集合。所述第一設備可以接收所述第一隨機種子、所述第二隨機種子和所述第五亂數集合;可以基於所述第一隨機種子和所述第二隨機種子分別產生所述第一亂數集合和所述第二亂數集合。所述第二設備可以接收所述第三隨機種子、所述第四隨機種子和所述第六亂數集合;可以基於所述第三隨機種子和所述第四隨機種子分別產生所述第三亂數集合和所述第四亂數集合。如此所述第一設備可以基於所述第一亂數集合、所述第二亂數集合和所述第五亂數集合,所述第二設備可以基於所述第三亂數集合、所述第四亂數集合和所述第六亂數集合,利用秘密分享演算法實現所述模型參數最佳化方法,從而實現對資料處理模型的模型參數進行最佳化調整。協力廠商通過向第一設備和第二設備下發隨機種子,可以減少下發的亂數數量,減少了網路頻寬的佔用。
基於同樣的發明構思,本說明書還提供資料互動方法的另一個實施例。請參閱圖5。該實施例可以應用於亂數伺服器,可以包括以下步驟。
步驟S31:基於第一隨機種子、第二隨機種子、第三隨機種子和第四隨機種子分別產生第一亂數集合、第二亂數集合、第三亂數集合和第四亂數集合。
在一些實施例中,所述第一隨機種子、所述第二隨機種子、所述第三隨機種子和所述第四隨機種子可以是所述亂數伺服器產生的;或者,也可以是其它電子設備發來的。所述第一隨機種子可以用於產生第一亂數集合中的亂數,所述第二隨機種子可以用於產生第二亂數集合中的亂數,所述第三隨機種子可以用於產生第三亂數集合中的亂數,所述第四隨機種子可以用於產生第四亂數集合中的亂數。其中,所述第一亂數集合、所述第二亂數集合、所述第三亂數集合和所述第四亂數集合中均可以包括至少一個亂數。所述第一亂數集合、所述第二亂數集合、所述第三亂數集合和所述第四亂數集合中的亂數之間可以具有對應關係。
在一些實施例中,所述第一亂數集合可以包括一個亂數。如此所述亂數伺服器可以以所述第一隨機種子為初始條件,利用約定的亂數產生演算法產生一個亂數作為所述第一亂數集合中的亂數。或者,所述第一亂數集合還可以包括多個亂數。如此所述亂數伺服器可以以所述第一隨機種子為初始條件,利用約定的亂數產生演算法進行多次反覆運算,得到多個亂數作為所述第一亂數集合中的亂數。所述亂數伺服器產生第二亂數集合、第三亂數集合和第四亂數集合的過程,可以與產生第一亂數集合的過程相類似,在此不再贅述。
步驟S33:基於所述第一亂數集合、所述第二亂數集合、所述第三亂數集合和所述第四亂數集合分別產生第五亂數集合和第六亂數集合。
在一些實施例中,所述第五亂數集合和所述第六亂數集合中均可以包括至少一個亂數。所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述第六亂數集合中的亂數之間可以具有對應關係。
所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述第六亂數集合中的亂數之間可以滿足預設條件。
在一些實施例中,所述亂數伺服器可以產生第五亂數集合;可以基於所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述預設條件,計算第一資料作為所述第六亂數集合中的亂數。
或者,所述亂數伺服器還可以產生第六亂數集合;可以基於所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第六亂數集合和所述預設條件,計算第二資料作為所述第五亂數集合中的亂數。
步驟S35:向第一設備發送所述第一隨機種子、所述第二隨機種子和所述第五亂數集合。
在一些實施例中,所述亂數伺服器可以向第一設備發送所述第一隨機種子和所述第二隨機種子;以便所述第一設備基於所述第一隨機種子和所述第二隨機種子分別產生第一亂數集合和第二亂數集合。
在一些實施例中,所述第一設備可以基於所述第一隨機種子和所述第二隨機種子在本地分別產生第一亂數集合和第二亂數集合;可以基於所述第一亂數集合、所述第二亂數集合和所述第五亂數集合與所述第二設備進行多方安全計算。
步驟S37:向第二設備發送所述第三隨機種子、所述第四隨機種子和所述第六亂數集合。
在一些實施例中,所述亂數伺服器可以向第二設備發送所述第三隨機種子和所述第四隨機種子;以便所述第二設備基於所述第三隨機種子和所述第四隨機種子分別產生第三亂數集合和第四亂數集合。
在一些實施例中,所述第二設備可以基於所述第三隨機種子和所述第四隨機種子在本地分別產生第三亂數集合和第四亂數集合;可以基於所述第三亂數集合、所述第四亂數集合和所述第六亂數集合與所述第一設備進行多方安全計算。
本說明書實施例的資料互動方法,亂數伺服器通過向第一設備和第二設備下發隨機種子,可以減少下發的亂數數量,從而減少了網路頻寬的佔用。
基於同樣的發明構思,本說明書還提供資料互動方法的另一個實施例。請參閱圖6。該實施例可以應用於電子設備,所述電子設備可以包括第一設備和第二設備。該實施例可以包括以下步驟。
步驟S41:接收第一隨機種子、第二隨機種子和第一亂數集合。
在一些實施例中,亂數伺服器可以向所述電子設備發送第一隨機種子、第二隨機種子和第一亂數集合。所述電子設備可以接收亂數伺服器發來的第一隨機種子、第二隨機種子和第一亂數集合。
步驟S43:基於所述第一隨機種子和所述第二隨機種子分別產生第二亂數集合和第三亂數集合。
在一些實施例中,所述亂數伺服器和所述電子設備之間可以約定有亂數產生演算法。所述電子設備可以基於所述第一隨機種子和所述第二隨機種子,利用約定的亂數產生演算法分別產生所述第二亂數集合和所述第三亂數集合,以便基於所述第一亂數集合、所述第二亂數集合和所述第三亂數集合執行多方安全計算。
本說明書實施例的資料互動方法,電子設備可以接收亂數伺服器下發的第一隨機種子、第二隨機種子和第一亂數集合;可以基於所述第一隨機種子和所述第二隨機種子分別產生第二亂數集合和第三亂數集合,以便基於所述第一亂數集合、所述第二亂數集合和所述第三亂數集合執行多方安全計算。
請參閱圖7。本說明書還提供資料互動裝置的一個實施例。該實施例可以應用於亂數伺服器,可以包括以下單元。
第一產生單元51,用於基於第一隨機種子、第二隨機種子、第三隨機種子和第四隨機種子分別依次產生第一亂數集合、第二亂數集合、第三亂數集合和第四亂數集合;
第二產生單元53,用於基於所述第一亂數集合、所述第二亂數集合、所述第三亂數集合和所述第四亂數集合分別產生第五亂數集合和第六亂數集合;所述第一亂數集合、所述第二亂數集合、所述第三亂數集合、所述第四亂數集合、所述第五亂數集合和所述第六亂數集合中的亂數滿足預設條件;
第一發送單元55,用於向第一設備發送所述第一隨機種子、所述第二隨機種子和所述第五亂數集合;
第二發送單元57,向第二設備發送所述第三隨機種子、所述第四隨機種子和所述第六亂數集合。
請參閱圖8。本說明書還提供資料互動裝置的一個實施例。該實施例可以應用於電子設備,可以包括以下單元。
接收單元61,用於接收第一隨機種子、第二隨機種子和第一亂數集合;
產生單元63,用於基於所述第一隨機種子和所述第二隨機種子分別產生第二亂數集合和第三亂數集合,以便基於所述第一亂數集合、所述第二亂數集合和所述第三亂數集合執行多方安全計算。
請參閱圖9。本說明書實施例還提供一種伺服器。所述伺服器可以包括記憶體和處理器。
在本實施例中,所述記憶體包括但不限於動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)和靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。所述記憶體可以用於儲存電腦指令。
在本實施例中,所述處理器可以按任何適當的方式實現。例如,所述處理器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀媒體、邏輯閘、開關、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)、可程式設計邏輯控制器和嵌入微控制器的形式等等。所述處理器可以用於執行所述電腦指令以實現圖3所對應的實施例。
請參閱圖10。本說明書實施例還提供一種電子設備。所述電子設備可以包括記憶體和處理器。
在本實施例中,所述記憶體包括但不限於動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)和靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。所述記憶體可以用於儲存電腦指令。
在本實施例中,所述處理器可以按任何適當的方式實現。例如,所述處理器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀媒體、邏輯閘、開關、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)、可程式設計邏輯控制器和嵌入微控制器的形式等等。所述處理器可以用於執行所述電腦指令以實現圖4所對應的實施例。
需要說明的是,本說明書中的各個實施例均採用循序的方式描述,各個實施例之間相同或相似的部分互相參見即可,每個實施例重點說明的都是與其它實施例的不同之處。尤其,對於裝置實施例、伺服器實施例和電子設備實施例而言,由於其基本相似於資料互動方法實施例,所以描述的比較簡單,相關之處參見資料互動方法實施例的部分說明即可。
另外,可以理解的是,所屬技術領域中具有通常知識者在閱讀本說明書檔之後,可以無需進步性勞動想到將本說明書列舉的部分或全部實施例進行任意組合,這些組合也在本說明書公開和保護的範圍內。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都通過將改進的方法流程程式設計到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式設計邏輯裝置(Programmable Logic Device,PLD)(例如現場可程式設計閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由使用者對裝置程式設計來確定。由設計人員自行程式設計來把一個數位系統“集成”在一片PLD 上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片2。而且,如今,取代手工地製作積體電路晶片,這種程式設計也多半改用 “邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始碼也得用特定的程式設計語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL 也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language ) 與Verilog2。所屬技術領域中具有通常知識者也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯程式設計並程式設計到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、筆記型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件設備、遊戲控制台、平板電腦、穿戴式設備或者這些設備中的任何設備的組合。
通過以上的實施方式的描述可知,所屬技術領域中具有通常知識者可以清楚地瞭解到本說明書可借助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本說明書的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品可以儲存在儲存媒體中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本說明書各個實施例或者實施例的某些部分所述的方法。
本說明書可用於眾多通用或專用的電腦系統環境或配置中。例如:個人電腦、伺服器電腦、手持設備或可攜式設備、平板型設備、多處理器系統、基於微處理器的系統、機上盒、可程式設計的消費電子設備、網路PC、小型電腦、大型電腦、包括以上任何系統或設備的分散式運算環境等等。
本說明書可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式運算環境中實踐本說明書,在這些分散式運算環境中,由通過通信網路而被連接的遠端處理設備來執行任務。在分散式運算環境中,程式模組可以位於包括存放裝置在內的本地和遠端電腦儲存媒體中。
雖然通過實施例描繪了本說明書,發明所屬技術領域中具有通常知識者知道,本說明書有許多變形和變化而不脫離本說明書的精神,希望所附的申請專利範圍包括這些變形和變化而不脫離本說明書的精神。