CN117171772A - 一种数据交集的确定方法及装置 - Google Patents

一种数据交集的确定方法及装置 Download PDF

Info

Publication number
CN117171772A
CN117171772A CN202311182338.9A CN202311182338A CN117171772A CN 117171772 A CN117171772 A CN 117171772A CN 202311182338 A CN202311182338 A CN 202311182338A CN 117171772 A CN117171772 A CN 117171772A
Authority
CN
China
Prior art keywords
data
matrix
secret
intersection
secret state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311182338.9A
Other languages
English (en)
Inventor
张玉安
王斌
安晓江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Haitai Fangyuan High Technology Co Ltd
Original Assignee
Beijing Haitai Fangyuan High Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Haitai Fangyuan High Technology Co Ltd filed Critical Beijing Haitai Fangyuan High Technology Co Ltd
Priority to CN202311182338.9A priority Critical patent/CN117171772A/zh
Publication of CN117171772A publication Critical patent/CN117171772A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请公开了一种数据交集的确定方法及装置,该方法包括根据第二矩阵对第一密态数据进行数据变换,获得第二密态数据。其中,第一密态数据是根据第一矩阵对第二设备的数据进行数据变换获得的。根据第二密态数据和第三密态数据,获得第一交集数据,再根据第一交集数据,确定第二交集数据,其中第二交集的数据为第一设备的数据与第二设备的数据的交集。即,第二密态数据是根据不同矩阵对数据两次数据变换获得的。同理,第三密态数据也是根据不同的矩阵对数据进行两次数据变换获得的。由于使用矩阵对数据进行数据变换的计算量较低,因此可以快速获得第二密态数据和第三密态数据,从而提高获得隐私保护集合交集的效率。

Description

