本發明涉及隱私,具體涉及一種隱私集合求交方法、通信設備、電子設備及存儲介質。
背景技術:
1、隱私計算領域是多個參與方在不泄露各自數據的前提下,通過協作對他們的數據進行聯合處理分析的一類技術和系統的統稱。在隱私計算框架下,參與方的數據明文不出本地,在保護數據安全的同時實現多源數據跨域合作,可以解決數據保護與融合應用難題。
2、隱私集合求交是隱私計算領域的一個重要分支。目前,隱私集合求交主要基于密碼學理論實現。例如,參與方分別基于密碼學對自己的隱私數據進行加密,將加密后的數據發送給對方進行隱私集合求交。這些技術采用純密碼協議,不依賴硬件,得到了廣泛應用。
3、然而,采用純密碼協議進行隱私集合求交,參與方需要進行復雜運算,導致計算開銷大。而且這種純密碼方式,只是一種半誠實性模型,無法對參與方的行為進行約束,參與方可以在隱私集合求交過程中惡意發送其他數據,去窺探其他參與方的隱私數據,導致隱私集合求交的安全性比較低。
4、因此,如何降低隱私集合求交的復雜度以及提高隱私集合求交的安全性,是目前亟待解決的技術問題。
技術實現思路
1、本技術提供了一種隱私集合求交方法、通信設備、電子設備及存儲介質,通過可信執行環境對隱私集合進行承諾,降低隱私集合求交的復雜度,以及提高隱私集合求交的安全性。
2、第一方面,本技術實施例提供一種隱私集合求交方法,所述方法應用于第一可信執行環境,所述第一可信執行環境位于第一參與方;所述方法包括:所述第一可信執行環境對所述第一參與方的第一隱私集合進行承諾;所述第一可信執行環境與第二可信執行環境進行密鑰協商,得到第一密鑰,其中,所述第二可信執行環境位于第二參與方;所述第一可信執行環境基于所述第一密鑰,對所述第一隱私集合進行處理,得到第二隱私集合;所述第一可信執行環境從所述第二可信執行環境接收第三隱私集合,其中,所述第三隱私集合是所述第二可信執行環境基于所述第一密鑰,對所述第二參與方的第四隱私集合進行處理得到;所述第一可信執行環境基于所述第二隱私集合和所述第三隱私集合,確定所述第一隱私集合與所述第四隱私集合的交集。
3、可以看出,在本技術實施方式中,在每個參與方先部署可信執行環境,這樣在進行隱私集合求交時,利用可信執行環境對參與方需要進行隱私集合求交的隱私集合進行承諾,從而使參與方在隱私集合求交的過程,不能隨意更改或篡改該隱私集合,使參與方不能惡意發送數據去窺探其他參與方的隱私數據,進而保證了隱私集合求交過程中的安全性,可以保證參與方的全誠實性,提高了隱私集合求交的安全性。此外,在隱私集合求交的過程中,各個參與方只需要利用可信執行環境協商的密鑰,對隱私集合處理,即可獲取到交集,無需對隱私集合進行復雜的處理(比如,指數運算,等等),從而降低了隱私集合求交過程的復雜度。并且,本技術中只需在本地部署可信執行環境,無需引入第三方信任,可用于分布式場景。最后,整個隱私集合求交的過程,均在可信執行環境中進行,比如,密鑰的協商,這樣協商的密鑰只在可信執行環境中使用,不受參與方控制,參與方無法更改也無法獲得該密鑰,進一步保證隱私集合求交的安全性;又如,第二隱私集合與第三隱私集合的比對也是在可信執行環境中執行,不會有任何元素的泄漏,進一步保證隱私集合求交的安全性。
4、在本技術的一個實施方式中,所述第一可信執行環境對所述第一參與方的第一隱私集合進行承諾,包括:所述第一可信執行環境將所述第一隱私集合緩存到所述第一可信執行環境,以對所述第一隱私集合進行承諾。
5、首先說明,對于可信執行環境來說,緩存到可信執行環境的數據,則無法更改。因此,在本實施方式中,第一可信執行環境利用可信執行環境本身的緩存特性,通過緩存的方式即可對第一隱私集合進行承諾,簡化了承諾的復雜度,提高了承諾的效率。
6、在本技術的一個實施方式中,所述第一可信執行環境使用所述第一密鑰對所述第一隱私集合進行處理,得到第二隱私集合之前,所述方法還包括:所述第一可信執行環境從所述第一可信執行環境獲取緩存的所述第一隱私集合。
7、可以看出,在本實施方式中,在對第一隱私集合進行承諾的情況下,當第一可信執行環境對當前獲取到的隱私集合進行處理之前,首先對第一隱私集合進行緩承諾驗證,從而避免參與方在隱私集合求交過程中進行數據的更改。并且,由于是通過緩存機制對第一隱私集合進行承諾,故第一可信執行環境直接從緩存中獲取當前需要進行求交的隱私集合,即可保證該隱私集合即為承諾的第一隱私集合,完成對第一隱私集合的承諾驗證,降低了承諾驗證的復雜度,提高了承諾驗證的效率。
8、在本技術的一個實施方式中,所述第一可信執行環境對所述第一參與方的第一隱私集合進行承諾,包括:所述第一可信執行環境生成第二密鑰;所述第一可信執行環境基于所述第二密鑰,對所述第一隱私集合進行處理,得到所述第一隱私集合的哈希值;所述第一可信執行環境將所述第一隱私集合的哈希值以及所述第二密鑰存儲到所述第一可信執行環境,以對所述第一隱私集合進行承諾。
9、可以看出,在本實施方式,可以通過計算第一隱私集合的哈希值,對第一隱私集合進行承諾。這種承諾方式可以將隱私集合換算成一個哈希值進行承諾,減少了要承諾的數據量,這樣當第一可信執行環境的緩存空間有限或者第一隱私集合的數據量較多時,可以通過計算哈希值的方式,成功對第一隱私集合進行承諾,從而實現當第一可信執行環境無法通過緩存機制進行承諾時,可通過計算哈希值的方式進行承諾,保證了對隱私集合進行承諾的成功率。
10、在本技術的一個實施方式中,所述第一可信執行環境基于所述第二密鑰,對所述第一隱私集合進行處理,得到所述第一隱私集合的哈希值,包括:所述第一可信執行環境將所述第一隱私集合進行分塊,得到多個第一數據塊;所述第一可信執行環境基于所述第二密鑰,確定每個第一數據塊的消息認證碼;所述第一可信執行環境基于每個第一數據塊的消息認證碼進行哈希運算,得到所述第一隱私集合的哈希值。
11、可以看出,在本實施方式中,可通過對隱私集合進行分塊,獲取隱私集合的消息認證碼,這樣無論隱私集合的數據量有多大,均可以獲取隱私集合的哈希值,完成對隱私集合的承諾。并且,在對隱私集合分塊后,是計算每個第一數據塊的消息認證碼,由于消息認證碼是一種簡單的移位異或操作,從而降低了計算復雜,最后,基于每個第一數據塊的消息認證碼進行哈希運算,得到第一隱私集合的哈希值。
12、在本技術的一個實施方式中,所述第一可信執行環境基于所述第一密鑰,對所述第一隱私集合進行處理,得到第二隱私集合之前,所述方法還包括:所述第一可信執行環境獲取第五隱私集合,其中,所述第五隱私集合為所述第一參與方進行求交的隱私集合;所述第一可信執行環境基于所述第二密鑰,確定所述第五隱私集合的哈希值;若所述第五隱私集合的哈希值與所述第一隱私集合的哈希值相同,則所述第一可信執行環境通過對所述第一隱私集合的承諾驗證。
13、可以看出,在本實施方式中,第一可信執行環境對當前需要進行求交的隱私集合,即第五隱私集合進行承諾驗證,從而可以驗證第五隱私集合是否為承諾的第一隱私集合,從而避免參與方在求交的過程中對隱私集合進行篡改,提高了隱私集合求交的安全性。
14、在本技術的一個實施方式中,所述第一可信執行環境基于所述第二密鑰,確定所述第五隱私集合的哈希值,包括:所述第一可信執行環境對所述第五隱私集合進行分塊,得到多個第二數據塊,其中,所述第五隱私集合的分塊方式與所述第一隱私集合的分塊方式相同;所述第一可信執行環境基于所述第二密鑰,確定每個第二數據塊的消息認證碼;所述第一可信執行環境基于每個第二數據塊的消息認證碼進行哈希運算,得到所述第五隱私集合的哈希值。
15、可以看出,在本實施方式中,在進行隱私集合的承諾驗證時,可以對第五隱私集合進行分塊,以獲取第五隱私集合的哈希值,這樣無論第五隱私集合的數據量有多大,均可以獲取到第五隱私集合的哈希值,從而完成對第一隱私集合的承諾驗證。
16、在本技術的一個實施方式中,所述第一可信執行環境對所述第一參與方的第一隱私集合進行承諾,包括:所述第一可信執行環境獲取所述第一隱私集合的簽名;所述第一可信執行環境將所述第一隱私集合的簽名存儲到所述第一可信執行環境,以對所述第一隱私集合進行承諾。
17、可以看出,在本實施方式中,可以通過計算第一隱私集合的簽名,對第一隱私集合進行承諾。這種承諾方式可以將隱私集合換算成一個簽名進行承諾,減少了要承諾的數據量,這樣當第一可信執行環境的緩存空間有限或者第一隱私集合的數據量較多時,可以通過計算簽名的方式,成功對第一隱私集合進行承諾,從而實現當第一可信執行環境無法通過緩存機制進行承諾時,可通過計算簽名的方式進行承諾,保證了對隱私集合進行承諾的成功率。
18、在本技術的一個實施方式中,所述第一可信執行環境獲取所述第一隱私集合的簽名,包括:所述第一可信執行環境對所述第一隱私集合進行分塊,得到多個第三數據塊;所述第一可信執行環境對第一個第三數據塊進行哈希運算,得到第一個第三數據塊的哈希值;所述第一可信執行環境基于第i-1個第三數據塊的哈希值,以及第i個第三數據塊,確定所述第i個第三數據塊的哈希值,其中,i的取值從2到m,m為所述多個第三數據塊的數量;所述第一可信執行環境通過遠程認證功能,對第m個第三數據塊的哈希值進行簽名,得到所述第一隱私集合的簽名。
19、可以看出,在本實施方式中,可通過對隱私集合進行分塊,獲取隱私集合中每個數據塊的哈希值;基于每個數據塊的哈希值確定出隱私集合的簽名,這樣無論隱私集合的數據量有多大,均可以獲取隱私集合的簽名,完成對隱私集合的承諾。
20、在本技術的一個實施方式中,所述第一可信執行環境基于所述第一密鑰,對所述第一隱私集合進行處理,得到第二隱私集合之前,所述方法還包括:所述第一可信執行環境獲取第六隱私集合,其中,所述第六隱私集合為所述第一參與方進行求交的隱私集合;所述第一可信執行環境基于所述第六隱私集合,對所述第一隱私集合的簽名進行驗簽;若驗簽通過,則所述第一可信執行環境通過對所述第一隱私集合的承諾驗證。
21、可以看出,在本實施方式中,第一可信執行環境對當前需要進行求交的隱私集合,即第六隱私集合進行承諾驗證,從而可以驗證第六隱私集合是否為承諾的第一隱私集合,從而避免參與方在求交的過程中對隱私集合進行篡改,提高了隱私集合求交的安全性。
22、在本技術的一個實施方式中,所述第一可信執行環境基于所述第六隱私集合,對所述第一隱私集合的簽名進行驗簽,包括:所述第一可信執行環境對所述第六隱私集合進行分塊,得到多個第四數據塊,其中,所述第六隱私集合的分塊方式與所述第一隱私集合的分塊方式相同;所述第一可信執行環境對第一個第四數據塊進行哈希運算,得到第一個第四數據塊的哈希值;所述第一可信執行環境基于第j-1個第四數據塊的哈希值,以及第j個第四數據塊,確定所述第j個第四數據塊的哈希值,其中,j的取值從2到n,n為所述多個第四數據塊的數量;所述第一可信執行環境基于第n個第四數據塊的哈希值,對所述第一隱私集合的簽名進行驗簽。
23、可以看出,在本實施方式中,在進行隱私集合的承諾驗證時,可以對第六隱私集合進行分塊,以獲取第六隱私集合的哈希值,這樣無論第六隱私集合的數據量有多大,均可以獲取到第六隱私集合的哈希值。最后基于第六隱私集合的哈希值,對第一隱私集合的簽名進行驗簽,完成對第一隱私集合的承諾驗證,避免參與方對隱私集合的更改,提高隱私集合求交的安全性。
24、在本技術的一個實施方式中,所述第一可信執行環境基于所述第一密鑰,對所述第一隱私集合進行處理,得到第二隱私集合,包括:所述第一可信執行環境基于所述第一密鑰,確定所述第一隱私集合中每個元素的消息認證碼,得到所述第二隱私集合。
25、可以看出,在本實施方式中,第一可信執行環境基于遠程協商的第一密鑰,計算第一隱私集合中每個元素的消息認證碼,可得到第二隱私集合。由于消息認證碼是一種簡單的移位異或操作,與現有技術中對隱私集合中的元素進行哈希運算,以及指數運算相比,降低了計算復雜,從而降低了隱私集合求交的復雜度。
26、在本技術的一個實施方式中,所述第一密鑰的數量為兩個;所述第一可信執行環境基于所述第一密鑰,對所述第一隱私集合進行處理,得到第二隱私集合,包括:所述第一可信執行環境基于第一個第一密鑰,確定所述第一隱私集合中每個元素的消息認證碼,得到第七隱私集合;所述第一可信執行環境基于第二個第一密鑰,對所述第七隱私集合中每個元素進行加密,得到所述第二隱私集合。
27、可以看出,在本實施方式中,第一可信執行環境基于遠程協商的一個第一密鑰,計算第一隱私集合中每個元素的消息認證碼,可得到第二隱私集合。由于消息認證碼是一種簡單的移位異或操作,與現有技術中對隱私集合中的元素進行哈希運算,以及指數運算相比,降低了計算復雜,從而降低了隱私集合求交的復雜度;并且,使用遠程協商的第二個第一密鑰,對第二隱私集合中的每個元素進行加密,從而進一步地降低第一隱私集合中的明文數據暴露的風險,因此,在降低隱私集合求交的同時,提高了隱私集合求交的安全性。
28、第二方面,本技術實施例提供一種通信設備,有益效果可以參見第一方面的描述此處不再贅述。所述通信設備包括第一可信執行環境,所述第一可信執行環境包括:處理單元和收發單元;所述處理單元,用于對所述第一參與方的第一隱私集合進行承諾;與第二可信執行環境進行密鑰協商,得到第一密鑰,其中,所述第二可信執行環境位于第二參與方;基于所述第一密鑰,對所述第一隱私集合進行處理,得到第二隱私集合;所述收發單元,用于從所述第二可信執行環境接收第三隱私集合,其中,所述第三隱私集合是所述第二可信執行環境基于所述第一密鑰,對所述第二參與方的第四隱私集合進行處理得到;所述處理單元,還用于基于所述第二隱私集合和所述第三隱私集合,確定所述第一隱私集合與所述第四隱私集合的交集。
29、在本技術的一個實施方式中,在第一可信執行環境對所述第一參與方的第一隱私集合進行承諾方面,所述處理單元,具體用于:將所述第一隱私集合緩存到所述第一可信執行環境,以對所述第一隱私集合進行承諾。
30、在本技術的一個實施方式中,使用所述第一密鑰對所述第一隱私集合進行處理,得到第二隱私集合之前,所述處理單元,還用于:從所述第一可信執行環境獲取緩存的所述第一隱私集合。
31、在本技術的一個實施方式中,在第一可信執行環境對所述第一參與方的第一隱私集合進行承諾方面,所述處理單元,具體用于:生成第二密鑰;基于所述第二密鑰,對所述第一隱私集合進行處理,得到所述第一隱私集合的哈希值;將所述第一隱私集合的哈希值以及所述第二密鑰存儲到所述第一可信執行環境,以對所述第一隱私集合進行承諾。
32、在本技術的一個實施方式中,在基于所述第二密鑰,對所述第一隱私集合進行處理,得到所述第一隱私集合的哈希值方面,所述處理單元,具體用于:將所述第一隱私集合進行分塊,得到多個第一數據塊;基于所述第二密鑰,確定每個第一數據塊的消息認證碼;基于每個第一數據塊的消息認證碼進行哈希運算,得到所述第一隱私集合的哈希值。
33、在本技術的一個實施方式中,基于所述第一密鑰,對所述第一隱私集合進行處理,得到第二隱私集合之前,所述處理單元,還用于:獲取第五隱私集合,其中,所述第五隱私集合為所述第一參與方進行求交的隱私集合;基于所述第二密鑰,確定所述第五隱私集合的哈希值;若所述第五隱私集合的哈希值與所述第一隱私集合的哈希值相同,則通過對所述第一隱私集合的承諾驗證。
34、在本技術的一個實施方式中,在基于所述第二密鑰,確定所述第五隱私集合的哈希值方面,所述處理單元,具體用于:對所述第五隱私集合進行分塊,得到多個第二數據塊,其中,所述第五隱私集合的分塊方式與所述第一隱私集合的分塊方式相同;基于所述第二密鑰,確定每個第二數據塊的消息認證碼;基于每個第二數據塊的消息認證碼進行哈希運算,得到所述第五隱私集合的哈希值。
35、在本技術的一個實施方式中,在對所述第一參與方的第一隱私集合進行承諾方面,所述處理單元,具體用于:獲取所述第一隱私集合的簽名;將所述第一隱私集合的簽名存儲到所述第一可信執行環境,以對所述第一隱私集合進行承諾。
36、在本技術的一個實施方式中,在獲取所述第一隱私集合的簽名方面,所述處理單元,具體用于:對所述第一隱私集合進行分塊,得到多個第三數據塊;對第一個第三數據塊進行哈希運算,得到第一個第三數據塊的哈希值;基于第i-1個第三數據塊的哈希值,以及第i個第三數據塊,確定所述第i個第三數據塊的哈希值,其中,i的取值從2到m,m為所述多個第三數據塊的數量;通過遠程認證功能,對第m個第三數據塊的哈希值進行簽名,得到所述第一隱私集合的簽名。
37、在本技術的一個實施方式中,基于所述第一密鑰,對所述第一隱私集合進行處理,得到第二隱私集合之前,所述處理單元,還用于:獲取第六隱私集合,其中,所述第六隱私集合為所述第一參與方進行求交的隱私集合;基于所述第六隱私集合,對所述第一隱私集合的簽名進行驗簽;若驗簽通過,則通過對所述第一隱私集合的承諾驗證。
38、在本技術的一個實施方式中,在基于所述第六隱私集合,對所述第一隱私集合的簽名進行驗簽方面,所述處理單元,具體用于:對所述第六隱私集合進行分塊,得到多個第四數據塊,其中,所述第六隱私集合的分塊方式與所述第一隱私集合的分塊方式相同;對第一個第四數據塊進行哈希運算,得到第一個第四數據塊的哈希值;基于第j-1個第四數據塊的哈希值,以及第j個第四數據塊,確定所述第j個第四數據塊的哈希值,其中,j的取值從2到n,n為所述多個第四數據塊的數量;基于第n個第四數據塊的哈希值,對所述第一隱私集合的簽名進行驗簽。
39、在本技術的一個實施方式中,在基于所述第一密鑰,對所述第一隱私集合進行處理,得到第二隱私集合方面,所述處理單元,具體用于:基于所述第一密鑰,確定所述第一隱私集合中每個元素的消息認證碼,得到所述第二隱私集合。
40、在本技術的一個實施方式中,所述第一密鑰的數量為兩個;在基于所述第一密鑰,對所述第一隱私集合進行處理,得到第二隱私集合方面,所述處理單元,具體用于:基于第一個第一密鑰,確定所述第一隱私集合中每個元素的消息認證碼,得到第七隱私集合;基于第二個第一密鑰,對所述第七隱私集合中每個元素進行加密,得到所述第二隱私集合。
41、第三方面,本技術實施例提供了一種電子設備,包括:存儲器,用于存儲程序;處理器,用于執行存儲器存儲的程序;當存儲器存儲的程序被執行時,處理器用于實現上述第一方面中的方法。
42、第四方面,本技術實施例提供了提供一種計算機可讀介質,該計算機可讀介質存儲用于設備執行的程序代碼,該程序代碼包括用于實現上述第一方面中的方法。
43、第五方面,本技術實施例提供了提供一種包含指令的計算機程序產品,當該計算機程序產品在計算機上運行時,使得計算機實現上述第一方面中的方法。