CN111061720B - 数据筛选方法、装置和电子设备 - Google Patents

数据筛选方法、装置和电子设备 Download PDF

Info

Publication number
CN111061720B
CN111061720B CN202010168644.7A CN202010168644A CN111061720B CN 111061720 B CN111061720 B CN 111061720B CN 202010168644 A CN202010168644 A CN 202010168644A CN 111061720 B CN111061720 B CN 111061720B
Authority
CN
China
Prior art keywords
primary key
party
key value
data set
data
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.)
Active
Application number
CN202010168644.7A
Other languages
English (en)
Other versions
CN111061720A (zh
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202010168644.7A priority Critical patent/CN111061720B/zh
Publication of CN111061720A publication Critical patent/CN111061720A/zh
Application granted granted Critical
Publication of CN111061720B publication Critical patent/CN111061720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)

Abstract

本说明书实施例公开了一种数据筛选方法、装置和电子设备。所述方法包括对数据集合中的主键值进行加密,得到主键值密文集合;向第二方发送所述主键值密文集合;接收第二方发来的第二方和第一方之间的共同主键值密文或共同主键值;根据所述共同主键值密文或所述共同主键值对所述数据集合中的数据进行筛选。本说明书的实施例,在数据筛选的过程中,可以对数据方所持有的除共同主键值以外的特有主键值实现隐私保护。

Description