一种数据交集的确定方法及装置
技术领域
本申请涉及信息安全技术领域,尤其涉及一种数据交集的确定方法及装置。
背景技术
随着信息安全技术的发展,人们越来越重视对隐私数据的保护。隐私保护集合交集(Private Set Intersection,PSI)是指持有数据的两方能够通过计算得到双方数据集合的交集部分,而不暴露交集以外的任何数据集合信息。
通常情况下,若持有数据的双方需要知道双方持有数据的交集,则需要一方将全部数据发送给另外一方,从而容易确定数据的交集。虽然通过该方式可以得到双方持有数据的交集,但是泄露了非交集的数据。为了避免泄露非交集的数据,数据双方可以通过PSI的方法,通过计算获得双方数据集合的交集部分,而不泄露非交集的数据。
目前现有技术中,隐私保护集合的方案通常是基于全同态加密的方式,获得双方数据的交集部分。但是采用全同态加密的方式对数据进行处理的计算量较大,导致获得隐私保护集合交集的效率较低。
发明内容
本申请实施例提供一种数据交集的确定方法及装置,用以提高隐私数据处理的效率,从而提升获得隐私保护集合交集的效率。
第一方面,本申请实施例提供了一种数据交集的确定方法,包括:第一设备向第二设备发送第一请求,获得第一密态数据,第一密态数据是第二设备根据配置的第一矩阵对第二设备的数据进行数据变换确定的;第一设备根据配置的第二矩阵对第一密态数据进行数据变换,获得第二密态数据;接收来自第二设备的第三密态数据,第三密态数据是第二设备根据第一矩阵和第四密态数据确定的,第四密态数据是第一设备根据第二矩阵对第一设备的数据进行数据变换确定的;第一设备根据第二密态数据和第三密态数据获得第一交集数据,第一交集数据为第二密态和第三密态数据的交集;第一设备根据第一交集数据在第三密态数据中的位置,将第一设备的数据中的相同位置的数据确定为第一设备的数据与第二设备的数据的交集数据。
采用该方法,第一设备可以根据第二矩阵对第一密态数据进行数据变换获得的第二密态数据,且第一密态数据是根据第一矩阵对第二设备的数据进行数据变换获得的,也就是说,第二密态数据是根据不同的矩阵分别对数据进行两次数据变换获得的。同理,第三密态数据是根据不同的矩阵分别对数据进行两次数据变换获得的。由于使用矩阵对数据进行变换的计算量较低,因此可以提高获得第二密态数据和第三密态数据效率,从而提高获得隐私保护集合交集的效率。
在一种可能的设计中,第一矩阵和第二矩阵是根据第三矩阵获得的,第一矩阵与第二矩阵不同,第三矩阵为有限域上满秩矩阵。
在一种可能的设计中,第一矩阵是根据第三矩阵和第一随机数获得的;第二矩阵是根据第三矩阵和第二随机数获得的。
在一种可能的设计中,第一矩阵与第三矩阵进行Q次相乘所得的矩阵等于第二矩阵,Q为正整数;或者,第二矩阵与第三矩阵进行P次相乘所得的矩阵等于第一矩阵,P为正整数。
第二方面,本申请实施例提供一种数据交集的确定装置,包括:
通信模块,用于发送第一请求,获得第一密态数据,第一密态数据是根据配置的第一矩阵对第二设备的数据进行数据变换确定的;处理模块,用于根据第二矩阵对第一密态数据进行数据变换,获得第二密态数据;通信模块,还用于接收第三密态数据,第三密态数据是根据第一矩阵和第四密态数据确定的,第四密态数据是根据第二矩阵对第一设备的数据进行数据变换确定的;处理模块,还用于根据第二密态数据和第三密态数据获得第一交集数据,第一交集数据为第二密态和第三密态数据的交集;处理模块,还用于根据第一交集数据在第三密态数据中的位置,将第一设备的数据中的相同位置的数据确定为第一设备的数据与第二设备的数据的交集数据。
在一种可能的设计中,第一矩阵和第二矩阵是根据第三矩阵获得的,第一矩阵与第二矩阵不同,第三矩阵为有限域上满秩矩阵。
在一种可能的设计中,第一矩阵是根据第三矩阵和第一随机数获得的;第二矩阵是根据第三矩阵和第二随机数获得的。
在一种可能的设计中,第一矩阵与第三矩阵进行Q次相乘所得的矩阵等于第二矩阵,Q为正整数;或者,第二矩阵与第三矩阵进行P次相乘所得的矩阵等于第一矩阵,P为正整数。
第三方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现第一方面和第二方面及其任意一种设计的方法。
第四方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机程序,当计算机程序被处理器执行时,使得处理器实现第一方面和第二方面及其任意一种设计的方法。
第二方面至第四方面及其任意一种设计所带来的技术效果可参见第一方面中对应的设计所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据交集的确定方法的流程示意图;
图2为本申请实施例提供的一种数据交集的确定装置的结构示意图;
图3为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作可选的详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面,结合现有技术对确定隐私保护集合交集的方法进行介绍。
目前现有技术中确定隐私保护集合交集的方案,通常是基于不经意传输协议或基于全同态加密算法。然而现有技术中,使用不经意传输协议或全同态加密算法对数据进行处理的计算量较大,需要耗费较多的计算资源,导致对数据进行处理的效率较低。因此,现有技术中求取隐私保护集合交集的效率较低。
为了解决上述技术缺陷,本申请提供一种数据交集的确定方法及装置。该方法中,第一设备可以根据第二矩阵对第一密态数据进行数据变换,获得第二密态数据。其中,第一密态数据是根据第一矩阵对第二设备的数据进行数据变换获得的。可选的,第二设备也可根据第一矩阵对第四密态数据进行数据变换,获得第三密态数据。其中,第四密态数据是根据第二矩阵对第一设备的数据进行数据变换获得的。第一设备还可以根据第二密态数据和第三密态数据,获得第一交集数据,再根据第一交集数据,确定第二交集数据,其中第二交集的数据为第一设备的数据与第二设备的数据的交集。也就是说,第二密态数据是根据第二矩阵对第一密态数据进行数据变换获得的,且第一密态数据是根据第一矩阵对第二设备的数据进行数据变换获得的。即,第二密态数据是根据不同矩阵对数据两次数据变换获得的。同理,第三密态数据也是根据不同的矩阵对数据进行两次数据变换获得的。由于使用矩阵对数据进行数据变换的计算量较低,因此可以快速获得第二密态数据和第三密态数据,从而提高获得隐私保护集合交集的效率。此外,第一设备和第二设备可以是计算机系统,也可以是数据设备中用于执行本申请所示方法的装置,如处理器或处理模块等,本申请不具体限定。第一设备与第二设备之间可以通过有线和/或无线方式通信,实现信息和/或数据的交互。
图1为本发明实施例提供的一种数据交集的确定方法的流程示意图。以第一设备为执行主体为例,该流程可以包括以下步骤:
S101,第一设备向第二设备发送第一请求。相应的,第二设备接收来自于第一设备的第一请求。其中,第一请求用于请求第一密态数据,第一密态数据是根据第一矩阵和第二设备的数据确定的。
具体的,第一设备可以根据获取数据交集的请求向第二设备发送用于请求第一密态数据的第一请求。其中,获取数据交集的请求可以是其他设备(如,输入设备)向第一设备发送的。例如,用户可以通过键盘、触摸屏等输入设备向第一设备发送用于获取数据交集的请求,第一设备在接收到该请求后,向第二设备发送第一请求。此外,本申请中还可以包括第三设备(如,扩展设备),第三设备可以向第二设备发送用于向第一设备发送第一密态数据的请求。
第二设备可以在接收到来自于第一设备的第一请求后,根据第一矩阵对自身的数据(即第二设备的数据)进行数据变换,获得第一密态数据,并向第一设备发送第一密态数据。第二设备也可以在接收到来自于第一设备的第一请求之前,根据第一矩阵对自身的数据进行加密,获得第一密态数据。
此外,第二设备的数据通常为数据长度不同的数据,因此为了保证获得第一密态数据的数据长度相同,第二设备在根据第一矩阵对自身数据进行变换之前,第二设备可以根据预设规则(即采用某种变换函数,如哈希函数或消息认证码)对自身的数据进行处理,获得第二设备的密文向量。其中,预设规则可以为数据双方预先设定好的规则。例如,数据双方均采用哈希函数对自身的数据进行处理,获得长度为若干字节的密文向量。
可选的,第二设备还可以对数据进行压缩或填充,获得第二设备的密文向量,从而实现数据的长度相同。例如,若第二设备的数据的长度大于预设的规则的长度,则第二设备根据预设规则对第二设备的数据进行压缩,获得第二设备的密文向量。若第二设备的数据的长度小于预设规则的长度,则第二设备根据预设规则对第二设备的数据进行填充,获得第二设备的密文向量。
此外,第二设备可以通过接收来自于第一设备的预设规则的方式,获得预设规则。例如,第一请求中包括预设规则,第二设备可以通过接收第一请求的方式,获得预设规则。第二设备也可以接收来自于其他的设备的预设规则。本申请不做具体限定。
另外,为了提高自身数据的安全性,第二设备可以根据预设的公钥密码算法对自身的数据进行加密。可理解的,第二设备可以先根据预设的公钥密码算法对自身数据加密,再根据预设规则对加密后数据进行处理,使数据的长度相同。第二设备也可以先根据预设规则对自身数据进行处理使数据的长度相同,再根据预设的公钥密码算法对处理后的数据进行加密。本申请不做具体限定。
示例性的,第二设备处理后的数据可以表示为{B1,B2,B3,……,BM},预设的公钥密码算法的密钥可以表示为K,则第二设备的密文向量可以表示为{KB1,KB2,KB3,……,KBM}。第一矩阵可以表示为TB,则第一密态数据可以表示为{TBKB1,TBKB2,TBKB3,……,TBKBM}。
在一个或多个实施例中,第一矩阵可以是根据第三矩阵获得的。其中,第三矩阵为有限域上满秩矩阵。可选的,第一矩阵可以是根据第三矩阵和第一随机数获得的。其中,第一随机数可以为第二设备持有的随机数。
具体的,第三矩阵可以是根据预设的规则确定的矩阵。第三矩阵可以是数据双方预先设定的矩阵。例如,第三矩阵可以是数据双方预设的伽罗华域上满秩矩阵。第二设备在获得第三矩阵后,可以根据第三矩阵和第一随机数确定第一矩阵。
示例性的,第二设备可以通过以下方式获得第三矩阵:
第二设备可以根据预设的二元域F2上不可约多项式和预设的数据长度确定第三矩阵。
具体的,第二设备可以采用将预设的二元域F2上不可约多项式作为伽罗华域的模多项式的方式确定该伽罗华域。第二设备可以根据预设的数据长度,寻找伽罗华域上某特定次数本原多项式,从该伽罗华域上特征为该本原多项式的众多矩阵中确定第三矩阵。预设的二元域F2上不可约多项式的次数可以表示为m,预设的数据长度可以表示为L比特,第三矩阵的特征多项式的次数为n,则预设的二元域F2上不可约多项式的次数、第三矩阵的特征多项式的次数和预设的数据长度满足:
L=mn。
例如,若预设的二元域F2上不可约多项式为:x16+x14+x13+x11+1(该项式的次数为16),预设的数据长度为128比特,则伽罗华域为Z2[x]/(x16+x14+x13+x11+1),第三矩阵的特征多项式的次数为8,即第三矩阵为8×8矩阵,比如可选第三矩阵的特征多项式为x8-x7-x3-x-2。
或者,第二设备可以通过接收来自于其他设备的第三矩阵的方式获得第三矩阵。本申请中,可以包括第三设备(如管理设备),管理设备可以生成第三矩阵,或者预存储第三矩阵。第三设备可以向第二设备发送第三矩阵。相应的,第二设备接收来自于第三设备的第三矩阵。
第二设备在获得第三矩阵后,可以根据自身持有的随机数(即第一随机数)和第三矩阵获得第一矩阵。第一随机数可以表示为A,第三矩阵可以表示为T,第一矩阵可以表示为T1,则第一矩阵、第三矩阵和第一随机数满足:
T1=(T)A
此外,第三设备可以生成第一随机数。第三设备可以向第二设备发送第一随机数。相应的,第二设备接收来自于第三设备的第一随机数。
在一个多个实施例中,本申请中的第三设备(如管理设备)可以生成第一矩阵。第三设备可以向第二设备发送第一矩阵。相应的,第二设备接收来自于第三设备的第一矩阵。可选的,第一矩阵与第三矩阵进行Q次相乘所得的矩阵等于第二矩阵,Q为正整数;或者,第二矩阵与第三矩阵进行P次相乘所得的矩阵等于第一矩阵,P为正整数。
具体的,第三设备可以根据第三矩阵和第一随机数生成第一矩阵,并向第二设备发送第一矩阵。第三设备可以将第一矩阵与第三矩阵进行Q次相乘获得第二矩阵,并向第一设备发送第二矩阵。或者,第三设备可以根据第三矩阵和第二随机数生成第二矩阵,并向第一设备发送第二矩阵。第三设备可以将第二矩阵与第三矩阵进行P次相乘获得第一矩阵,并向第二设备发送第一矩阵。
基于该实施例,第三设备可以生成并管理第一矩阵、第二矩阵和第三矩阵,并向第一设备和第二设备发送相应的矩阵,从而可以降低第一设备和第二设备的计算量。
S102,第二设备向第一设备发送第一密态数据。相应的,第一设备接收来自于第二设备的第一密态数据。
具体的,第二设备可以在确定第一密态数据以及收到第一请求后,向第一设备发送第一密态数据。相应的,第一设备可以接收来自于第二设备的第一密态数据。
S103,第一设备根据第二矩阵对第一密态数据进行数据变换,获得第二密态数据。
具体的,第二矩阵可以是第一设备根据第二随机数和第三矩阵获得的。其中,第一设备根据第二随机数和第三矩阵获得第二矩阵的具体方式,可参见第二设备根据第一随机数和第三矩阵获得第一矩阵的具体方式,此处不再赘述。
第一设备可以将第二矩阵分别与第一密态数据中的数据进行相乘,获得第二密态数据。
例如,第一密态数据可以表示为{TBKB1,TBKB2,TBKB3,……,TBKBM},第二矩阵可以表示为TA,则第二密态数据可以表示为{TATBKB1,TATBKB2,TATBKB3,……,TATBKBM}。
在一个或多个实施例中,第一设备在获得第二密态数据后,可以向第二设备发送第二密态数据。相应的,第二设备接收来自于第一设备的第二密态数据。
可选的,为了保证数据的安全性,第一设备在向第二设备发送第二密态数据之前,可以打乱第二密态的数据的顺序,并向第二设备发送打乱顺序的第二密态数据。
此外,本申请中第二矩阵还可以是第一设备根据第二随机数和第四矩阵获得的。其中,第四矩阵的获得方式可参见第三矩阵的获得方式。也就是说,第一设备与第二设备可以根据不同的矩阵,获得各自设备用于加密数据的矩阵。
基于步骤S103,由于使用矩阵对数据进行变换的计算量较低,因此使用第二矩阵对第一密态数据进行数据变换可以快速获得第二密态数据,从而提高获得第二密态数据的效率。
S104,第二设备向第一设备发送第三密态数据。相应的,第一设备接收来自于第二设备的第三密态数据。其中,第三密态数据是根据第一矩阵对第四密态数据进行数据变换获得的,第四密态数据是根据第二矩阵对第一设备的数据进行数据变换获得的。
具体的,第四密态数据可以是第一设备根据第二矩阵和自身的数据确定的。其中,第一设备根据第二矩阵和第一设备的数据确定第四密态数据的具体方式,可以参见第二设备根据第一矩阵和第二设备的数据确定第一密态数据的具体方式,此处不在赘述。
第一设备可以在获得第四密态数据后,向第二设备发送第四密态数据。其中,第一设备向第二设备发送第四密态数据的具体方式,可参见第二设备向第一设备发送第一密态数据的具体方式,此处不在赘述。
第三密态数据可以是第二设备根据第一矩阵和第四密态数据确定的。其中,第二设备根据第一矩阵和第四密态数据确定第三密态数据的具体方式,可以参见第一设备根据第二矩阵和第一密态数据确定第二密态数据的具体方式,此处不在赘述。
第二设备在获得第三密态数据后,向第一设备发送第三密态数据。可选的,为了保证数据的安全性,第二设备在向第一设备发送第三密态数据之前,可以打乱第三密态数据的顺序,并向第一设备发送打乱顺序的第三密态数据。
可理解的,本申请中的执行第二设备向第一设备发送第三密态数据的动作与执行第一设备向第二设备发送第二密态数据的动作的时序不做具体限定,可以先执行第一设备向第二设备发送第二密态数据的动作,也可先执行第二设备向第一设备发送第三密态数据的动作,或者也可以同时执行第二设备向第一设备发送第三密态数据的动作和第一设备向第二设备发送第二密态数据的动作。此外,第四密态数据是在执行步骤S104之前发送至第二设备的。
S105,第一设备根据第二密态数据,从第三密态数据中确定第一交集数据。其中,第一交集数据为第二密态数据与第三密态数据的交集。
具体的,第一设备确定第二密态数据与第三密态数据的交集,从而确定第一交集数据。其中,第一交集数据是第二密态数据和第三密态数据共同拥有的数据。例如,第二密态数据为{123,456},第三密态数据为{123,789},则第一交集数据为{123},即共同的数据为“123”。
示例性的,第二密态数据可以表示为B={TATBKB1,TATBKB2,TATBKB3,……,TATBKBM},第三密态数据可以表示为A={TBTAKA1,TBTAKA2,TBTAKA3,……,TBTAKAN},第一交集数据可以表示为W,则第二密态数据、第三密态数据和第一交集数据满足:W={Ai},Ai∈A,其中,Ai=Bj∈A∩B,Bj∈B,i=1,2,3,…,N,j=1,2,3,…,M,M、N为正整数。可以理解,Ai表示A中的第i个数据,因此i可以表示数据在A中的位置;Bj表示B中的第j个数据,因此j可以表示数据在B中的位置。
例如,A={1,2,3,4,5},即A1=1,A2=2,A3=3,A4=4,A5=5,B={4,5,6},即B1=4,B2=5,B3=6,则W={A4=B1=4,A5=B2=5},即共同的数据为{4,5}。
S106,第一设备根据第一交集数据在第三密态数据中的位置,从第一设备的数据中确定第二交集数据。其中,第二交集数据为第一设备的数据与第二设备的数据的交集。
具体的,第二交集数据为第一设备的数据与第二设备的数据共同拥有的数据。第一设备可根据第一交集数据在第三密态数据中的位置,确定第二交集数据。其中,第一交集数据在第三密态数据中的位置,与第二交集数据在第一设备的数据中的位置相同。相同是指,第三密态数据中的第i个数据根据第一设备的数据中的第i个数据获得,因此第三密态数据中的第i个数据属于第一交集数据,则表示第一设备的数据中的第i个数据属于第二交集数据。具体来说,第一设备确定第一交集数据在第三密态数据中的序号。第一设备根据序号从第一设备的数据中确定第二交集数据,其中,该序号可用于指示第一交集数据在第三密态数据中的位置。例如,第三密态数据为Ai∈A={A1,A2,A3},i即数据在第三密态数据中的序号,第一设备的数据为{x1,x2,x3},其中,i=1,2,3。若第一交集数据为{A2,A3},第一交集数据在第三密态数据中的位置可记为i=2、3。
作为一种可能的示例,第一交集数据在第三密态数据中的位置,与第二交集数据在第一设备的数据中的位置相同。仍沿用上例,在i=2、3,且第一设备的数据为x={x1,x2,x3}时,可确定x中的第2和第3个数据为第二交集数据中的数据,即第二交集数据为{x2,x3}。
基于步骤S105和步骤S106,第一设备可以通过计算第二密态数据和第三密态数据的交集获得第一交集数据,再根据第一交集数据获得第一设备的数据与第二设备的数据的交集。也就是说,第一设备通过计算第二密态数据和第三密态数据的交集,获得第一设备的数据与第二设备的数据的交集。此外,第二密态数据是根据第二矩阵和第一密态数据获得的,且第一密态数据是根据第一矩阵和第二设备的数据获得的,由于第一矩阵是根据第一随机数和第三矩阵获得的,且第一设备并不知第一随机数的信息,则第一设备无法第一矩阵的信息。因此,第一设备无法根据第一密态数据获得第二设备的数据中其余的隐私数据,从而实现在确定双方数据集合的交集部分的同时,保证其余隐私数据的安全性。
在一个或多个实施例中,第二设备可以根据第一设备确定第二交集数据的方式,确定第三交集数据。其中,第三交集数据为第一设备的数据与第二设备的数据的交集。或者,第一设备可以向第二设备发送第二交集数据。相应的,第二设备可以接收来自第一设备的第二交集数据。
本申请还可以应用于三个或更多个数据方之间获取数据交集。以第一设备、第二设备和第三设备为执行主体为例,该方法包括以下步骤:
S201,第一设备、第二设备和第三设备分别根据预设规则对各自的数据进行处理。其中,根据预设规则对数据进行处理的方式,可以参见上述描述内容。
S202,第一设备根据自身持有的随机数和预设的矩阵确定第一矩阵;第二设备根据自身持有的随机数和预设的矩阵确定第二矩阵;第三设备根据自身持有的随机数和预设的矩阵确定第三矩阵。
S203,第一设备根据第一矩阵对自身的数据进行加密获得第一密态数据,并向第二设备发送第一密态数据;第二设备根据第二矩阵对自身的数据进行加密获得第二密态数据,并向第三设备发送第二密态数据;第三设备根据第三矩阵对自身的数据进行加密获得第三密态数据,并向第一设备发送第三密态数据。
S204,第一设备根据第一矩阵对第三密态数据加密,获得第四密态数据,并向第二设备发送第四密态数据;第二设备根据第二矩阵对第一密态数据进行加密获得第五密态数据,并向第三设备发送第五密态数据;第三设备根据第三矩阵对第二密态数据进行加密获得第六密态数据,并向第一设备发送第六密态数据。
S205,第一设备根据第一矩阵对第六密态数据加密,获得第七密态数据;第二设备根据第二矩阵对第四密态数据进行加密获得第八密态数据,并向第一设备发送第八密态数据;第三设备根据第三矩阵对第五密态数据进行加密获得第九密态数据,并向第一设备发送第九密态数据。
S206,第一设备根据第七密态数据、第八密态数据和第九密态数据获得第一交集数据。
S207,第一设备根据第一交集数据在第八密态数据中的位置,确定第二交集数据。
可理解的,步骤S201-步骤S207中处理数据的具体方式,可参见步骤S101-步骤106中的具体方式。另外,多方数据集求交也可通过多次两方求交实现。例如A、B、C三方求交时,可以先做A、B两方求交,之后以交集数据作为A方数据,再做A、C两方求交。
下面通过实施例1,对本申请提供的方法进行详细说明。其中,实施例1中数据方A持有10份数据,数据方B持有7份数据。为了避免A、B双方的数据长度不同,可以使用预设的算法(如消息认证码算法)对各自的数据进行处理。或者,可以根据预设的加密算法对数据进行加密,并根据预设规则截取密文中的部分数据,作为密文向量。
实施例1具体内容为:
数据方A的10份明文数据为:
A1:354650140557713976,robbie,1;
A2:658865232997920198,ratliff,1;
A3:322566447237461236,pickens,1;
A4:700947539863675017,papadimitriou,1;
A5:388978858175943653,bamber,2;
A6:147652913960764172,strouse,1;
A7:411566205481646819,vetter,1;
A8:127443326921517270,register,2;
A9:433725745468185843,scholes,2;
A10:682680384686463327,weatherspoon,2;
数据方B的7份明文数据为:
B1:311497649958016884,hawkins,1;
B2:718302301305625576,gergely,2;
B3:127567688975990015,leopoldo,1;
B4:322566447237461236,pickens,1;
B5:127443326921517270,register,2;
B6:834339979232419852,negrete,2;
B7:975505618552366392,nepomuceno,2;
步骤1a,根据预设的消息认证码算法对数据进行处理,获得数据方A的密文向量。数据方A的密文向量为:
KA1:c838 91b1 264c d4f6 e893 ee85 66a8 0edf;
KA2:c37b 4f3b fd64 2a23 5e1a c0e0 795e 5b7f;
KA3:eb03 d779 1c5f 6462 32f8 0762 3bdb 4f57;
KA4:6bc4 6ed3 56b9 a79f be2a c27e 1672 14e3;
KA5:6a1d d49c d761 8090e980 417f 552c c0e1;
KA6:c20f 3eac 0260 173b ff8e c46f 55e8 01ee;
KA7:dbab 5576c65e 3193 5764a209 8709 1dc2;
KA8:d39c de6d bfcb 5aa5 fc30 9367 3912bbfb;
KA9:ee0c 3542 4f63 271f f13e 3d6f 5c61 40a1;
KA10:648e 4d9f 7e10 c0f0 8e40 e29f 0e8f 0c51。
步骤1b,根据预设的消息认证码算法对数据进行处理,获得数据方B的密文向量。数据方B的密文向量为:
KB1:19b4 95df 00e7 6279 24ff 1a9c f858 25e6;
KB2:7d15 1d57 4082 756d 433d bd97 92c4 83c0;
KB3:3304d601 4157c5c8 59c1 745c 9bca 9b19;
KB4:d39c de6d bfcb 5aa5 fc30 9367 3912bbfb;
KB5:eb03 d779 1c5f 6462 32f8 0762 3bdb 4f57;
KB6:f43d 4358ef26 3b5d 2943e363 7eb6 1869;
KB7:1ec0 a7f9 fbcc 9d76 c063 1a8d 4570bc2f。
步骤2,数据方A与数据方B预先约定的F2域上不可约多项式为x16+x14+x13+x11+1,预设的数据长度为128比特,则伽罗华域为Z2[x]/(x16+x14+x13+x11+1),第三矩阵对应的本原多项式的次数为8。比如预设伽罗华域上的8次本原多项式为x8-x7-x3-x-2。即,该本原多项式对应的矩阵为第三矩阵。第三矩阵可以表示为T0,则第三矩阵为:
此外,为了保证数据的安全性,数据方A和数据方B还可以对T0进行处理,得矩阵T。例如,可以将T0的M次方幂作为T,若M为8192,则矩阵T为:
步骤3a,数据方A根据自身的随机数和矩阵T获得第一矩阵。数据方A的随机数可以表示为x,第一矩阵可以表示为TA,则矩阵T、数据方A的随机数和第一矩阵满足:
TA=Tx
若x等于0xefd97174 8b3a6dd1 993d7729 ebbb55aa,则第一矩阵TA为:
步骤3b,数据方B根据自身的随机数和矩阵T获得第二矩阵。数据方B的随机数可以表示为y,第二矩阵可以表示为TB,则数据方B的随机数、矩阵T和第二矩阵满足:
TB=Ty
若y等于0xa90703c6 fa3e302f 063ebcd8 ca698290,则第二矩阵TB为:
步骤4a,数据方A根据第一矩阵对自身的密文向量进行数据转换,获得第一密态数据。第一密态数据为:
下面以TKA1为例对步骤4a进行解释。TKA1中的fb14是将TA的第一列与KA1构成的列向作内积相乘得到的,即c838*c3eb+91b1*669+264c*832f+d4f6*c4d9+e893*7f0+ee85*43c7+66a8*5957+0edf*f7eb。其中,c838*c3eb是指(x15+x14+x11+x5+x4+x3+1)(x15+x14+x9+x8+x7+x6+x5+x3+x+1)mod x16+x14+x13+x11+1,得到一个次数小于16的多项式。最后将8个这样的多项式加和得x15+x14+x13+x12+x11+x9+x8+x4+x2(用十六进制表示为0xfb14)。
数据方A向数据方B发送第一密态数据。相应的,数据方B接收来自于数据方A的第一密态数据。
步骤4b,数据方B根据第二矩阵对自身的密文向量进行数据转换,获得第二密态数据。第二密态数据为:
其中,数据方B获得第二密态数据的具体方式与数据方A获得第一密态数据的具体方式相同,此处不再赘述。
数据方B向数据方A发送第二密态数据。相应的,数据方A接收来自于数据方B的第二密态数据。
步骤5a,数据方A在接收到第二密态数据后,可以根据第一矩阵对第二密态数据进行右乘,获得第三密态数据。第三密态数据为:
步骤5b,数据方B在接收到第一密态数据后,可以根据第二矩阵对第一密态数据进行右乘,获得第四密态数据。第四密态数据为:
步骤6,数据方B向数据方A发送第四密态数据。相应的,数据方A接收来自于数据方B的第四密态数据。
步骤7,数据方A可以根据第三密态数据和第四密态数据确定第一交集数据,再根据第一交集数据在第四密态数据中的位置,从数据方A的明文数据中确定第二交集数据。即,第二交集数据为数据方A与数据方B的交集。其中,第一交集数据在第四密态数据中的位置与第二交集数据在数据方A的明文数据中的位置相同。例如,本实施例中第四密态数据中的XA3与第三密态数据中的YB5相同,第四密态数据中的XA8与第三密态数据中的YB4相同,则第一交集数据为{XA3,XA8}。根据{XA3,XA8}在第四密态数据中的位置,可以从数据方A的明文数据中确定第二交集数据{A3,A8}。其中,{XA3,XA8}在第四密态数据中的位置与{A3,A8}在数据方A的明文数据中的位置相同。
步骤8,数据方A向数据方B发送第二交集数据。相应的,数据方B接收来自于数据方A的第二交集数据。
可理解的,数据方A也可以向数据方B发送第三密态数据,数据方B可以根据第三密态数据和第四密态数据确定第三交集数据,再根据第三交集数据在第三密态数据中的位置,从数据方B的明文数据中确定第四交集数据。即,第四交集数据为数据方A与数据方B的交集。其中,第三交集数据在第三密态数据中的位置与第四交集数据在数据方B的明文数据中的位置相同。
基于上述内容和相同构思,本申请提供一种数据查询装置。图2为本申请实施例提供的一种数据交集的确定装置的模块化结构示意图。该装置包括处理模块201和通信模块202。
通信模块202,用于发送第一请求,第一请求用于请求第一密态数据,第一密态数据是根据第一矩阵对第二设备的数据进行数据变换确定的;通信模块202,还用于接收第一密态数据;处理模块201,用于根据第二矩阵对第一密态数据进行数据变换,获得第二密态数据;通信模块202,还用于接收第三密态数据,第三密态数据是根据第一矩阵和第四密态数据确定的,第四密态数据是根据第二矩阵对第一设备的数据进行数据变换确定的;处理模块201,还用于根据第二密态数据,从第三密态数据中确定第一交集数据;处理模块201,还用于根据第一交集数据在第三密态数据中的位置,从第一设备的数据中确定第二交集数据。
在一种可能的设计中,第一矩阵和第二矩阵是根据第三矩阵获得的,第一矩阵与第二矩阵不同,第三矩阵为有限域上满秩矩阵。
在一种可能的设计中,第一矩阵是根据第三矩阵和第一随机数获得的;第二矩阵是根据第三矩阵和第二随机数获得的。
在一种可能的设计中,第一矩阵与第三矩阵进行Q次相乘所得的矩阵等于第二矩阵,Q为正整数;或者,第二矩阵与第三矩阵进行P次相乘所得的矩阵等于第一矩阵,P为正整数。
图3示出了本申请实施例提供的一种电子设备结构示意图。
本申请实施例中的电子设备可包括处理器301。处理器301是该装置的控制中心,可以利用各种接口和线路连接该装置的各个部分,通过运行或执行存储在存储器303内的指令以及调用存储在存储器303内的数据。可选的,处理器301可包括一个或多个处理单元,处理器301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器301中。在一些实施例中,处理器301和存储器303可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器301可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法步骤可以直接由硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器303存储有可被至少一个处理器301执行的指令,至少一个处理器301通过执行存储器303存储的指令,可以用于执行本申请实施例所公开的方法步骤。
存储器303作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器303可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等。存储器303是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器303还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中,该装置还可以包括通信接口302,电子设备可以通过该通信接口302传输数据。
可选的,可由图3所示处理器301(或处理器301和通信接口302)实现图2所示的处理模块201和/或通信模块202,也就是说,可以由处理器301(或处理器301和通信接口302)执行处理模块201和/或通信模块202的动作。
基于相同的发明构思,本申请实施例还提供一种计算机可读存储介质,其中可存储有指令,当该指令在计算机上运行时,使得计算机执行上述方法实施例提供的操作步骤。该计算机可读存储介质可以是图3所示的存储器303。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种数据交集的确定方法,其特征在于,所述方法包括:
第一设备向第二设备发送第一请求,获得第一密态数据,所述第一密态数据是所述第二设备根据配置的第一矩阵对所述第二设备的数据进行数据变换确定的;
根据配置的第二矩阵对所述第一密态数据进行数据变换,获得第二密态数据;
接收来自所述第二设备的第三密态数据,所述第三密态数据是所述第二设备根据所述第一矩阵和第四密态数据进行数据转换确定的,所述第四密态数据是所述第一设备根据所述第二矩阵对所述第一设备的数据进行数据变换确定的;
根据所述第二密态数据和所述第三密态数据获得第一交集数据,所述第一交集数据为所述第二密态和所述第三密态数据的交集;
根据所述第一交集数据在所述第三密态数据中的位置,将所述第一设备的数据中的相同位置的数据确定为所述第一设备的数据与所述第二设备的数据的交集数据。
2.如权利要求1所述的方法,其特征在于,所述第一矩阵和所述第二矩阵是根据第三矩阵获得的,所述第一矩阵与所述第二矩阵不同,所述第三矩阵为有限域上满秩矩阵。
3.如权利要求2所述的方法,其特征在于,所述第一矩阵和所述第二矩阵是根据第三矩阵获得的,包括:
所述第一矩阵是根据所述第三矩阵和第一随机数获得的;
所述第二矩阵是根据所述第三矩阵和第二随机数获得的。
4.如权利要求2或3所述的方法,其特征在于,所述第一矩阵与所述第三矩阵进行Q次相乘所得的矩阵等于所述第二矩阵,所述Q为正整数;
或者,所述第二矩阵与所述第三矩阵进行P次相乘所得的矩阵等于所述第一矩阵,所述P为正整数。
5.一种数据交集的确定装置,其特征在于,所述装置包括:
通信模块,用于发送第一请求,获得第一密态数据,所述第一密态数据是根据配置的第一矩阵对所述第二设备的数据进行数据变换确定的;
处理模块,用于根据配置的第二矩阵对所述第一密态数据进行数据变换,获得第二密态数据;
所述通信模块,还用于接收第三密态数据,所述第三密态数据是根据所述第一矩阵和第四密态数据确定的,所述第四密态数据是根据所述第二矩阵对所述第一设备的数据进行数据变换确定的;
所述处理模块,还用于根据所述第二密态数据和所述第三密态数据获得第一交集数据,所述第一交集数据为所述第二密态和所述第三密态数据的交集;
所述处理模块,还用于根据所述第一交集数据在所述第三密态数据中的位置,将所述第一设备的数据中的相同位置的数据确定为所述第一设备的数据与所述第二设备的数据的交集数据。
6.如权利要求5所述的装置,其特征在于,所述第一矩阵和所述第二矩阵是根据第三矩阵获得的,所述第一矩阵与所述第二矩阵不同,所述第三矩阵为有限域上满秩矩阵。
7.如权利要求6所述的装置,其特征在于,所述第一矩阵和所述第二矩阵是根据第三矩阵获得的,包括:
所述第一矩阵是根据所述第三矩阵和第一随机数获得的;
所述第二矩阵是根据所述第三矩阵和第二随机数获得的。
8.如权利要求5或6所述的装置,其特征在于,所述第一矩阵与所述第三矩阵进行Q次相乘所得的矩阵等于所述第二矩阵,所述Q为正整数;
或者,所述第二矩阵与所述第三矩阵进行P次相乘所得的矩阵等于所述第一矩阵,所述P为正整数。
9.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-4中任一所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4中任一所述方法的步骤。
CN202311182338.9A 2023-09-13 2023-09-13 一种数据交集的确定方法及装置 Pending CN117171772A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311182338.9A CN117171772A (zh) 2023-09-13 2023-09-13 一种数据交集的确定方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311182338.9A CN117171772A (zh) 2023-09-13 2023-09-13 一种数据交集的确定方法及装置

