下面將結合本說明書實施例中的附圖,對本說明書實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本說明書一部分實施例,而不是全部的實施例。基於本說明書中的實施例,本發明所屬技術領域具有通常知識者在沒有作出進步性勞動前提下所獲得的所有其他實施例,都應當屬於本說明書保護的範圍。
在相關技術中,可以根據私有集合求交協定(Private Set Intersection,PSI)獲得多個資料方所持有資料的交集,進而可以在交集的基礎上實現資料指標的統計。私有集合求交協定有多種實現方案。但是發明人發現,這些實現方案的安全性都不是很高,資料容易被洩漏。
同態加密(Homomorphic Encryption)是一種加密技術。它允許直接對密文資料進行運算得到仍是加密的結果,將其解密所得到的結果與對明文資料進行同樣運算的結果相同。實現同態加密的演算法例如可以包括Paillier演算法、Okamoto-Uchiyama演算法、Damgard-Jurik演算法等。
本說明書實施例提供一種資料處理系統。所述資料處理系統可以包括第一資料方和第二資料方,所述第一資料方和所述第二資料方可以分別為進行資料指標統計的雙方。所述資料方可以為電子設備。所述電子設備可以包括個人電腦、伺服器、手持設備、可攜式設備、平板型設備、多處理器裝置;或者,還可以包括由以上任何多個裝置或設備所構成的叢集等。
在一些實施例中,所述第一資料方可以持有標識資料集合。所述標識資料集合可以包括至少一個標識資料,所述標識資料可以用於標識業務資料。例如,所述標識資料可以為身份證號碼,所述業務資料可以為存款金額。所述第二資料方可以持有業務資料集合。所述業務資料集合可以包括至少一個子集合(為了與後續的密文子集合進行區分,以下稱為明文子集合)。所述明文子集合可以包括具有對應關係的標識資料和業務資料。這裡標識資料和業務資料具有對應關係可以理解為:標識資料用於標識業務資料。
在一些實施例中,所述標識資料集合和所述業務資料集合中的標識資料可以全部相同,或者,還可以部分相同。通過與所述第一資料方進行互動,所述第二資料方可以獲得統計指標。所述統計指標可以包括特定業務資料之和。所述特定業務資料可以包括:所述業務資料集合和所述標識資料集合間共有的標識資料所對應的業務資料。在此過程中,所述第一資料方不能夠洩漏自身持有的標識資料集合,所述第二資料方不能夠洩漏自身持有的業務資料集合。例如,所述第一資料方可以持有部分身份證號碼,所述第二資料方可以持有全量的身份證號碼及其對應的存款金額。那麼,所述統計指標可以包括:第一資料方持有的身份證號碼所對應的存款金額之和。
請參閱圖1。本說明書提供資料處理方法的一個實施例。該實施例可以包括以下步驟。
步驟S101:第一資料方對標識資料集合中的標識資料進行加密,將加密結果作為第一密文集合中的第一標識資料密文。
在一些實施例中,所述標識資料集合可以包括至少一個標識資料。所述第一資料方可以產生第一加密金鑰;可以採用加密演算法,根據所述第一加密金鑰分別對標識資料集合中的各個標識資料進行加密;可以將加密結果作為第一密文集合中的第一標識資料密文。
所述加密演算法可以具有交替性及/或確定性。交替性是指:採用加密演算法,根據兩個或兩個以上加密金鑰對明文資料進行疊代加密,其加密結果與根據改變順序後的兩個或兩個以上加密金鑰對明文資料進行疊代加密的加密結果相同。例如,採用加密演算法,根據加密金鑰
和
對明文資料
進行疊代加密得到加密結果
,根據加密金鑰
和
對明文資料
進行疊代加密得到加密結果
。那麼,
。確定性是指:採用加密演算法對同一明文資料分別進行多次加密,得到的多個加密結果相同。
所述加密演算法可以包括對稱加密演算法和非對稱加密演算法。在所述加密演算法為對稱加密演算法的條件下,所述第一資料方可以產生一個加密金鑰作為第一加密金鑰,與所述第一加密金鑰相對應的解密金鑰可以為所述第一加密金鑰自身。在所述加密演算法為非對稱加密演算法的條件下,所述第一資料方可以產生公私鑰對;可以將該公私鑰對中的公開金鑰作為第一加密金鑰;可以將該公私鑰對中的私鑰作為與所述第一加密金鑰相對應的解密金鑰。
所述加密演算法可以為同態加密演算法;或者,還可以為非同態加密演算法。
在一些實施例中,為了增加安全性,避免不同的加密結果之間具有明顯的規律性,所述第一資料方可以獲取所述標識資料集合中標識資料的編碼;可以對標識資料的編碼進行加密;可以將加密結果作為第一密文集合中的第一標識資料密文。所述編碼例如可以包括雜湊值,包括但不限於MD5、SHA1、SHA256、SHA384、SHA512、和CRC32等。當然,所述編碼還可以包括其它形式的編碼,本實施例不作具體限定。
步驟S103:第一資料方向第二資料方發送第一密文集合。
在一些實施例中,所述第一資料方可以直接向所述第二資料方發送第一密文集合。
在一些實施例中,為了增加安全性,避免所述第二資料方獲知第一密文集合中第一標識資料密文之間的位置關係,所述第一資料方還可以對所述第一密文集合中的第一標識資料密文進行亂序,得到亂序後的第一密文集合;可以向第二資料方發送亂序後的第一密文集合。
步驟S105:第二資料方接收第一密文集合;對第一密文集合中的第一標識資料密文進行加密,將加密結果作為第二密文集合中的第二標識資料密文。
在一些實施例中,所述第一資料方可以直接向所述第二資料方發送第一密文集合,所述第二資料方可以接收第一密文集合。或者,所述第一資料方還可以向所述第二資料方發送亂序後的第一密文集合,所述第二資料方可以接收亂序後的第一密文集合。
在一些實施例中,所述第二資料方可以產生第二加密金鑰;可以採用加密演算法,根據所述第二加密金鑰分別對第一密文集合中的各個第一標識資料密文進行加密;可以將加密結果作為第二密文集合中的第二標識資料密文。值得說明的是,由於所述第二標識資料密文是通過對第一標識資料密文進行加密得到的,因而所述第二標識資料密文是二次加密後的密文。
所述加密演算法可以包括對稱加密演算法和非對稱加密演算法。在所述加密演算法為對稱加密演算法的條件下,所述第二資料方可以產生一個加密金鑰作為第二加密金鑰,與所述第二加密金鑰相對應的解密金鑰可以為所述第二加密金鑰自身。在所述加密演算法為非對稱加密演算法的條件下,所述第二資料方可以產生公私鑰對;可以將該公私鑰對中的公開金鑰作為第二加密金鑰;可以將該公私鑰對中的私鑰作為與所述第二加密金鑰相對應的解密金鑰。
所述第二資料方採用的加密演算法可以與步驟S101中第一資料方採用的加密演算法相同。
步驟S107:第二資料方向第一資料方發送第二密文集合。
在一些實施例中,所述第二資料方可以直接向所述第一資料方發送第二密文集合。
在一些實施例中,為了增加安全性,避免第一資料方獲知第二密文集合中第二標識資料密文之間的位置關係,所述第二資料方還可以對所述第二密文集合中的第二標識資料密文進行亂序,得到亂序後的第二密文集合;可以向第一資料方發送亂序後的第二密文集合。
步驟S109:第一資料方接收第二密文集合;對第二密文集合中的第二標識資料密文進行解密,將解密結果作為第三密文集合中的第三標識資料密文。
在一些實施例中,所述第二資料方可以直接向所述第一資料方發送第二密文集合,所述第一資料方可以接收第二密文集合。或者,所述第二資料方還可以向所述第一資料方發送亂序後的第二密文集合,所述第一資料方可以接收亂序後的第二密文集合。
在一些實施例中,所述第一資料方可以根據與第一加密金鑰相對應的解密金鑰,分別對第二密文集合中的各個第二標識資料密文進行解密;可以將解密結果作為第三密文集合中的第三標識資料密文。值得說明的是,所述第三標識資料密文是通過對第二標識資料密文進行解密得到的。由於所述第二標識資料密文是二次加密後的密文,因而所述第三標識資料密文是一次加密後的密文。另外,由於步驟S101中第一資料方採用的加密演算法(即步驟S105中第二資料方採用的加密演算法)具有交替性,因而對第二標識資料密文進行解密後的解密結果,與根據第二加密金鑰對第一資料方持有的標識資料進行加密後的加密結果相同。從而可以實現,所述第一資料方在不洩漏自身持有的標識資料集合的條件下,獲得第三密文集合中的第三標識資料密文,即,獲得根據第二加密金鑰對自身持有的標識資料進行加密後的加密結果。
在一些實施例中,考慮到解密結果的位元位數較多,若直接將解密結果作為第三密文集合中的第三標識資料密文,則對第三密文集合的儲存會佔用較多的儲存空間,並且在第一資料方求取交集時(具體過程詳見後續步驟S115)會增加時間開銷。為此,所述第一資料方可以根據與第一加密金鑰相對應的解密金鑰,分別對第二密文集合中的各個第二標識資料密文進行解密;可以獲取解密結果的編碼;可以將解密結果的編碼作為第三密文集合中的第三標識資料密文。所述編碼例如可以包括雜湊值,包括但不限於MD5、SHA1、SHA256、SHA384、SHA512、和CRC32等。當然,所述編碼還可以包括其它形式的編碼,本實施例不作具體限定。解密結果的編碼的位元位元數小於解密結果的位元位數,這樣便可以減少第三密文集合中第三標識資料密文的位元位數。例如,受限於安全性的要求,解密結果的位元位數至少為256,而解密結果的雜湊值的位元位數則可以為80。
步驟S111:第二資料方根據業務資料集合產生第四密文集合。
在一些實施例中,所述業務資料集合可以包括至少一個明文子集合,所述明文子集合可以包括具有對應關係的標識資料和業務資料。所述第四密文集合可以包括至少一個密文子集合,每個密文子集合可以包括具有對應關係的第三標識資料密文和業務資料密文。
在一些實施例中,所述第二資料方可以產生第三加密金鑰。所述第二資料方可以採用加密演算法,根據所述第二加密金鑰對每個明文子集合中的標識資料進行加密,可以將加密結果作為密文子集合中的第三標識資料密文;可以採用同態加密演算法,根據第三加密金鑰對該明文子集合中的業務資料進行加密,可以將加密結果作為密文子集合中的業務資料密文。值得說明的是,這裡所述第二資料方對明文子集合中的標識資料進行加密時所採用的加密演算法可以與步驟S101中第一資料方採用的加密演算法相同。
所述第三加密金鑰可以與所述第二加密金鑰不同。具體地,所述第二資料方可以產生公私鑰對;可以將該公私鑰對中的公開金鑰作為第三加密金鑰;可以將該公私鑰對中的私鑰作為與所述第三加密金鑰相對應的解密金鑰。
在一些實施例中,考慮到加密結果的位元位數較多,若直接將標識資料的加密結果作為第四密文集合中的第三標識資料密文,則在第二資料方向第一資料方發送第四密文集合時會增加通信量,並且在第一資料方求取交集時(具體過程詳見後續步驟S115)會增加時間開銷。為此,所述第二資料方可以採用加密演算法,根據所述第二加密金鑰對每個明文子集合中的標識資料進行加密;可以獲取加密結果的編碼;可以將加密結果的編碼作為密文子集合中的第三標識資料密文。所述編碼例如可以包括雜湊值,包括但不限於MD5、SHA1、SHA256、SHA384、SHA512、和CRC32等。當然,所述編碼還可以包括其它形式的編碼,本實施例不作具體限定。加密結果的編碼的位元位元數小於加密結果的位元位數,這樣便可以減少第四密文集合中第三標識資料密文的位元位數。例如,受限於安全性的要求,加密結果的位元位數至少為256,而加密結果的雜湊值的位元位數則可以為80。
步驟S113:第二資料方向第一資料方發送第四密文集合。
在一些實施例中,所述第二資料方可以直接向所述第一資料方發送第四密文集合。
在一些實施例中,為了增加安全性,避免第一資料方獲知第四密文集合中密文子集合之間的位置關係,所述第二資料方還可以對所述第四密文集合中的密文子集合進行亂序,得到亂序後的第四密文集合;可以向第一資料方發送亂序後的第四密文集合。
步驟S115:第一資料方接收第四密文集合;獲取所述第三密文集合和所述第四密文集合之間共有的第三標識資料密文。
在一些實施例中,所述第二資料方可以直接向所述第一資料方發送第四密文集合,所述第一資料方可以接收第四密文集合。或者,所述第二資料方還可以向所述第一資料方發送亂序後的第四密文集合,所述第一資料方可以接收亂序後的第四密文集合。
在一些實施例中,所述第一資料方可以獲取所述第三密文集合和所述第四密文集合的交集,所述交集可以包括所述第三密文集合和所述第四密文集合之間共有的第三標識資料密文。所述第三密文集合中的第三標識資料密文和所述第四密文集合中的標識資料密文均是一次加密後的密文。這樣便可以實現在一次密文的基礎上求取交集。
步驟S117:第一資料方計算共有的第三標識資料密文所對應的業務資料密文的同態相加結果。
在一些實施例中,每個共有的第三標識資料密文在第四密文集合中可以對應有業務資料密文。這樣所述第一資料方可以獲取所述交集中的第三標識資料密文在第四密文集合中所對應的業務資料密文;可以計算所獲取業務資料密文的同態相加結果。
所述同態相加結果與將特定業務資料的和進行同態加密後的加密結果相同。所述特定業務資料可以包括:所述業務資料集合和所述標識資料集合間共有的標識資料所對應的業務資料。計算同態相加結果時採用的運算方式例如可以為加法運算、乘法運算等等。依賴於同態加密演算法性質的不同,計算同態相加結果時採用的具體運算方式也可以不同。在一個場景示例中,所述交集中的第三標識資料密文在第四密文集合中所對應的業務資料密文可以包括
、
和
。那麼,可以將業務資料密文
、
和
相加,得到同態相加結果
。在另一個場景示例中,所述交集中的第三標識資料密文在第四密文集合中所對應的業務資料密文可以包括
、
和
。那麼,可以將業務資料密文
、
和
相乘,得到同態相加結果
。
步驟S119:第一資料方向第二資料方發送同態相加結果。
步驟S121:第二資料方接收同態相加結果;對同態相加結果進行解密,得到統計指標。
在一些實施例中,所述第一資料方可以向所述第二資料方發送同態相加結果。所述第二資料方可以接收同態相加結果;可以根據與第三加密金鑰相對應的解密金鑰對同態相加結果進行解密,得到統計指標。所述統計指標可以包括特定業務資料之和,所述特定業務資料可以包括:所述業務資料集合和所述標識資料集合間共有的標識資料所對應的業務資料。
請參閱圖2。以下介紹本說明書實施例的一個應用場景示例。
所述第一資料方可以持有標識資料集合
,
表示標識資料,
表示所述標識資料集合中標識資料的數量。所述第一資料方可以產生第一加密金鑰
,與第一加密金鑰
相對應的解密金鑰可以為所述第一加密金鑰
自身。
所述第二資料方可以持有業務資料集合
,
表示明文子集合,
表示標識資料,
表示業務資料,
表示所述業務資料集合中明文子集合的數量。所述第二資料方可以產生第二加密金鑰
,與第二加密金鑰
相對應的解密金鑰可以為所述第二加密金鑰
自身。所述第二資料方還可以產生公私鑰對
和
;可以將公開金鑰
作為第三加密金鑰;可以將私鑰
作為與第三加密金鑰
相對應的解密金鑰。
所述第一資料方可以獲取標識資料集合
中標識資料的雜湊值;可以根據第一加密金鑰
對標識資料的雜湊值進行加密;可以將加密結果作為第一密文集合中的第一標識資料密文。所述第一密文集合可以表示為
,
表示第一標識資料密文。所述第一資料方可以對第一密文集合中的第一標識資料密文進行亂序,得到亂序後的第一密文集合;可以向第二資料方發送亂序後的第一密文集合。
第二資料方可以接收亂序後的第一密文集合;可以根據第二加密金鑰
對第一密文集合中的各個第一標識資料密文進行加密;可以將加密結果作為第二密文集合中的第二標識資料密文。所述第二密文集合可以表示為
,
表示第二標識資料密文。所述第二資料方可以對第二密文集合中的第二標識資料密文進行亂序,得到亂序後的第二密文集合;可以向第一資料方發送亂序後的第二密文集合。
所述第一資料方可以接收亂序後的第二密文集合;可以根據與第一加密金鑰
相對應的解密金鑰,分別對第二密文集合中的各個第二標識資料密文進行解密;可以獲取解密結果的雜湊值;可以將解密結果的雜湊值作為第三密文集合中的第三標識資料密文。所述第三密文集合可以表示為
,
表示第三標識資料密文,
表示對第二標識資料密文進行解密後的解密結果。
所述第二資料方可以根據業務資料集合
產生第四密文集合。所述第四密文集合可以表示為
,
表示密文子集合,
表示第三標識資料密文,
表示業務資料密文,
具體為同態密文。所述第二資料方可以對第四密文集合中的密文子集合進行亂序,得到亂序後的第四密文集合;可以向第一資料方發送亂序後的第四密文集合。
所述第一資料方可以接收亂序後的第四密文集合;可以獲取所述第三密文集合和所述第四密文集合的交集;可以計算交集中的第三標識資料密文所對應的業務資料密文的同態相加結果
;可以向第二資料方發送同態相加結果
。
所述第二資料方可以接收同態相加結果;可以根據與第三加密金鑰
相對應的解密金鑰
對同態相加結果進行解密,得到統計指標
。
在本實施例中,第一資料方和第二資料方可以在不洩漏自身擁有的資料的條件下,共同完成資料指標的統計。另外,在本實施例中,所述第一資料方可以在不洩漏自身持有的標識資料集合的條件下,所述第二資料方可以在不洩漏自身持有的業務資料集合的條件下,在標識資料的一次密文的基礎上求取交集。所述第二資料方進而可以根據所述交集獲得統計指標。由於是在標識資料的一次密文的基礎上求取交集,一方面可以保證資料不會被洩漏,安全性較高;另一方面可以減少計算量(例如第一資料方無需對第四密文集合中的第三標識資料密文進行再次加密)。
基於同樣的發明構思,本說明書還提供另一種資料處理方法的實施例。請參閱圖3。該實施例以持有標識資料集合的第一資料方為執行主體,所述標識資料集合可以包括至少一個標識資料。該實施例可以包括以下步驟。
步驟S201:對標識資料進行加密,將加密結果作為第一密文集合中的第一標識資料密文。
在一些實施例中,所述第一資料方可以產生加密金鑰;可以採用加密演算法,根據所述加密金鑰分別對標識資料集合中的各個標識資料進行加密;可以將加密結果作為第一密文集合中的第一標識資料密文。
在一些實施例中,所述第一資料方可以獲取所述標識資料集合中標識資料的編碼;可以對標識資料的編碼進行加密;可以將加密結果作為第一密文集合中的第一標識資料密文。
步驟S203:向第二資料方發送第一密文集合。
在一些實施例中,所述第一資料方可以直接向所述第二資料方發送第一密文集合。
在一些實施例中,所述第一資料方還可以對所述第一密文集合中的第一標識資料密文進行亂序,得到亂序後的第一密文集合;可以向第二資料方發送亂序後的第一密文集合。
步驟S205:接收第二資料方發來的第二密文集合,所述第二密文集合包括至少一個第二標識資料密文,所述第二標識資料密文通過對第一標識資料密文進行加密得到。
在一些實施例中,所述第二資料方可以接收第一密文集合;可以對第一密文集合中的第一標識資料密文進行加密;可以將加密結果作為第二密文集合中的第二標識資料密文;可以向第一資料方發送第二密文集合。所述第一資料方可以接收第二密文集合。
步驟S207:對第二標識資料密文進行解密,將解密結果作為第三密文集合中的第三標識資料密文。
在一些實施例中,所述第一資料方可以根據與所述加密金鑰相對應的解密金鑰,分別對第二密文集合中的各個第二標識資料密文進行解密;可以將解密結果作為第三密文集合中的第三標識資料密文。
在一些實施例中,所述第一資料方可以根據與加密金鑰相對應的解密金鑰,分別對第二密文集合中的各個第二標識資料密文進行解密;可以獲取解密結果的編碼;可以將解密結果的編碼作為第三密文集合中的第三標識資料密文。
步驟S209:接收第二資料方發來的第四密文集合,所述第四密文集合包括至少一個密文子集合,所述密文子集合包括第三標識資料密文和業務資料密文,所述業務資料密文包括同態密文。
在一些實施例中,所述第二資料方可以根據業務資料集合產生第四密文集合,具體的產生過程可以參見前面步驟S111中的相關描述。所述第二資料方可以向第一資料方發送第四密文集合。所述第一資料方可以接收第四密文集合。
步驟S211:獲取所述第三密文集合和所述第四密文集合間共有的第三標識資料密文。
在一些實施例中,所述第一資料方可以獲取所述第三密文集合和所述第四密文集合的交集,所述交集包括所述第三密文集合和所述第四密文集合之間共有的第三標識資料密文。
步驟S213:計算共有的第三標識資料密文所對應的業務資料密文的同態相加結果。
步驟S215:向第二資料方發送同態相加結果。
在本實施例中,通過與第二資料方進行互動,所述第一資料方可以獲得第三密文集合和第四密文集合;可以獲取所述第三密文集合和所述第四密文集合之間共有的第三標識資料密文;可以計算共有的第三標識資料密文所對應的業務資料密文的同態相加結果;可以向第二資料方發送同態相加結果。以便第二資料方根據同態相加結果獲得統計指標。
基於同樣的發明構思,本說明書還提供另一種資料處理方法的實施例。請參閱圖4。該實施例以持有業務資料集合的第二資料方為執行主體,所述業務資料集合可以包括至少一個明文子集合,所述明文子集合可以包括標識資料和業務資料。該實施例可以包括以下步驟。
步驟S301:產生第一密文集合,所述第一密文集合包括至少一個密文子集合,所述密文子集合包括第一標識資料密文和業務資料密文,所述第一標識資料密文通過對標識資料進行加密得到,所述業務資料密文由同態加密演算法通過對業務資料進行加密得到。
在一些實施例中,所述第二資料方可以根據業務資料集合產生第一密文集合,具體的產生過程可以參見前面步驟S111中有關第四密文集合的產生過程。
步驟S303:向第一資料方發送第一密文集合。
在一些實施例中,所述第二資料方可以直接向所述第一資料方發送第一密文集合。
在一些實施例中,所述第二資料方還可以對所述第一密文集合中的密文子集合進行亂序,得到亂序後的第一密文集合;可以向第一資料方發送亂序後的第一密文集合。
步驟S305:接收第一資料方發來的特定業務資料密文的同態相加結果。
步驟S307:對所述同態相加結果進行解密,得到統計指標。
在一些實施例中,所述第二資料方還可以接收第一資料方發來的第二密文集合。所述第二密文集合可以包括至少一個第二標識資料密文,所述第二標識資料密文通過對第一資料方持有的標識資料進行加密得到。所述第二資料方可以對第二標識資料密文進行加密;可以將加密結果作為第三密文集合中的第三標識資料密文;可以向第一資料方發送第三密文集合,以便第一資料方根據第三密文集合產生第四密文集合。所述第四密文集合可以包括至少一個第一標識資料密文。其中,所述第二資料方可以直接向第一資料方發送第三密文集合。或者,所述第二資料方還可以對第三密文集合中的第三標識資料密文進行亂序,得到亂序後的第三密文集合;可以向第一資料方發送亂序後的第三密文集合。所述特定業務資料密文可以包括:所述第一密文集合和所述第四密文集合間共有的第一標識資料密文所對應的業務資料密文。
值得說明的是,本實施例中的第一密文集合、第二密文集合、第三密文集合、第四密文集合可以分別參見圖1所對應實施例中有關第四密文集合、第一密文集合、第二密文集合、第三密文集合的描述。
在本實施例中,通過與第一資料方進行互動,所述第一資料方可以獲得同態相加結果;可以對所述同態相加結果進行解密,得到統計指標。
基於同樣的發明構思,本說明書還提供一種資料處理裝置的實施例。請參閱圖5。該實施例可以應用於持有標識資料集合的第一資料方,所述標識資料集合可以包括至少一個標識資料。該實施例可以包括以下單元。
加密單元401,用於對標識資料進行加密,將加密結果作為第一密文集合中的第一標識資料密文;
第一發送單元403,用於向第二資料方發送第一密文集合;
第一接收單元405,用於接收第二資料方發來的第二密文集合,所述第二密文集合包括至少一個第二標識資料密文,所述第二標識資料密文通過對第一標識資料密文進行加密得到;
解密單元407,用於對第二標識資料密文進行解密,將解密結果作為第三密文集合中的第三標識資料密文;
第二接收單元409,用於接收第二資料方發來的第四密文集合,所述第四密文集合包括至少一個密文子集合,所述密文子集合包括第三標識資料密文和業務資料密文,所述業務資料密文包括同態密文;
獲取單元411,用於獲取所述第三密文集合和所述第四密文集合共有的第三標識資料密文;
計算單元413,用於計算共有的第三標識資料密文所對應的業務資料密文的同態相加結果;
第二發送單元415,用於向第二資料方發送同態相加結果。
基於同樣的發明構思,本說明書還提供另一種資料處理裝置的實施例。請參閱圖6。該實施例可以應用於持有業務資料集合的第二資料方,所述業務資料集合可以包括至少一個明文子集合,所述明文子集合可以包括標識資料和業務資料。該實施例可以包括以下單元。
產生單元501,用於產生第一密文集合,所述第一密文集合包括至少一個密文子集合,所述密文子集合包括第一標識資料密文和業務資料密文,所述第一標識資料密文通過對標識資料進行加密得到,所述業務資料密文由同態加密演算法通過對業務資料進行加密得到;
發送單元503,用於向第一資料方發送第一密文集合;
接收單元505,用於接收第一資料方發來的特定業務資料密文的同態相加結果;
解密單元507,用於對所述同態相加結果進行解密,得到統計指標。
下面介紹本說明書電子設備的一個實施例。圖7是該實施例中一種電子設備的硬體結構示意圖。如圖7所示,所述電子設備可以包括一個或多個(圖中僅示出一個)處理器、記憶體和傳輸模組。當然,本發明所屬技術領域具有通常知識者可以理解,圖7所示的硬體結構僅為示意,其並不對上述電子設備的硬體結構造成限定。在實際中所述電子設備還可以包括比圖7所示更多或者更少的元件單元;或者,具有與圖7所示不同的配置。
所述記憶體可以包括高速隨機記憶體;或者,還可以包括非揮發性記憶體,例如一個或者多個磁性儲存裝置、快閃記憶體、或者其他非揮發性固態記憶體。當然,所述記憶體還可以包括遠端設置的網路記憶體。所述遠端設置的網路記憶體可以通過諸如網際網路、企業內部網、區域網路、行動通信網等網路連接至所述電子設備。所述記憶體可以用於儲存應用軟體的程式指令或模組,例如本說明書圖3所對應實施例的程式指令或模組;及/或,本說明書圖4所對應實施例的程式指令或模組。
所述處理器可以按任何適當的方式實現。例如,所述處理器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀媒體、邏輯閘、開關、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)、可程式設計邏輯控制器和嵌入微控制器的形式等等。所述處理器可以讀取並執行所述記憶體中的程式指令或模組。
所述傳輸模組可以用於經由網路進行資料傳輸,例如經由諸如網際網路、企業內部網、區域網路、行動通信網等網路進行資料傳輸。
需要說明的是,本說明書中的各個實施例均採用循序的方式描述,各個實施例之間相同或相似的部分互相參見即可,每個實施例重點說明的都是與其它實施例的不同之處。尤其,對於裝置實施例和電子設備實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。另外,可以理解的是,本發明所屬技術領域具有通常知識者在閱讀本說明書檔之後,可以無需進步性勞動想到將本說明書列舉的部分或全部實施例進行任意組合,這些組合也在本說明書公開和保護的範圍內。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都通過將改進的方法流程程式設計到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式設計邏輯裝置(Programmable Logic Device, PLD)(例如現場可程式設計閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由使用者對裝置程式設計來確定。由設計人員自行程式設計來把一個數位系統“整合”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種程式設計也多半改用“邏輯編譯器(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、小型電腦、大型電腦、包括以上任何系統或設備的分散式運算環境等等。
本說明書可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式運算環境中實踐本說明書,在這些分散式運算環境中,由通過通信網路而被連接的遠端處理設備來執行任務。在分散式運算環境中,程式模組可以位於包括存放裝置在內的本地和遠端電腦儲存媒體中。
雖然通過實施例描繪了本說明書,本發明所屬技術領域具有通常知識者知道,本說明書有許多變形和變化而不脫離本說明書的精神,希望所附的申請專利範圍包括這些變形和變化而不脫離本說明書的精神。