数据筛选方法、装置和电子设备
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据筛选方法、装置和电子设备。
背景技术
大数据时代,数据通常分散存于不同的数据方中。在一些业务场景中,需要对各数据方的数据进行筛选,各数据方所筛选出数据的主键值保持一致。这样便可以利用各数据方所筛选出的数据进行合作建模,实现对数据处理模型的协作训练。
由于竞争关系和隐私保护的考虑,各数据方之间并不是完全的互相信任。在相关技术中,各数据方可以将自身数据发送给数据筛选方,由数据筛选方对各数据方的数据进行筛选。然而由于各数据方需要将自身数据发送给数据筛选方,这样往往会存在隐私泄漏的问题。
发明内容
本说明书实施例提供一种数据筛选方法、装置和电子设备,以在数据筛选的过程中实现隐私保护。本说明书实施例的技术方案如下。
本说明书实施例的第一方面,提供了一种数据筛选方法,应用于第一方,包括:对数据集合中的主键值进行加密,得到主键值密文集合;向第二方发送所述主键值密文集合;接收第二方发来的第二方和第一方之间的共同主键值密文或共同主键值;根据所述共同主键值密文或所述共同主键值对所述数据集合中的数据进行筛选。
本说明书实施例的第二方面,提供了一种数据筛选方法,应用于第二方,包括:接收第一方发来的主键值密文集合作为第一主键值密文集合;对数据集合中的主键值进行加密,得到第二主键值密文集合;确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集,所述交集包括第二方和第一方之间的共同主键值密文;根据所述共同主键值密文对所述数据集合中的数据进行筛选;向第一方发送所述共同主键值密文。
本说明书实施例的第三方面,提供了一种数据筛选方法,应用于第一方,包括:对数据集合中的主键值进行加密,得到主键值密文集合;向第二方发送所述主键值密文集合;接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值;根据所述共同主键值密文或所述共同主键值对所述数据集合中的数据进行筛选。
本说明书实施例的第四方面,提供了一种数据筛选方法,应用于第二方,包括:接收第一方发来的主键值密文集合作为第一主键值密文集合;对数据集合中的主键值进行加密,得到第二主键值密文集合;确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集;向第三方发送所述交集;接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值;根据所述共同主键值密文或所述共同主键值对所述数据集合中的数据进行筛选。
本说明书实施例的第五方面,提供了一种数据筛选方法,应用于第三方,包括:接收第二方发来的交集作为第一交集,所述第一交集基于第一方的第一主键值密文集合和第二方的第二主键值密文集合确定得到;对数据集合中的主键值进行加密,得到第三主键值密文集合;确定所述第一交集和所述第三主键值密文集合之间的第二交集,所述第二交集包括第三方、第二方和第一方之间的共同主键值密文;向第二方和第一方发送所述共同主键值密文;根据所述共同主键值密文对所述数据集合中的数据进行筛选。
本说明书实施例的第六方面,提供了一种数据筛选装置,设置于第一方,包括:加密模块,用于对数据集合中的主键值进行加密,得到主键值密文集合;发送模块,用于向第二方发送所述主键值密文集合;接收模块,用于接收第二方发来的第二方和第一方间之间的共同主键值密文或共同主键值;筛选模块,用于根据共同主键值密文或共同主键值对所述数据集合中的数据进行筛选。
本说明书实施例的第七方面,提供了一种数据筛选装置,设置于第二方,包括:接收模块,用于接收第一方发来的主键值密文集合作为第一主键值密文集合;加密模块,用于对数据集合中的主键值进行加密,得到第二主键值密文集合;确定模块,用于确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集,所述交集包括第二方和第一方之间的共同主键值密文;筛选模块,用于根据所述共同主键值密文对所述数据集合中的数据进行筛选;发送模块,用于向第一方发送所述共同主键值密文。
本说明书实施例的第八方面,提供了一种数据筛选装置,设置于第一方,包括:加密模块,用于对数据集合中的主键值进行加密,得到主键值密文集合;发送模块,用于向第二方发送所述主键值密文集合;接收模块,用于接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值;筛选模块,用于根据共同主键值密文或共同主键值对所述数据集合中的数据进行筛选。
本说明书实施例的第九方面,提供了一种数据筛选装置,设置于第二方,包括:第一接收模块,用于接收第一方发来的主键值密文集合作为第一主键值密文集合;加密模块,用于对数据集合中的主键值进行加密,得到第二主键值密文集合;确定模块,用于确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集;发送模块,用于向第三方发送所述交集;第二接收模块,用于接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值;筛选模块,用于根据共同主键值密文或共同主键值对所述数据集合中的数据进行筛选。
本说明书实施例的第十方面,提供了一种数据筛选装置,设置于第三方,包括:接收模块,用于接收第二方发来的交集作为第一交集,所述第一交集基于第一方的第一主键值密文集合和第二方的第二主键值密文集合确定得到;加密模块,用于对数据集合中的主键值进行加密,得到第三主键值密文集合;确定模块,用于确定所述第一交集和所述第三主键值密文集合之间的第二交集,所述第二交集包括第三方、第二方和第一方之间的共同主键值密文;发送模块,用于向第二方和第一方发送所述共同主键值密文;筛选模块,用于根据所述共同主键值密文对所述数据集合中的数据进行筛选。
本说明书实施例的第十一方面,提供了一种电子设备,包括:至少一个处理器;存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行第一方面、第二方面、第三方面、第四方面或第五方面所述方法的指令。
本说明书实施例提供的技术方案,在数据筛选的过程中,可以对数据方所持有的除共同主键值以外的特有主键值实现隐私保护。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中一种实施环境的结构示意图;
图2为本说明书实施例中一种数据筛选方法的流程示意图;
图3为本说明书实施例中一种数据筛选方法的流程示意图;
图4为本说明书实施例中一种数据筛选方法的流程示意图;
图5为本说明书实施例中一种数据筛选方法的流程示意图;
图6为本说明书实施例中一种数据筛选方法的流程示意图;
图7为本说明书实施例中一种数据筛选方法的流程示意图;
图8为本说明书实施例中一种数据筛选方法的流程示意图;
图9为本说明书实施例中一种数据筛选方法的流程示意图;
图10为本说明书实施例中一种数据筛选方法的流程示意图;
图11为本说明书实施例中一种数据筛选装置的结构示意图;
图12为本说明书实施例中一种数据筛选装置的结构示意图;
图13为本说明书实施例中一种数据筛选装置的结构示意图;
图14为本说明书实施例中一种数据筛选装置的结构示意图;
图15为本说明书实施例中一种数据筛选装置的结构示意图;
图16为本说明书实施例中电子设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
请参考图1,其示出了本说明书实施例涉及的一种实施环境的结构示意图。本说明书实施例的实施环境包括:第一方、第二方。
所述第一方可以为服务器、由若干台服务器组成的服务器集群、或云计算服务中心等电子设备。所述第一方可以由商户设立。所述第一方持有数据集合(以下称为第一数据集合)。所述第一数据集合可以采用数据表、线性表、队列、栈、或图等方式来实现。所述第一数据集合包括了多个字段的值,所述多个字段包括主键字段和非主键字段。例如,所述第一数据集合包括ID、A、B、C等4个字段的值,字段ID为主键字段,字段A、B、C为非主键字段。
所述第二方可以为服务器、由若干台服务器组成的服务器集群、或云计算服务中心等电子设备。所述第二方可以由另一商户设立。所述第二方持有另一数据集合(以下称为第二数据集合)。所述第二数据集合可以采用数据表、线性表、队列、栈、或图等方式来实现。所述第二数据集合包括了多个字段的值,所述多个字段包括主键字段和非主键字段。例如,所述第二数据集合包括ID、E、F等3个字段的值,字段ID为主键字段,字段E、F为非主键字段。
所述第二数据集合的主键字段和所述第一数据集合的主键字段相同。所述第二数据集合的主键字段的值(以下称为主键值)和所述第一数集合的主键值部分相同或完全相同。所述第二数据集合的非主键字段和所述第一数据集合的非主键字段部分相同或完全不同。所述第二数据集合的非主键字段的值和所述第一数据集合的非主键字段的值部分相同或完全不同。
例如,所述第一数据集合包括ID、A、B、C等4个字段的值,字段ID为主键字段,字段A、B、C为非主键字段。所述第一数据集合可以如下表1所示。
表1
ID A B C
ID1 A1 B1 C1
ID2 A2 B2 C2
ID3 A3 B3 C3
ID4 A4 B4 C4
所述第二数据集合包括ID、E、F等3个字段的值,字段ID为主键字段,字段E、F为非主键字段。所述第二数据集合可以如下表2所示。
表2
ID E F
ID1 E1 F1
ID2 E2 F2
ID5 E3 F3
在一些实施例中,所述第一方和所述第二方可以进行多方安全计算(SecureMuti-Party Computation,MPC)。多方安全计算是一种保护数据隐私安全的算法。通过多方安全计算,所述第一方和所述第二方能够实现合作建模,例如合作建立评分卡模型等。
为此需要对所述第一数据集合中的数据进行筛选,得到第一子数据集合,需要对所述第二数据集合中的数据进行筛选,得到第二子数据集合。所述第一子数据集合的字段与所述第一数据集合的字段相同。所述第二子数据集合的字段与所述第二数据集合的字段相同。所述第一子数据集合的主键值和所述第二子数据集合的主键值相同。所述第一子数据集合的非主键字段的值和所述第二子数据集合的非主键字段的值部分相同或完全不同。这样所述第一方可以根据第一子数据集合,所述第二方可以根据第二子数据集合,通过多方安全计算实现合作建模。
延续前面的例子,所述第一子数据集合可以如下表3所示。
表3
ID A B C
ID1 A1 B1 C1
ID2 A2 B2 C2
所述第二子数据集合可以如下表4所示。
表4
ID E F
ID1 E1 F1
ID2 E2 F2
在实际应用中,所述第一方可以对所述第一数据集合的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第一主键值密文集合;可以向所述第二方发送所述第一主键值密文集合。所述第二方可以接收所述第一主键值密文集合。所述第二方可以对所述第二数据集合的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第二主键值密文集合。这样所述第二方可以确定所述第一主键值密文集合和所述第二主键值密文集合的交集,所述交集包括所述第二方和所述第一方之间的共同主键值密文。所述第二方可以向所述第一方发送所述共同主键值密文。所述第一方可以接收所述共同主键值密文。所述第一方可以根据所述共同主键值密文,确定所述第二方和所述第一方之间的共同主键值;可以根据共同主键值对所述第一数据集合中的数据进行筛选,得到第一子数据集合。所述第二方可以根据共同主键值密文,确定所述第二方和所述第一方之间的共同主键值;可以根据共同主键值对所述第二数据集合中的数据进行筛选,得到第二子数据集合。其中,所述共同主键值可以为所述共同主键值密文所对应的明文。
上述的数据筛选过程,所述第二方无法获知所述第一主键值密文集合中除所述共同主键值密文以外的特有主键值密文所对应的明文,从而能够避免第二方获知所述第一数据集合中除所述共同主键值以外的特有主键值,实现对所述第一数据集合中的特有主键值进行隐私保护。另外,所述第一方无法获知所述第二主键值密文集合中除所述共同主键值密文以外的特有主键值密文所对应的明文,从而能够避免所述第一方获知所述第二数据集合中除所述共同主键值以外的特有主键值,实现对所述第二数据集合中的特有主键值进行隐私保护。
在一些实施例中,所述第一方可以持有筛选条件(以下称为第一筛选条件);可以根据所述第一筛选条件在本地预先对所述第一数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第一主键值密文集合。
和/或,所述第二方也可以持有筛选条件(以下称为第二筛选条件);可以根据所述第二筛选条件在本地预先对所述第二数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第二主键值密文集合。
在一些实施例中,实施环境还可以包括第三方。所述第三方可以为服务器、由若干台服务器组成的服务器集群、或云计算服务中心等电子设备。所述第三方可以由另一商户设立。所述第三方持有数据集合(以下称为第三数据集合)。所述第三数据集合可以采用数据表、线性表、队列、栈、或图等方式来实现。所述第三数据集合包括了多个字段的值,所述多个字段包括主键字段和非主键字段。例如,所述第三数据集合包括ID、G、H等3个字段的值,字段ID为主键字段,字段G、H为非主键字段。
所述第三数据集合的主键字段、所述第二数据集合的主键字段、以及所述第一数据集合的主键字段相同。所述第三数据集合的主键值、所述第二数据集合的主键值、以及所述第一数据集合的主键值可以部分相同或完全相同。所述第三数据集合的非主键字段、所述第二数据集合的非主键字段、以及所述第一数据集合的非主键字段可以部分相同或完全不同。所述第三数据集合的非主键字段的值、所述第二数据集合的非主键字段的值、以及所述第一数据集合的非主键字段的值可以部分相同或完全不同。
所述第三方、所述第二方、以及所述第一方可以通过多方安全计算实现合作建模。为此需要对所述第一数据集合中的数据进行筛选,得到第一子数据集合,需要对所述第二数据集合中的数据进行筛选,得到第二子数据集合,需要对所述第三数据集合中的数据进行筛选,得到第三子数据集合。所述第三子数据集合的字段与所述第三数据集合的字段相同。所述第三子数据集合的主键值、所述第二子数据集合的主键值、以及所述第一子数据集合的主键值相同。所述第三子数据集合的非主键字段的值、所述第二子数据集合的非主键字段的值、以及所述第一子数据集合的非主键字段的值部分相同或完全不同。
在数据筛选的过程中,需要对所述第一数据集合中的特有主键值进行隐私保护,避免所述第二方(或所述第三方)获知所述第一数据集合中的特有主键值;和/或,需要对所述第二数据集合中的特有主键值进行隐私保护,避免所述第一方(或所述第三方)获知所述第二数据集合中的特有主键值;和/或,需要对所述第三数据集合中的特有主键值进行隐私保护,避免所述第一方(或所述第二方)获知所述第三数据集合中的特有主键值。具体过程在后续会有详细介绍。
当然,实施环境还可以包括更多的数据方,例如第四方、第五方等等。具体不再赘述。
上文中结合图1,详细描述了本说明书实施例的实施环境。下面将结合图2,详细描述本说明书数据筛选方法的一个实施例。请参阅图2。所述数据筛选方法可以包括以下步骤。
步骤S202:第一方对第一数据集合中的主键值进行加密,得到第一主键值密文集合。
在一些实施例中,所述第一主键值密文集合可以包括至少一个主键值密文。
在一些实施例中,所述第一方可以计算所述第一数据集合中主键值的哈希值,作为所述第一主键值密文集合中的主键值密文。所述哈希值可以包括MD5(Message DigestAlgorithm,消息摘要算法)值、SHA1(Secure Hash Algorithm,安全散列算法)值、SHA256、SHA384、SHA512值、和CRC32(Cyclic Redundancy Check,循环冗余校验算法)值等。或者,为了提高安全性,所述第一方可以生成盐值(Salt);可以根据所述盐值计算所述第一数据集合中主键值的加盐哈希值,作为所述第一主键值密文集合中的主键值密文。所述盐值可以包括随机数。例如,针对所述第一数据集合中的每个主键值,所述第一方可以根据所述主键值和所述盐值生成携带盐值的主键值,可以计算所述携带盐值的主键值的哈希值,作为加盐哈希值。所述携带盐值的主键值可以通过将所述主键值和所述盐值拼接得到,例如将所述盐值拼接至所述主键值的尾部。当然,所述携带盐值的主键值还可以通过其它方式得到。或者,所述第一方还可以使用加密密钥,对所述第一数据集合中的主键值进行加密,得到第一主键值密文集合。所述加密密钥可以由第一方生成(例如第一方的公钥等);或者,也可以由第二方生成(例如第二方的公钥等),进而由第二方发送给第一方;或者,还可以根据密钥协商机制,由第一方和第二方共同建立得到。实现密钥协商的算法包括但不限于DH(Diffie-Hellman)算法、ECDH算法等等。
步骤S204:第一方向第二方发送所述第一主键值密文集合。
步骤S206:第二方接收所述第一主键值密文集合。
步骤S208:第二方对第二数据集合中的主键值进行加密,得到第二主键值密文集合。
在一些实施例中,所述第二主键值密文集合可以包括至少一个主键值密文。
在一些实施例中,所述第二方可以计算所述第二数据集合中主键值的哈希值,作为所述第二主键值密文集合中的主键值密文。或者,在步骤S202,所述第一方可以生成盐值。所述第一方进而可以向所述第二方发送所述盐值。所述第二方可以接收所述盐值;可以根据所述盐值计算所述第二数据集合中主键值的加盐哈希值,作为所述第二主键值密文集合中的主键值密文。或者,所述第二方还可以使用加密密钥,对所述第二数据集合中的主键值进行加密,得到第一主键值密文集合。这里第二方使用的加密密钥可以与步骤S202中第一方使用的加密密钥相同。所述加密密钥可以由第一方生成(例如第一方的公钥等),进而由第一方发送给第二方;或者,也可以由第二方生成(例如第二方的公钥等);或者,还可以根据密钥协商机制,由第一方和第二方共同建立得到。
步骤S210:第二方确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集,所述交集包括第二方和第一方之间的共同主键值密文。
在一些实施例中,所述第一主键值密文集合中的主键值密文和所述第二主键值密文集合中的主键值密文可以部分相同或完全相同。所述第二方可以确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集。所述交集包括至少一个第二方和第一方之间的共同主键值密文。所述第二方无法获知所述第一主键值密文集合中除所述共同主键值密文以外的特有主键值密文所对应的明文,从而能够避免第二方获知所述第一数据集合中除共同主键值以外的特有主键值,实现对所述第一数据集合中的特有主键值进行隐私保护。另外,所述第一方无法获知所述第二主键值密文集合中除所述共同主键值密文以外的特有主键值密文所对应的明文,从而能够避免所述第一方获知所述第二数据集合中除共同主键值以外的特有主键值,实现对所述第二数据集合中的特有主键值进行隐私保护。
步骤S212:第二方向第一方发送所述共同主键值密文。
在一些实施例中,所述第二方可以向所述第一方发送至少一个共同主键值密文。通过发送共同主键值密文,可以防止共同主键值在传输过程中明文直接暴露于网络中,提高安全性。
步骤S214:第一方接收所述共同主键值密文;根据共同主键值密文,对所述第一数据集合中的数据进行筛选,得到第一子数据集合。
在一些实施例中,所述第一方可以接收至少一个共同主键值密文;可以根据共同主键值密文,确定至少一个第二方和第一方之间的共同主键值;可以根据共同主键值,对所述第一数据集合中的数据进行筛选,得到第一子数据集合。
主键值和主键值密文之间具有对应关系。所述第一方可以根据所述第一数据集合中的主键值和所述第一主键值密文集合中的主键值密文之间的对应关系,获得共同主键值密文所对应的主键值作为共同主键值。当然,所述第一方还可以采用其它方式获得共同主键值,例如对共同主键值密文进行解密,得到共同主键值。具体地,例如,所述第一方可以根据与所述加密密钥相对应的解密密钥,对共同主键值密文进行解密,得到共同主键值。
所述第一方可以根据共同主键值从所述第一数据集合中选取数据,作为所述第一子数据集合中的数据。例如,所述第一方可以从所述第一数据集合中选取共同主键值所在的记录,作为所述第一子数据集合中的记录。这里记录可以为数据集合中的行,每一行为一个记录。
步骤S216:第二方根据共同主键值密文,对所述第二数据集合中的数据进行筛选,得到第二子数据集合。
在一些实施例中,所述第二方可以根据所述共同主键值密文,确定至少一个第二方和第一方之间的共同主键值;可以根据共同主键值,对所述第二数据集合中的数据进行筛选,得到第二子数据集合。值得说明的是,由于所述第二方和所述第一方是根据相同的共同主键值密文来确定共同主键值,因而所述第二方和所述第一方确定出的共同主键值相同。
主键值和主键值密文之间具有对应关系。所述第二方可以根据所述第二数据集合中的主键值和所述第二主键值密文集合中的主键值密文之间的对应关系,获得共同主键值密文所对应的主键值作为共同主键值。当然,所述第二方还可以采用其它方式获得共同主键值,例如可以对共同主键值密文进行解密,得到共同主键值。具体地,例如,所述第二方可以根据与所述加密密钥相对应的解密密钥,对共同主键值密文进行解密,得到共同主键值。
所述第二方可以根据共同主键值从所述第二数据集合中选取数据,作为所述第二子数据集合中的数据。例如,所述第二方可以从所述第二数据集合中选取共同主键值所在的记录,作为所述第二子数据集合中的记录。
在一些实施例中,所述第一方可以持有第一筛选条件;可以根据所述第一筛选条件在本地预先对所述第一数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第一主键值密文集合。所述第一筛选条件可以包括以下至少之一:主键字段的筛选条件、非主键字段的筛选条件。例如,所述第一数据集合可以如表1所示。所述第一筛选条件可以为A>1。在所述第一数据集合中满足所述第一筛选条件A>1的记录包括第一行、第二行和第三行。所述第一行包括主键值ID1,所述第二行包括主键值ID2,所述第三行包括主键值ID3。因而所述第一方可以根据所述第一筛选条件A>1从所述第一数据集合中筛选出主键值ID1、ID2和ID3。
和/或,所述第二方可以持有第二筛选条件;可以根据所述第二筛选条件在本地预先对所述第二数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第二主键值密文集合。所述第二筛选条件可以包括以下至少之一:主键字段的筛选条件、非主键字段的筛选条件。例如,所述第二数据集合可以如表2所示。所述第二筛选条件可以为E>3。在所述第二数据集合中满足所述第二筛选条件E>3的记录包括第一行、第二行和第三行。所述第一行包括主键值ID1,所述第二行包括主键值ID2,所述第三行包括主键值ID5。因而所述第二方可以根据所述第二筛选条件E>3从所述第二数据集合中筛选出主键值ID1、ID2和ID5。
在实际应用中,用户可以在所述第一方中输入第一筛选条件。所述第一方可以接收所述第一筛选条件。所述第一方可以根据所述第一筛选条件在本地预先对所述第一数据集合中的主键值进行筛选。或者,用户可以在所述第一方中输入第二筛选条件。所述第二方可以接收所述第二筛选条件。所述第二方可以根据所述第二筛选条件在本地预先对所述第二数据集合中的主键值进行筛选。或者,用户可以在所述第一方中输入第一筛选条件和第二筛选条件。所述第一方可以接收所述第一筛选条件和所述第二筛选条件;可以向所述第二方发送所述第二筛选条件。所述第一方可以根据所述第一筛选条件在本地预先对所述第一数据集合中的主键值进行筛选。所述第二方可以接收所述第二筛选条件。所述第二方可以根据所述第二筛选条件在本地预先对所述第二数据集合中的主键值进行筛选。
在一些实施例中,所述数据筛选方法还可以涉及到第三方。所述第三方可以对第三数据集合中的主键值进行加密,得到第三主键值密文集合;可以向所述第二方发送所述第三主键值密文集合。所述第二方可以接收所述第三主键值密文集合。所述第二方可以确定所述第一主键值密文集合、所述第二主键值密文集合、以及所述第三主键值密文集合之间的交集,所述交集可以包括第三方、第二方、以及第一方之间的共同主键值密文。所述第二方可以向所述第三方和所述第一方发送所述共同主键值密文。所述第一方可以接收所述共同主键值密文;可以根据所述共同主键值密文,对所述第一数据集合中的数据进行筛选,得到第一子数据集合。所述第二方可以根据所述共同主键值密文,对所述第二数据集合中的数据进行筛选,得到第二子数据集合。所述第三方可以接收所述共同主键值密文;可以根据所述共同主键值密文,对所述第三数据集合中的数据进行筛选,得到第三子数据集合。
这样可以对所述第一数据集合中的特有主键值进行隐私保护,避免所述第二方(或所述第三方)获知所述第一数据集合中的特有主键值。另外,也可以对所述第二数据集合中的特有主键值进行隐私保护,避免所述第一方(或所述第三方)获知所述第二数据集合中的特有主键值。另外,还可以对所述第三数据集合中的特有主键值进行隐私保护,避免所述第一方(或所述第二方)获知所述第三数据集合中的特有主键值。
所述第三方可以计算所述第三数据集合中主键值的哈希值,作为所述第三主键值密文集合中的主键值密文。或者,在步骤S202,所述第一方可以生成盐值。所述第一方进而可以向所述第三方发送所述盐值。所述第三方可以接收所述盐值;可以根据所述盐值计算所述第三数据集合中主键值的加盐哈希值,作为所述第三主键值密文集合中的主键值密文。或者,所述第三方还可以使用加密密钥,对所述第三数据集合中的主键值进行加密,得到第三主键值密文集合。这里第三方使用的加密密钥可以与步骤S202中第一方使用的加密密钥相同。所述加密密钥可以由第一方生成(例如第一方的公钥等),进而由第一方发送给第三方;或者,也可以由第二方生成(例如第二方的公钥等),进而由第二方发送给第三方;或者,还可以由第三方生成(例如第三方的公钥等);或者,还可以根据密钥协商机制,由第一方、第二方和第三方共同建立得到。
进一步地,所述第三方可以持有第三筛选条件;可以根据所述第三筛选条件在本地预先对所述第三数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第三主键值密文集合。在实际应用中,用户可以在所述第一方中输入第三筛选条件。所述第一方可以接收所述第三筛选条件;可以向所述第三方发送所述第三筛选条件。所述第三方可以接收所述第三筛选条件。
当然,所述数据筛选方法还可以涉及到更多的数据方,例如第四方、第五方等等。值得说明的是,当所述数据筛选方法涉及到更多的数据方时,可以仍由第二方来统一确定共同主键值密文。具体地,例如,当所述数据筛选方法涉及到第四方时,所述第四方可以对第四数据集合中的主键值进行加密,可以向第二方发送加密得到的第四主键值密文集合。在接收到所述第四主键值密文集合以后,所述第二方可以确定得到所述第四方、所述第三方、所述第二方、以及第一方之间的共同主键值密文;可以向所述第四方、所述第三方、以及所述第一方发送共同主键值密文。所述第四方进而可以根据所述共同主键值密文,对所述第四数据集合中的数据进行筛选。
本说明书实施例的数据筛选方法,在数据筛选的过程中,可以对数据方所持有的除共同主键值以外的特有主键值实现隐私保护。
下面将结合图3,详细描述本说明书数据筛选方法的另一个实施例。请参阅图3。所述数据筛选方法可以包括以下步骤。
步骤S302:第一方对第一数据集合中的主键值进行加密,得到第一主键值密文集合。
步骤S304:第一方向第二方发送所述第一主键值密文集合。
步骤S306:第二方接收所述第一主键值密文集合。
步骤S308:第二方对第二数据集合中的主键值进行加密,得到第二主键值密文集合。
步骤S310:第二方确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集,所述交集包括第二方和第一方之间的共同主键值密文。
步骤S312:第二方根据共同主键值密文,确定第二方和第一方之间的共同主键值。
在一些实施例中,所述交集包括至少一个第二方和第一方之间的共同主键值密文。所述第二方可以根据所述共同主键值密文,确定至少一个第二方和第一方之间的共同主键值。所述第二方确定共同主键值的过程,可以参见前面的实施例。
在一些实施例中,这样可以对所述第一数据集合中的特有主键值进行隐私保护,避免所述第二方获知所述第一数据集合中的特有主键值。另外,也可以对所述第二数据集合中的特有主键值进行隐私保护,避免所述第一方获知所述第二数据集合中的特有主键值。
步骤S314:第二方向第一方发送所述共同主键值。
步骤S316:第一方接收所述共同主键值;根据共同主键值,对所述第一数据集合中的数据进行筛选,得到第一子数据集合。
步骤S318:第二方根据共同主键值,对所述第二数据集合中的数据进行筛选,得到第二子数据集合。
在一些实施例中,所述数据筛选方法还可以涉及到第三方。所述第三方可以对第三数据集合中的主键值进行加密,得到第三主键值密文集合;可以向所述第二方发送所述第三主键值密文集合。所述第二方可以接收所述第三主键值密文集合。所述第二方可以确定所述第一主键值密文集合、所述第二主键值密文集合、以及所述第三主键值密文集合之间的交集,所述交集可以包括第三方、第二方、以及第一方之间的共同主键值密文。所述第二方进而可以根据共同主键值密文,确定第三方、第二方、以及第一方之间的共同主键值;可以向所述第一方和所述第三方发送所述共同主键值。所述第一方可以接收所述共同主键值;可以根据所述共同主键值,对所述第一数据集合中的数据进行筛选,得到第一子数据集合。所述第二方可以根据所述共同主键值,对所述第二数据集合中的数据进行筛选,得到第二子数据集合。所述第三方可以接收所述共同主键值;可以根据所述共同主键值,对所述第三数据集合中的数据进行筛选,得到第三子数据集合。
这样可以对所述第一数据集合中的特有主键值进行隐私保护,避免所述第二方(或所述第三方)获知所述第一数据集合中的特有主键值。另外,也可以对所述第二数据集合中的特有主键值进行隐私保护,避免所述第一方(或所述第三方)获知所述第二数据集合中的特有主键值。另外,还可以对所述第三数据集合中的特有主键值进行隐私保护,避免所述第一方(或所述第二方)获知所述第三数据集合中的特有主键值。
进一步地,所述第三方可以持有第三筛选条件;可以根据所述第三筛选条件在本地预先对所述第三数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第三主键值密文集合。在实际应用中,用户可以在所述第一方中输入第三筛选条件。所述第一方可以接收所述第三筛选条件;可以向所述第三方发送所述第三筛选条件。所述第三方可以接收所述第三筛选条件。
当然,所述数据筛选方法还可以涉及到更多的数据方,例如第四方、第五方等等。值得说明的是,当所述数据筛选方法涉及到更多的数据方时,可以仍由第二方来统一确定共同主键值。具体地,例如,当所述数据筛选方法涉及到第四方时,所述第四方可以对第四数据集合中的主键值进行加密,可以向第二方发送加密得到的第四主键值密文集合。在接收到所述第四主键值密文集合以后,所述第二方可以确定得到所述第四方、所述第三方、所述第二方、以及第一方之间的共同主键值密文;可以根据共同主键值密文,确定所述第四方、所述第三方、所述第二方、以及第一方之间的共同主键值;可以向所述第四方、所述第三方、以及所述第一方发送共同主键值。所述第四方进而可以根据所述共同主键值,对所述第四数据集合中的数据进行筛选。
本说明书实施例的数据筛选方法,在数据筛选的过程中,可以对数据方所持有的除共同主键值以外的特有主键值实现隐私保护。
下面将结合图4,详细描述本说明书数据筛选方法的另一个实施例。请参阅图4。所述数据筛选方法可以包括以下步骤。
步骤S402:第一方对第一数据集合中的主键值进行加密,得到第一主键值密文集合。
步骤S404:第一方向第二方发送所述第一主键值密文集合。
步骤S406:第二方接收所述第一主键值密文集合。
步骤S408:第二方对第二数据集合中的主键值进行加密,得到第二主键值密文集合。
步骤S410:第二方确定所述第一主键值密文集合和所述第二主键值密文集合之间的第一交集,所述第一交集包括第二方和第一方之间的共同主键值密文。
在一些实施例中,所述第一交集包括至少一个第二方和第一方之间的共同主键值密文。
步骤S412:第二方向第三方发送所述第一交集。
步骤S414:第三方接收所述第一交集。
步骤S416:第三方对第三数据集合中的主键值进行加密,得到第三主键值密文集合。
步骤S418:第三方确定所述第一交集和所述第三主键值密文集合之间的第二交集,所述第二交集包括第三方、第二方、以及第一方之间的共同主键值密文。
在一些实施例中,所述第二交集包括至少一个第三方、第二方、以及第一方之间的共同主键值密文。
步骤S420:第三方向第二方和第一方发送所述共同主键值密文。
步骤S422:第一方接收所述共同主键值密文;根据共同主键值密文,对所述第一数据集合中的数据进行筛选,得到第一子数据集合。
步骤S424:第二方接收所述共同主键值密文;根据共同主键值密文,对所述第二数据集合中的数据进行筛选,得到第二子数据集合。
步骤S426:第三方根据共同主键值密文,对所述第三数据集合中的数据进行筛选,得到第三子数据集合。
这样可以对所述第一数据集合中的特有主键值进行隐私保护,避免所述第二方(或所述第三方)获知所述第一数据集合中的特有主键值。另外,也可以对所述第二数据集合中的特有主键值进行隐私保护,避免所述第一方(或所述第三方)获知所述第二数据集合中的特有主键值。另外,还可以对所述第三数据集合中的特有主键值进行隐私保护,避免所述第一方(或所述第二方)获知所述第三数据集合中的特有主键值。
在一些实施例中,所述第一方可以持有第一筛选条件;可以根据所述第一筛选条件在本地预先对所述第一数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第一主键值密文集合。和/或,所述第二方可以持有第二筛选条件;可以根据所述第二筛选条件在本地预先对所述第二数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第二主键值密文集合。和/或,所述第三方可以持有第三筛选条件;可以根据所述第三筛选条件在本地预先对所述第三数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第三主键值密文集合。
当然,所述数据筛选方法还可以涉及到更多的数据方,例如第四方、第五方等等。值得说明的是,当所述数据筛选方法涉及到更多的数据方时,可以仍采用“串行”的方式来确定共同主键值密文,具体地,可以由所述更多的数据方来确定共同主键值密文。具体地,例如,当所述数据筛选方法涉及到第四方时,所述第三方可以向所述第四方发送所述第二交集。所述第四方可以对第四数据集合中的主键值进行加密,得到第四主键值密文集合;可以确定所述第二交集和所述第四主键值密文集合之间的第三交集,所述第三交集包括第四方、第三方、第二方、以及第一方之间的共同主键值密文。所述第四方可以向第三方、第二方、以及第一方发送所述共同主键值密文。所述第四方进而可以根据所述共同主键值密文,对所述第四数据集合中的数据进行筛选。
本说明书实施例的数据筛选方法,在数据筛选的过程中,可以对数据方所持有的除共同主键值以外的特有主键值实现隐私保护。
下面将结合图5,详细描述本说明书数据筛选方法的另一个实施例。请参阅图5。所述数据筛选方法可以包括以下步骤。
步骤S502:第一方对第一数据集合中的主键值进行加密,得到第一主键值密文集合。
步骤S504:第一方向第二方发送所述第一主键值密文集合。
步骤S506:第二方接收所述第一主键值密文集合。
步骤S508:第二方对第二数据集合中的主键值进行加密,得到第二主键值密文集合。
步骤S510:第二方确定所述第一主键值密文集合和所述第二主键值密文集合之间的第一交集,所述第一交集包括第二方和第一方之间的共同主键值密文。
在一些实施例中,所述第一交集包括至少一个第二方和第一方之间的共同主键值密文。
步骤S512:第二方向第三方发送所述第一交集。
步骤S514:第三方接收所述第一交集。
步骤S516:第三方对第三数据集合中的主键值进行加密,得到第三主键值密文集合。
步骤S518:第三方确定所述第一交集和所述第三主键值密文集合之间的第二交集,所述第二交集包括第三方、第二方、以及第一方之间的共同主键值密文。
步骤S520:第三方根据共同主键值密文,确定第三方、第二方、以及第一方之间的共同主键值。
在一些实施例中,所述第二交集包括至少一个第三方、第二方、以及第一方之间的共同主键值密文。所述第三方可以根据主键值密文,确定至少一个第三方、第二方、以及第一方之间的共同主键值。所述第三方确定共同主键值的过程,可以参见前面的实施例。
步骤S522:第三方向第二方和第一方发送所述共同主键值。
步骤S524:第一方接收所述共同主键值;根据共同主键值,对所述第一数据集合中的数据进行筛选,得到第一子数据集合。
步骤S526:第二方接收所述共同主键值;根据共同主键值,对所述第二数据集合中的数据进行筛选,得到第二子数据集合。
步骤S528:第三方根据共同主键值,对所述第三数据集合中的数据进行筛选,得到第三子数据集合。
这样可以对所述第一数据集合中的特有主键值进行隐私保护,避免所述第二方(或所述第三方)获知所述第一数据集合中的特有主键值。另外,也可以对所述第二数据集合中的特有主键值进行隐私保护,避免所述第一方(或所述第三方)获知所述第二数据集合中的特有主键值。另外,还可以对所述第三数据集合中的特有主键值进行隐私保护,避免所述第一方(或所述第二方)获知所述第三数据集合中的特有主键值。
在一些实施例中,所述第一方可以持有第一筛选条件;可以根据所述第一筛选条件在本地预先对所述第一数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第一主键值密文集合。和/或,所述第二方可以持有第二筛选条件;可以根据所述第二筛选条件在本地预先对所述第二数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第二主键值密文集合。和/或,所述第三方可以持有第三筛选条件;可以根据所述第三筛选条件在本地预先对所述第三数据集合中的主键值进行筛选;可以对筛选出的主键值进行加密,得到主键值密文,将得到的主键值密文形成的集合作为第三主键值密文集合。
当然,所述数据筛选方法还可以涉及到更多的数据方,例如第四方、第五方等等。值得说明的是,当所述数据筛选方法涉及到更多的数据方时,可以仍采用“串行”的方式来确定共同主键值,具体地,可以由所述更多的数据方来确定共同主键值。具体地,例如,当所述数据筛选方法涉及到第四方时,所述第三方可以向所述第四方发送所述第二交集。所述第四方可以对第四数据集合中的主键值进行加密,得到第四主键值密文集合;可以确定所述第二交集和所述第四主键值密文集合之间的第三交集,所述第三交集包括第四方、第三方、第二方、以及第一方之间的共同主键值密文。所述第四方可以根据共同主键值密文,确定所述第四方、所述第三方、所述第二方、以及第一方之间的共同主键值;可以向第三方、第二方、以及第一方发送所述共同主键值。所述第四方进而可以根据所述共同主键值,对所述第四数据集合中的数据进行筛选。
本说明书实施例的数据筛选方法,在数据筛选的过程中,可以对数据方所持有的除共同主键值以外的特有主键值实现隐私保护。
上文中图2和图3所对应的实施例,可以单独实现为第一方侧的数据筛选方法和第二方侧的数据筛选方法。下面将结合图6和图7,详细描述本说明书实施例中第一方侧的数据筛选方法和第二方侧的数据筛选方法。
请参阅图6。本说明书提供数据筛选方法的另一个实施例。所述数据筛选方法的执行主体可以为第一方,具体可以包括以下步骤。
步骤S602:对数据集合中的主键值进行加密,得到主键值密文集合。
第一方对数据集合中的主键值进行加密的过程,可以参见前面实施例的步骤S202。
步骤S604:向第二方发送所述主键值密文集合。
步骤S606:接收第二方发来的第二方和第一方之间的共同主键值密文或共同主键值。
第一方接收共同主键值密文的过程,可以参见图2所对应的实施例。第一方接收共同主键值的过程,可以参见图3所对应的实施例。
步骤S608:根据所述共同主键值密文或所述共同主键值对所述数据集合中的数据进行筛选。
第一方根据共同主键值密文对所述数据集合中的数据进行筛选的过程,可以参见图2所对应的实施例。第一方根据共同主键值对所述数据集合中的数据进行筛选的过程,可以参见图3所对应的实施例。
本说明书实施例的数据筛选方法,在数据筛选的过程中,可以对第一方所持有的除共同主键值以外的特有主键值实现隐私保护。
请参阅图7。本说明书提供数据筛选方法的另一个实施例。所述数据筛选方法的执行主体可以为第二方,具体可以包括以下步骤。
步骤S702:接收第一方发来的主键值密文集合作为第一主键值密文集合。
步骤S704:对数据集合中的主键值进行加密,得到第二主键值密文集合。
第二方对数据集合中的主键值进行加密的过程,可以参见前面实施例的步骤S208。
步骤S706:确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集,所述交集包括第二方和第一方之间的共同主键值密文。
步骤S708:根据所述共同主键值密文对所述数据集合中的数据进行筛选。
步骤S710:向第一方发送所述共同主键值密文。
在一些实施例中,第二方还可以根据所述共同主键值密文,确定第二方和第一方之间的共同主键值;进而可以向所述第一方发送所述共同主键值。
本说明书实施例的数据筛选方法,在数据筛选的过程中,可以对第二方所持有的除共同主键值以外的特有主键值实现隐私保护。
上文中图4和图5所对应的实施例,可以单独实现为第一方侧的数据筛选方法、第二方侧的数据筛选方法、以及第三方侧的数据筛选方法。下面将结合图8、图9和图10,详细描述本说明书实施例中第一方侧的数据筛选方法、第二方侧的数据筛选方法、以及第三方侧的数据筛选方法。
请参阅图8。本说明书提供数据筛选方法的另一个实施例。所述数据筛选方法的执行主体可以为第一方,具体可以包括以下步骤。
步骤S802:对数据集合中的主键值进行加密,得到主键值密文集合。
第一方对数据集合中的主键值进行加密的过程,可以参见前面实施例的步骤S402。
步骤S804:向第二方发送所述主键值密文集合。
步骤S806:接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值。
第一方接收共同主键值密文的过程,可以参见图4所对应的实施例。第一方接收共同主键值的过程,可以参见图5所对应的实施例。
步骤S808:根据所述共同主键值密文或所述共同主键值对所述数据集合中的数据进行筛选。
第一方根据共同主键值密文对所述数据集合中的数据进行筛选的过程,可以参见图4所对应的实施例。第一方根据共同主键值对所述数据集合中的数据进行筛选的过程,可以参见图5所对应的实施例。
本说明书实施例的数据筛选方法,在数据筛选的过程中,可以对第一方所持有的除共同主键值以外的特有主键值实现隐私保护。
请参阅图9。本说明书提供数据筛选方法的另一个实施例。所述数据筛选方法的执行主体可以为第二方,具体可以包括以下步骤。
步骤S902:接收第一方发来的主键值密文集合作为第一主键值密文集合。
步骤S904:对数据集合中的主键值进行加密,得到第二主键值密文集合。
第二方对数据集合中的主键值进行加密的过程,可以参见前面实施例的步骤S408。
步骤S906:确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集。
步骤S908:向第三方发送所述交集。
步骤S910:接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值。
第二方接收共同主键值密文的过程,可以参见图4所对应的实施例。第二方接收共同主键值的过程,可以参见图5所对应的实施例。
步骤S912:根据所述共同主键值密文或所述共同主键值对所述数据集合中的数据进行筛选。
第二方根据共同主键值密文对所述数据集合中的数据进行筛选的过程,可以参见图4所对应的实施例。第二方根据共同主键值对所述数据集合中的数据进行筛选的过程,可以参见图5所对应的实施例。
本说明书实施例的数据筛选方法,在数据筛选的过程中,可以对第二方所持有的除共同主键值以外的特有主键值实现隐私保护。
请参阅图10。本说明书提供数据筛选方法的另一个实施例。所述数据筛选方法的执行主体可以为第三方,具体可以包括以下步骤。
步骤S1002:接收第二方发来的交集作为第一交集,所述第一交集基于第一方的第一主键值密文集合和第二方的第二主键值密文集合确定得到。
步骤S1004:对数据集合中的主键值进行加密,得到第三主键值密文集合。
第三方对数据集合中的主键值进行加密的过程,可以参见前面实施例的步骤S416。
步骤S1006:确定所述第一交集和所述第三主键值密文集合之间的第二交集,所述第二交集包括第三方、第二方和第一方之间的共同主键值密文。
步骤S1008:向第二方和第一方发送所述共同主键值密文。
步骤S1010:根据所述共同主键值密文对所述数据集合中的数据进行筛选。
在一些实施例中,第三方还可以根据所述共同主键值密文,确定第三方、第二方、以及第一方之间的共同主键值;进而可以向所述第二方和所述第一方发送所述共同主键值。
本说明书实施例的数据筛选方法,在数据筛选的过程中,可以对第三方所持有的除共同主键值以外的特有主键值实现隐私保护。
下面将结合图11、图12、图13、图14和图15,详细描述本说明书实施例中的数据筛选装置。
请参阅图11。本说明书提供数据筛选装置的一个实施例。所述数据筛选装置可以设置于第一方,具体可以包括以下模块单元。
加密模块1102,用于对数据集合中的主键值进行加密,得到主键值密文集合;
发送模块1104,用于向第二方发送所述主键值密文集合;
接收模块1106,用于接收第二方发来的第二方和第一方间之间的共同主键值密文或共同主键值;
筛选模块1108,用于根据共同主键值密文或共同主键值对所述数据集合中的数据进行筛选。
请参阅图12。本说明书提供数据筛选装置的一个实施例。所述数据筛选装置可以设置于二方,具体可以包括以下模块单元。
接收模块1202,用于接收第一方发来的主键值密文集合作为第一主键值密文集合;
加密模块1204,用于对数据集合中的主键值进行加密,得到第二主键值密文集合;
确定模块1206,用于确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集,所述交集包括第二方和第一方之间的共同主键值密文;
筛选模块1208,用于根据所述共同主键值密文对所述数据集合中的数据进行筛选;
发送模块1210,用于向第一方发送所述共同主键值密文。
请参阅图13。本说明书提供数据筛选装置的一个实施例。所述数据筛选装置可以设置于第一方,具体可以包括以下模块单元。
加密模块1302,用于对数据集合中的主键值进行加密,得到主键值密文集合;
发送模块1304,用于向第二方发送所述主键值密文集合;
接收模块1306,用于接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值;
筛选模块1308,用于根据共同主键值密文或共同主键值对所述数据集合中的数据进行筛选。
请参阅图14。本说明书提供数据筛选装置的一个实施例。所述数据筛选装置可以设置于二方,具体可以包括以下模块单元。
第一接收模块1402,用于接收第一方发来的主键值密文集合作为第一主键值密文集合;
加密模块1404,用于对数据集合中的主键值进行加密,得到第二主键值密文集合;
确定模块1406,用于确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集;
发送模块1408,用于向第三方发送所述交集;
第二接收模块1410,用于接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值;
筛选模块1412,用于根据共同主键值密文或共同主键值对所述数据集合中的数据进行筛选。
请参阅图15。本说明书提供数据筛选装置的一个实施例。所述数据筛选装置可以设置于三方,具体可以包括以下模块单元。
接收模块1502,用于接收第二方发来的交集作为第一交集,所述第一交集基于第一方的第一主键值密文集合和第二方的第二主键值密文集合确定得到;
加密模块1504,用于对数据集合中的主键值进行加密,得到第三主键值密文集合;
确定模块1506,用于确定所述第一交集和所述第三主键值密文集合之间的第二交集,所述第二交集包括第三方、第二方和第一方之间的共同主键值密文;
发送模块1508,用于向第二方和第一方发送所述共同主键值密文;
筛选模块1510,用于根据所述共同主键值密文对所述数据集合中的数据进行筛选。
下面介绍本说明书电子设备的一个实施例。图16是该实施例中电子设备的硬件结构示意图。如图16所示,该电子设备可以包括一个或多个(图中仅示出一个)处理器、存储器和传输模块。当然,本领域普通技术人员可以理解,图16所示的硬件结构仅为示意,其并不对上述电子设备的硬件结构造成限定。在实际中该电子设备还可以包括比图16所示更多或者更少的组件单元;或者,具有与图16所示不同的配置。
所述存储器可以包括高速随机存储器;或者,还可以包括非易失性存储器,例如一个或者多个磁性存储装置、闪存或者其他非易失性固态存储器。当然,所述存储器还可以包括远程设置的网络存储器。所述远程设置的网络存储器可以通过诸如互联网、企业内部网、局域网、移动通信网等网络连接至所述区块链客户端。所述存储器可以用于存储应用软件的程序指令或模块,例如本说明书图6、图7、图8、图9或图10所对应实施例的程序指令或模块。
所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以读取并执行所述存储器中的程序指令或模块。
所述传输模块可以用于经由网络进行数据传输,例如经由诸如互联网、企业内部网、局域网、移动通信网等网络进行数据传输。
本说明书还提供计算机存储介质的一个实施例。所述计算机存储介质包括但不限于随机存取存储器(Random Access Memory, RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard Disk Drive, HDD)、存储卡(Memory Card)等等。所述计算机存储介质存储有计算机程序指令。在所述计算机程序指令被执行时实现:本说明书图6、图7、图8、图9或图10所对应实施例的程序指令或模块。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于单侧实施的方法实施例(例如图6、图7、图8、图9或图10所对应的实施例)、装置实施例、电子设备实施例、以及计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD 上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL 也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language ) 与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