Publications (1)

Publication Number Publication Date
CN117171772A true CN117171772A (zh) 2023-12-05

Family

ID=88942729

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311182338.9A Pending CN117171772A (zh) 2023-09-13 2023-09-13 一种数据交集的确定方法及装置

Country Status (1)

Country Link
CN (1) CN117171772A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106941407A (zh) * 2017-05-10 2017-07-11 成都课迪科技有限公司 一种平台数据动态加密的方法和装置
CN107147486A (zh) * 2017-05-10 2017-09-08 成都课迪科技有限公司 一种基于动态变长码的平台数据加密方法和装置
CN112182610A (zh) * 2020-09-25 2021-01-05 深圳职业技术学院 一种图像加密方法、装置、设备及存储介质
CN114329421A (zh) * 2021-12-03 2022-04-12 北京海泰方圆科技股份有限公司 一种匿名认证方法、装置、系统、介质和设备
CN115001733A (zh) * 2022-04-15 2022-09-02 支付宝(杭州)信息技术有限公司 一种数据确定方法、装置、存储介质及终端
CN115694777A (zh) * 2022-09-07 2023-02-03 杭州博盾习言科技有限公司 基于同态加密的隐私集合求交方法、装置、设备及介质
CN115733602A (zh) * 2022-10-28 2023-03-03 支付宝(杭州)信息技术有限公司 一种用于非平衡隐私集合求交的方法和装置
CN116484395A (zh) * 2023-03-08 2023-07-25 蚂蚁区块链科技(上海)有限公司 一种基于隐私数据的安全计算方法及相关设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106941407A (zh) * 2017-05-10 2017-07-11 成都课迪科技有限公司 一种平台数据动态加密的方法和装置
CN107147486A (zh) * 2017-05-10 2017-09-08 成都课迪科技有限公司 一种基于动态变长码的平台数据加密方法和装置
CN112182610A (zh) * 2020-09-25 2021-01-05 深圳职业技术学院 一种图像加密方法、装置、设备及存储介质
CN114329421A (zh) * 2021-12-03 2022-04-12 北京海泰方圆科技股份有限公司 一种匿名认证方法、装置、系统、介质和设备
CN115001733A (zh) * 2022-04-15 2022-09-02 支付宝(杭州)信息技术有限公司 一种数据确定方法、装置、存储介质及终端
CN115694777A (zh) * 2022-09-07 2023-02-03 杭州博盾习言科技有限公司 基于同态加密的隐私集合求交方法、装置、设备及介质
CN115733602A (zh) * 2022-10-28 2023-03-03 支付宝(杭州)信息技术有限公司 一种用于非平衡隐私集合求交的方法和装置
CN116484395A (zh) * 2023-03-08 2023-07-25 蚂蚁区块链科技(上海)有限公司 一种基于隐私数据的安全计算方法及相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
丁建立: "《网络安全》", 30 September 2007, 武汉大学出版社, pages: 133 *
高飞: "《计算机网络和网络安全基础》", 30 June 2002, 北京理工大学出版社, pages: 205 *