Claims (16)

1.一种数据筛选方法,应用于第一方,所述第一方持有数据集合,所述数据集合中的数据包括主键值和非主键字段的值,所述方法包括:
对数据集合中的主键值进行加密,得到主键值密文集合;其中,所述对数据集合中的主键值进行加密,包括:根据非主键字段的筛选条件,对所述数据集合中的主键值进行筛选;对筛选出的主键值进行加密,得到主键值密文集合;
向第二方发送所述主键值密文集合;
接收第二方发来的第二方和第一方之间的共同主键值密文或共同主键值;
根据所述共同主键值密文或所述共同主键值对所述数据集合中非主键字段的值进行筛选。
2.如权利要求1所述的方法,所述对数据集合中的主键值进行加密,包括:
计算数据集合中主键值的哈希值,作为主键值密文集合中的主键值密文;或者,
根据盐值计算数据集合中主键值的加盐哈希值,作为主键值密文集合中的主键值密文。
3.如权利要求2所述的方法,还包括:
向第二方发送所述盐值。
4.一种数据筛选方法,应用于第二方,所述第二方持有数据集合,所述数据集合中的数据包括主键值和非主键字段的值,所述方法包括:
接收第一方发来的主键值密文集合作为第一主键值密文集合;
对数据集合中的主键值进行加密,得到第二主键值密文集合;其中,所述对数据集合中的主键值进行加密,包括:根据非主键字段的筛选条件,对所述数据集合中的主键值进行筛选;对筛选出的主键值进行加密,得到第二主键值密文集合;
确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集,所述交集包括第二方和第一方之间的共同主键值密文;
根据所述共同主键值密文对所述数据集合中非主键字段的值进行筛选;
向第一方发送所述共同主键值密文。
5.如权利要求4所述的方法,所述对数据集合中的主键值进行加密,包括:
计算数据集合中主键值的哈希值,作为第二主键值密文集合中的主键值密文;或者,
接收第一方发来的盐值;根据所述盐值计算数据集合中主键值的加盐哈希值,作为第二主键值密文集合中的主键值密文。
6.如权利要求4所述的方法,还包括:
根据所述共同主键值密文,确定第二方和第一方之间的共同主键值;
所述向第一方发送所述共同主键值密文,包括:
向第一方发送所述共同主键值。
7.一种数据筛选方法,应用于第一方,所述第一方持有数据集合,所述数据集合中的数据包括主键值和非主键字段的值,所述方法包括:
对数据集合中的主键值进行加密,得到主键值密文集合;其中,所述对数据集合中的主键值进行加密,包括:根据非主键字段的筛选条件,对所述数据集合中的主键值进行筛选;对筛选出的主键值进行加密,得到主键值密文集合;
向第二方发送所述主键值密文集合;
接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值;
根据所述共同主键值密文或所述共同主键值对所述数据集合中非主键字段的值进行筛选。
8.一种数据筛选方法,应用于第二方,所述第二方持有数据集合,所述数据集合中的数据包括主键值和非主键字段的值,所述方法包括:
接收第一方发来的主键值密文集合作为第一主键值密文集合;
对数据集合中的主键值进行加密,得到第二主键值密文集合;其中,所述对数据集合中的主键值进行加密,包括:根据非主键字段的筛选条件,对所述数据集合中的主键值进行筛选;对筛选出的主键值进行加密,得到第二主键值密文集合;
确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集;
向第三方发送所述交集;
接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值;
根据所述共同主键值密文或所述共同主键值对所述数据集合中非主键字段的值进行筛选。
9.一种数据筛选方法,应用于第三方,所述第三方持有数据集合,所述数据集合中的数据包括主键值和非主键字段的值,所述方法包括:
接收第二方发来的交集作为第一交集,所述第一交集基于第一方的第一主键值密文集合和第二方的第二主键值密文集合确定得到;
对数据集合中的主键值进行加密,得到第三主键值密文集合;其中,所述对数据集合中的主键值进行加密,包括:根据非主键字段的筛选条件,对所述数据集合中的主键值进行筛选;对筛选出的主键值进行加密,得到第三主键值密文集合;
确定所述第一交集和所述第三主键值密文集合之间的第二交集,所述第二交集包括第三方、第二方和第一方之间的共同主键值密文;
向第二方和第一方发送所述共同主键值密文;
根据所述共同主键值密文对所述数据集合中非主键字段的值进行筛选。
10.如权利要求9所述的方法,还包括:
根据所述共同主键值密文,确定第三方、第二方和第一方之间的共同主键值;
所述向第二方和第一方发送所述共同主键值密文,包括:
向第二方和第一方发送所述共同主键值。
11.一种数据筛选装置,设置于第一方,所述第一方持有数据集合,所述数据集合中的数据包括主键值和非主键字段的值,所述装置包括:
加密模块,用于对数据集合中的主键值进行加密,得到主键值密文集合;其中,所述对数据集合中的主键值进行加密,包括:根据非主键字段的筛选条件,对所述数据集合中的主键值进行筛选;对筛选出的主键值进行加密,得到主键值密文集合;
发送模块,用于向第二方发送所述主键值密文集合;
接收模块,用于接收第二方发来的第二方和第一方间之间的共同主键值密文或共同主键值;
筛选模块,用于根据共同主键值密文或共同主键值对所述数据集合中非主键字段的值进行筛选。
12.一种数据筛选装置,设置于第二方,所述第二方持有数据集合,所述数据集合中的数据包括主键值和非主键字段的值,所述装置包括:
接收模块,用于接收第一方发来的主键值密文集合作为第一主键值密文集合;
加密模块,用于对数据集合中的主键值进行加密,得到第二主键值密文集合;其中,所述对数据集合中的主键值进行加密,包括:根据非主键字段的筛选条件,对所述数据集合中的主键值进行筛选;对筛选出的主键值进行加密,得到第二主键值密文集合;
确定模块,用于确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集,所述交集包括第二方和第一方之间的共同主键值密文;
筛选模块,用于根据所述共同主键值密文对所述数据集合中非主键字段的值进行筛选;
发送模块,用于向第一方发送所述共同主键值密文。
13.一种数据筛选装置,设置于第一方,所述第一方持有数据集合,所述数据集合中的数据包括主键值和非主键字段的值,所述装置包括:
加密模块,用于对数据集合中的主键值进行加密,得到主键值密文集合;其中,所述对数据集合中的主键值进行加密,包括:根据非主键字段的筛选条件,对所述数据集合中的主键值进行筛选;对筛选出的主键值进行加密,得到主键值密文集合;
发送模块,用于向第二方发送所述主键值密文集合;
接收模块,用于接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值;
筛选模块,用于根据共同主键值密文或共同主键值对所述数据集合中非主键字段的值进行筛选。
14.一种数据筛选装置,设置于第二方,所述第二方持有数据集合,所述数据集合中的数据包括主键值和非主键字段的值,所述装置包括:
第一接收模块,用于接收第一方发来的主键值密文集合作为第一主键值密文集合;
加密模块,用于对数据集合中的主键值进行加密,得到第二主键值密文集合;其中,所述对数据集合中的主键值进行加密,包括:根据非主键字段的筛选条件,对所述数据集合中的主键值进行筛选;对筛选出的主键值进行加密,得到第二主键值密文集合;
确定模块,用于确定所述第一主键值密文集合和所述第二主键值密文集合之间的交集;
发送模块,用于向第三方发送所述交集;
第二接收模块,用于接收第三方发来的第三方、第二方和第一方之间的共同主键值密文或共同主键值;
筛选模块,用于根据共同主键值密文或共同主键值对所述数据集合中非主键字段的值进行筛选。
15.一种数据筛选装置,设置于第三方,所述第三方持有数据集合,所述数据集合中的数据包括主键值和非主键字段的值,所述装置包括:
接收模块,用于接收第二方发来的交集作为第一交集,所述第一交集基于第一方的第一主键值密文集合和第二方的第二主键值密文集合确定得到;
加密模块,用于对数据集合中的主键值进行加密,得到第三主键值密文集合;其中,所述对数据集合中的主键值进行加密,包括:根据非主键字段的筛选条件,对所述数据集合中的主键值进行筛选;对筛选出的主键值进行加密,得到第三主键值密文集合;
确定模块,用于确定所述第一交集和所述第三主键值密文集合之间的第二交集,所述第二交集包括第三方、第二方和第一方之间的共同主键值密文;
发送模块,用于向第二方和第一方发送所述共同主键值密文;
筛选模块,用于根据所述共同主键值密文对所述数据集合中非主键字段的值进行筛选。
16.一种电子设备,包括:
至少一个处理器;
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-10中任一项所述方法的指令。
CN202010168644.7A 2020-03-12 2020-03-12 数据筛选方法、装置和电子设备 Active CN111061720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010168644.7A CN111061720B (zh) 2020-03-12 2020-03-12 数据筛选方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010168644.7A CN111061720B (zh) 2020-03-12 2020-03-12 数据筛选方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN111061720A CN111061720A (zh) 2020-04-24
CN111061720B true CN111061720B (zh) 2021-05-07

Family

ID=70307915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010168644.7A Active CN111061720B (zh) 2020-03-12 2020-03-12 数据筛选方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN111061720B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112232639B (zh) * 2020-09-22 2023-06-30 支付宝(杭州)信息技术有限公司 统计方法、装置和电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170293913A1 (en) * 2016-04-12 2017-10-12 The Governing Council Of The University Of Toronto System and methods for validating and performing operations on homomorphically encrypted data
CN108399151B (zh) * 2017-02-06 2022-02-15 百度在线网络技术(北京)有限公司 数据比对系统和方法
CN107196919B (zh) * 2017-04-27 2021-01-01 北京小米移动软件有限公司 一种匹配数据的方法和装置
CN109474616B (zh) * 2018-12-17 2021-06-25 秒针信息技术有限公司 多平台数据共享方法和装置及计算机可读存储介质
CN110535622A (zh) * 2019-08-01 2019-12-03 阿里巴巴集团控股有限公司 数据处理方法、装置和电子设备
CN110493251B (zh) * 2019-08-30 2022-02-15 北京字节跳动网络技术有限公司 一种数据处理方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN111061720A (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
Tan et al. A survey on proof of retrievability for cloud data integrity and availability: Cloud storage state-of-the-art, issues, solutions and future trends
EP3566391B1 (en) Parallel execution of transactions in a blockchain network based on smart contract whitelists
JP6892513B2 (ja) 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス
JP6816300B2 (ja) ブロックチェーンネットワークにおけるトランザクションの並列実行
CN110457912B (zh) 数据处理方法、装置和电子设备
KR102222612B1 (ko) 스마트 계약 화이트리스트
US10608811B2 (en) Private set intersection encryption techniques
US8347083B1 (en) Encrypted cross-origin communication via an intermediary
CN111125727B (zh) 混淆电路生成方法、预测结果确定方法、装置和电子设备
CN109214201B (zh) 一种数据共享方法、终端设备及计算机可读存储介质
Mandal et al. Symmetric key image encryption using chaotic Rossler system
CN110391895B (zh) 数据预处理方法、密文数据获取方法、装置和电子设备
CN111144576A (zh) 模型训练方法、装置和电子设备
CN110636070B (zh) 数据发送方法、数据查询方法、装置、电子设备和系统
US20150172044A1 (en) Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof
CN107277028A (zh) 在应用间传输聊天表情的方法及装置、设备、存储介质
CN111061720B (zh) 数据筛选方法、装置和电子设备
Arvind et al. Secure data classification using superior naive classifier in agent based mobile cloud computing
Karmakar et al. Shrinkable Cryptographic Technique Using Involutory Function for Image Encryption
CN111046431B (zh) 数据处理方法、查询方法、装置、电子设备和系统
CN112069525A (zh) 基于信息的属性生成密钥的加密方法、装置及设备
CN111046408A (zh) 判断结果处理方法、查询方法、装置、电子设备和系统
CN111949655A (zh) 表单显示方法、装置、电子设备和介质
CN110717186A (zh) 数据处理方法、装置和电子设备
JP2020048107A (ja) データ管理方法、データ管理装置及びデータ管理プログラム

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
GR01 Patent grant
GR01 Patent grant