Similar Documents

Publication Publication Date Title
CA3049531C (en) Homomorphic white box system and method for using same
EP2014000B1 (en) Method for elliptic curve public key cryptographic validation
EP2882132B1 (en) Encryption device, decryption device, encryption method, decryption method, and program
US9503267B2 (en) Generating digital signatures
US11290272B2 (en) Elliptic curve point multiplication device and method in a white-box context
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
CN109450640B (zh) 基于sm2的两方签名方法及系统
US11101977B2 (en) Data encryption and decryption
US10567158B2 (en) Cryptographic device and an encoding device
US11728965B2 (en) Strong fully homomorphic white-box and method for using same
CN112865957A (zh) 数据加密传输方法、装置、计算机目标设备和存储介质
CN108667598B (zh) 用于实现安全密钥交换的设备和方法及安全密钥交换方法
JP7191015B2 (ja) 秘密値の共有に達すること
WO2015008623A1 (ja) 鍵保管装置、鍵保管方法、及びそのプログラム
CN117134906A (zh) 多方隐私求交方法及相关装置
CN115883212A (zh) 信息处理方法、装置、电子设备和存储介质
CN117171772A (zh) 一种数据交集的确定方法及装置
US11616994B2 (en) Embedding information in elliptic curve base point
US9942038B2 (en) Modular exponentiation using randomized addition chains
CN113645022A (zh) 一种确定隐私集合交集方法、装置、电子设备及存储介质
US10880278B1 (en) Broadcasting in supersingular isogeny-based cryptosystems
CN110213764B (zh) 无线安全通讯方法和装置
CN109361506B (zh) 信息处理方法
US20200162113A1 (en) Encryption device and decryption device, and operation method thereof
CN116821936A (zh) 一种数据交集的确定方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination