CN115422581B - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN115422581B
CN115422581B CN202211048300.8A CN202211048300A CN115422581B CN 115422581 B CN115422581 B CN 115422581B CN 202211048300 A CN202211048300 A CN 202211048300A CN 115422581 B CN115422581 B CN 115422581B
Authority
CN
China
Prior art keywords
filter
encryption
intersection
target element
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
CN202211048300.8A
Other languages
English (en)
Other versions
CN115422581A (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.)
Beijing Volcano Engine Technology Co Ltd
Original Assignee
Beijing Volcano Engine 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 Volcano Engine Technology Co Ltd filed Critical Beijing Volcano Engine Technology Co Ltd
Priority to CN202211048300.8A priority Critical patent/CN115422581B/zh
Publication of CN115422581A publication Critical patent/CN115422581A/zh
Application granted granted Critical
Publication of CN115422581B publication Critical patent/CN115422581B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

本公开提供了一种数据处理方法、系统及装置,其中,该方法包括:在可信执行环境中构建己方的过滤器,将得到的混淆数据集插入过滤器;向计算方发送携带有加密过滤器的近似求交请求,通过可信执行环境接收计算方反馈的经加密的近似求交的过滤器,基于解密后的近似求交的过滤器对各个参与方的业务数据集筛选得到目标元素集;向计算方发送携带有目标元素集密文的隐私集合求交请求,接收计算方对所有参与方各自的目标元素集求交得到的隐私集合求交结果。本公开实施例通过利用近似求交的过滤器对业务数据集进行数据筛选,可以过滤掉不存在于求交结果中的数据,减少求交的数据量,从而利用筛选后的目标元素集进行求交处理时,可以提高数据的处理效率。

Description

一种数据处理方法及装置
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据处理方法及装置。
背景技术
随着用户对数据隐私保护需求的日益提升,隐私集合求交(Private SetIntersection,PSI)在某些业务场景,例如广告归因、金融风控等,扮演着重要的角色。隐私集合求交可以在满足依赖个人信息的业务的便利性的同时,能够最大程度保护个人信息私密性需求。
在隐私集合求交的过程中,各个参与方提供各自持有的数据来参与数据的交集计算并得到数据交集,同时各个参与方无法得到除交集以外的其他参与方的任何数据。通常的隐私集合求交过程中经常存在处理效率较低或者隐私数据泄露的风险。如何既能提高数据的处理效率,又能提高隐私数据的安全性是亟待解决的问题。
发明内容
本公开实施例至少提供一种数据处理方法及装置。
第一方面,本公开实施例提供了一种数据处理方法,包括:
基于所有参与方预先协商的共同密钥对己方的业务数据集中元素进行不可逆的混淆处理得到参与方的混淆数据集;
在可信执行环境中构建己方的过滤器,并将所述混淆数据集插入所述过滤器,所述过滤器用于以数组的数据结构形式表征所述混淆数据集,并基于与计算方协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器;
向所述计算方发送携带有所述加密过滤器的近似求交请求,所述近似求交请求用于请求所述计算方基于所述加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
通过所述可信执行环境接收所述计算方反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器,并基于所述近似求交的过滤器对所述业务数据集进行数据筛选得到目标元素集,并对所述目标元素集进行加密得到目标元素集密文;
向所述计算方发送携带有所述目标元素集密文的隐私集合求交请求,接收所述计算方响应于所述隐私集合求交请求针对所有参与方各自的目标元素集进行求交得到的隐私集合求交结果。
一种可选的实施方式中,所述方法还包括:采用下述过程构建所述可信执行环境:
生成第一挑战数据,并向所述计算方发送所述第一挑战数据;
响应于接收到所述计算方基于所述第一挑战数据返回的第一证明信息、和第二挑战数据,基于所述第一证明信息进行第一可信验证;
响应于所述第一可信验证通过,基于所述第二挑战数据生成第二证明信息,并向所述计算方发送所述第二证明信息;
响应于接收到所述计算方基于所述第二证明信息发送的第三证明信息,基于所述第三证明信息进行第三可信验证;
响应于所述第三可信验证通过,确定当前参与方与所述计算方的执行环境为可信执行环境。
一种可选的实施方式中,所述在可信执行环境中构建己方的过滤器,包括:
基于在所述可信执行环境中生成的聚合种子数据,对预设类型的过滤器进行初始化操作,得到初始化过滤器;所述初始化过滤器包括:包括多个数组位的预设字符串、以及基于所述聚合种子数据确定的随机变换;
基于所述随机变换,将多个元素分别映射至所述初始化过滤器的预设数组位,生成己方的过滤器。
一种可选的实施方式中,所述加解密机制包括:接收在构建所述可信执行环境时,己方获得所述计算方发送的第一加密公钥,且在己方生成参与方签名密钥对;所述参与方签名密钥对中包括:参与方签名私钥;
所述基于与计算方协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器,包括:
确定第一对称加密密钥;
基于所述第一对称加密密钥对所述过滤器进行加密处理,得到加密过滤器;
所述向所述计算方发送携带有所述加密过滤器的近似求交请求,包括:
基于所述第一加密公钥对所述第一对称加密密钥进行加密处理,得到加密后的第一对称加密密钥;
基于所述参与方签名私钥对所述加密过滤器进行数字签名,得到签名加密过滤器;
基于所述加密过滤器、所述加密后的加密密钥、以及所述签名加密过滤器数据,生成与所述过滤器对应的第一加密数据;
向所述计算方发送携带有所述第一加密数据的近似求交请求。
一种可选的实施方式中,在构建所述可信执行环境时,己方获得所述计算方发送的计算方签名公钥,且在己方生成了第二加密密钥对;所述第二加密密钥对中包括:第二加密私钥和第二加密公钥;
所述通过所述可信执行环境接收所述计算方反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器,包括:
接收所述计算方发送的第二加密数据;其中,所述第二加密数据包括:经加密的所述近似求交的过滤器、加密后的第二对称加密密钥、以及签名后的所述近似求交的过滤器;其中,所述加密后的第二对称加密密钥是基于所述第二加密公钥对所述计算方生成的第二对称加密密钥进行加密处理得到的;所述经加密的近似求交的过滤器是基于所述第二对称加密密钥对所述近似求交的过滤器进行加密处理得到的;所述签名后的所述近似求交的过滤器是基于计算方签名私钥对所述经加密的近似求交的过滤器进行数字签名处理得到的;
基于所述计算方签名公钥、以及所述签名后的所述近似求交的过滤器,对所述经加密的近似求交的过滤器进行正确性验证;以及
基于所述第二加密私钥对所述加密后的第二对称加密密钥进行解密,得到第二对称加密密钥;
响应于所述经加密的近似求交的过滤器通过正确性验证,基于所述第二对称加密密钥对所述经加密的近似求交的过滤器进行解密,得到所述近似求交的过滤器。
一种可选的实施方式中,在构建所述可信执行环境时,在己方生成了第二加密密钥对;所述第二加密密钥对中包括:第二加密公钥;
对所述目标元素集进行加密得到目标元素集密文,包括:
对所述目标元素集进行分组,得到多个目标元素组;每个所述目标元素组中包含预设数量个目标元素;多个所述目标元素组分别对应有组别标识;
确定第三对称加密密钥,并基于所述第三对称加密密钥对各个所述目标元素组分别进行加密处理,得到加密目标元素组;以及,基于所述第三对称加密密钥对各个所述目标元素组对应的组别标识分别进行加密,得到加密组别标识;
基于所述第二加密公钥对所述第三对称加密密钥进行加密处理,得到加密后的第三对称加密密钥;
基于所述加密目标元素组、多个所述目标元素组分别对应的加密组别标识、以及加密后的第三对称加密密钥,生成所述目标元素集密文。
一种可选的实施方式中,所述接收所述计算方响应于所述隐私集合求交请求针对所有参与方各自的目标元素集进行求交得到隐私集合求交结果,包括:
接收所述计算方基于所述目标元素集反馈的第三加密数据;其中,所述第三加密数据包括:加密后的隐私集合求交结果和加密组别标识;所述加密后的隐私集合求交结果是基于所述第三对称加密密钥对所述隐私集合求交结果进行加密处理得到的;所述加密组别识别是基于所述第三对称加密密钥分别对多个所述目标元素组对应的组别标识进行加密处理得到的;
基于所述第三对称加密密钥对所述加密后的隐私集合求交结果进行解密,得到所述隐私集合求交结果;以及基于所述第三对称加密密钥分别对多个所述目标元素组对应的加密组别标识进行解密,得到多个所述目标元素组对应的组别标识。
第二方面,本公开实施例还提供一种数据处理方法,包括:
通过可信执行环境接收多个参与方分别发送的携带有加密过滤器的近似求交请求;
响应于所述近似求交请求,基于与参与方协商的加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
向多个所述参与方分别发送经加密的所述近似求交的过滤器;
通过所述可信执行环境接收多个所述参与方分别发送的携带有目标元素集密文的隐私集合求交请求;所述目标元素集密文是所述参与方基于解密后的所述近似求交的过滤器,对己方的业务数据集进行数据筛选,并对筛选后的目标元素集进行加密得到的;
基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方各自的目标元素集,并针对所有参与方各自的目标元素集进行求交处理得到隐私集合求交结果;
向多个所述参与方分别发送对应的所述隐私集合求交结果。
一种可选的实施方式中,所述方法还包括:采用下述方式构建所述可信执行环境:
响应于接收到所述参与方发送的第一挑战数据,基于所述第一挑战数据生成第一证明信息,并生成第二挑战数据;向所述参与方反馈所述第一证明信息、和所述第二挑战数据;
响应于接收到所述参与方基于所述第二挑战数据发送的第二证明信息,基于所述第二证明信息进行第二可信验证;
响应于所述第二可信验证通过,基于所述第二证明信息,生成聚合种子数据,并基于所述聚合种子数据生成第三证明信息,向所述参与方发送所述第三证明信息;其中,所述聚合种子数据用于所述参与方构建过滤器。
一种可选的实施方式中,在构建所述可信执行环境时,在当前计算方生成了第一加密密钥对;所述第一加密密钥对中包括:第一加密私钥和第一加密公钥;
所述目标元素集密文中包括所述加密目标元素组、多个所述加密目标元素组分别对应的加密组别标识、以及加密后的第三对称加密密钥;其中,所述加密后的第三对称加密密钥是基于所述第一加密公钥对所述第三对称加密密钥进行加密处理后得到的;所述加密目标元素组是基于所述参与方生成的第三对称加密密钥对目标元素组进行加密处理后得到的;所述加密组别标识是基于所述第三对称加密密钥对多个所述加密目标元素组分别对应的组别标识进行加密处理后得到的;
所述基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方各自的目标元素集,包括:
基于第一加密私钥对所述加密后的第三对称加密密钥进行解密,得到所述第三对称加密密钥;
基于所述第三对称加密密钥多个所述加密目标元素组分别对应的加密组别标识进行解密,得到多个所述加密目标元素组分别对应的组别标识;
按照多个所述加密目标元素组分别对应的组别标识,将多个所述参与方中组别标识对应的各个所述加密目标元素组进行匹配;
所述第三对称加密密钥分别对匹配好的所述加密目标元素组进行解密,得到所述目标元素组。
一种可选的实施方式中,向多个所述参与方分别发送对应的隐私集合求交结果之前,所述方法还包括:
基于所述第三对称加密密钥对所述隐私集合求交结果进行加密处理,得到加密隐私集合求交结果;并基于所述第三对称加密密钥对多个所述目标元素组分别对应的组别标识进行加密处理,得到加密组别标识;
基于所述加密隐私集合求交结果和所述加密组别标识,得到第三加密数据;
所述向多个所述参与方分别发送对应的隐私集合求交结果,包括:
向多个所述参与方分别发送对应的隐私集合求交结果对应的第三加密数据。
第三方面,本公开实施例还提供一种数据处理装置,包括:
混淆处理模块,用于基于所有参与方预先协商的共同密钥对己方的业务数据集中元素进行不可逆的混淆处理得到参与方的混淆数据集;
加密处理模块,用于在可信执行环境中构建己方的过滤器,并将所述混淆数据集插入所述过滤器,所述过滤器用于以数组的数据结构形式表征所述混淆数据集,并基于与计算方协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器;
近似求交处理模块,用于向所述计算方发送携带有所述加密过滤器的近似求交请求,所述近似求交请求用于请求所述计算方基于所述加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
筛选模块,用于通过所述可信执行环境接收所述计算方反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器,并基于所述近似求交的过滤器对所述业务数据集进行数据筛选得到目标元素集,并对所述目标元素集进行加密得到目标元素集密文;
接收模块,用于向所述计算方发送携带有所述目标元素集密文的隐私集合求交请求,接收所述计算方响应于所述隐私集合求交请求针对所有参与方各自的目标元素集进行求交得到的隐私集合求交结果。
第四方面,本公开实施例还提供一种数据处理装置,包括:
第一发送模块,用于通过可信执行环境接收多个参与方分别发送的携带有加密过滤器的近似求交请求;
近似求交处理模块,用于响应于所述近似求交请求,基于与参与方协商的加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
第二发送模块,用于向多个所述参与方分别发送经加密的所述近似求交的过滤器;
接收模块,用于通过所述可信执行环境接收多个所述参与方分别发送的携带有目标元素集密文的隐私集合求交请求;所述目标元素集密文是所述参与方基于解密后的所述近似求交的过滤器,对己方的业务数据集进行数据筛选,并对筛选后的目标元素集进行加密得到的;
求交处理模块,用于基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方各自的目标元素集,并针对所有参与方各自的目标元素集进行求交处理得到隐私集合求交结果;
第三发送模块,用于向多个所述参与方分别发送对应的所述隐私集合求交结果。
第五方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
第六方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
本公开实施例提供的数据处理方法,可以基于各个参与方构建的过滤器进行第一次求交处理(即近似求交),得到近似求交的过滤器;然后基于近似求交的过滤器以及各个参与方的业务数据集,得到对各个参与方的业务数据集筛选后的目标元素集;接下来再对各个参与方的目标元素集进行第二次求交处理(即精准求交),得到最终的求交结果(即隐私集合求交结果)。通过上述过程,可以在第一次求交处理过程中过滤掉不存在于最终的求交结果中的数据,减少了进行精准求交时所需要的数据数量,从而可以提高数据的处理效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种数据处理系统的结构示意图;
图2示出了本公开实施例所提供的一种构建可信执行环境的流程图;
图3示出了本公开实施例所提供的另一种构建可信执行环境的流程图;
图4示出了本公开实施例所提供的数据处理系统执行数据处理方法的流程示意图;
图5示出了本公开实施例所提供的一种数据处理方法的流程图;
图6示出了本公开实施例所提供的另一种数据处理方法的流程图;
图7示出了本公开实施例所提供的一种数据处理装置的结构图;
图8示出了本公开实施例所提供的另一种数据处理装置的结构图;
图9示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
在隐私集合求交的过程中,各个参与方提供各自持有的数据来参与数据的交集计算并得到数据交集,同时各个参与方无法得到除交集以外的其他参与方的任何数据。通常的隐私集合求交过程中经常存在通信资源浪费或者隐私数据泄露的风险。如何既能提高数据的处理效率,又能提高隐私数据的安全性是亟待解决的问题。
基于此,本公开提供了一种数据处理方法,可以基于各个参与方构建的过滤器进行第一次求交处理(即近似求交),得到近似求交的过滤器;然后基于近似求交的过滤器以及各个参与方的业务数据集,得到对各个参与方的业务数据集筛选后的目标元素集;接下来再对各个参与方的目标元素集进行第二次求交处理(即精准求交),得到最终的求交结果(即隐私集合求交结果)。通过上述过程,可以在第一次求交处理过程中过滤掉不存在于最终的求交结果中的数据,减少了进行精准求交时所需要的数据数量,从而可以提高数据的处理效率。
针对以上方案所存在的缺陷以及所提出的解决方案,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
首先说明,本公开实施例所公开的数据处理方法可以应用于多个参与方根据各自持有的业务数据集进行数据求交集的场景中。在该场景下,可以包括多个参与方和计算方(计算方可以由第三方或任一参与方担任)。通过多个参与方之间、以及多个参与方与计算方之间的数据交互可以实现数据求交的目的。
为便于对本实施例进行理解,本公开实施例首先对用于执行本公开中的数据处理方法的数据处理系统进行详细介绍。本公开实施例中的数据处理系统可以包括多个参与方、以及计算方。参见图1所示,数据处理系统100包括多个参与方101和计算方102,其中:
参与方101,用于基于所有参与方101预先协商的共同密钥对已方的业务数据集中元素进行不可逆的混淆处理得到参与方101的混淆数据集;在可信执行环境中构建己方的过滤器,并将所述混淆数据集插入所述过滤器,所述过滤器用于以位数组的数据结构形式表征所述混淆数据集,并基于与计算方102协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器;向所述计算方102发送携带有所述加密过滤器的近似求交请求,所述近似求交请求用于请求所述计算方102基于所述加解密机制针对所有参与方101各自的加密过滤器进行解密,并对解密得到的所有参与方101的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;通过所述可信执行环境接收所述计算方102反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器,并基于所述近似求交的过滤器对所述业务数据集进行数据筛选得到目标元素集,并对所述目标元素集进行加密得到目标元素集密文;向所述计算方102发送携带有所述目标元素集密文的隐私集合求交请求,接收所述计算方102响应于所述隐私集合求交请求针对所有参与方101各自的目标元素集进行求交得到隐私集合求交结果。
计算方102,用于通过可信执行环境接收多个参与方101分别发送的携带有加密过滤器的近似求交请求;针对所述近似求交请求基于所述加解密机制针对所有参与方101各自的加密过滤器进行解密,并对解密得到的所有参与方101的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;向多个所述参与方101分别发送经加密的所述近似求交的过滤器;通过所述可信执行环境接收多个所述参与方101分别发送的携带有所述目标元素集密文的隐私集合求交请求;基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方101各自的目标元素集,并针对所有参与方101各自的目标元素集进行求交得到隐私集合求交结果;所述目标元素集密文是所述参与方101基于解密后的所述近似求交的过滤器对所述业务数据集进行数据筛选得到目标元素集,并对所述目标元素集进行加密得到的;向多个所述参与方101分别发送对应的隐私集合求交结果。
也就是,在上述数据处理系统100在执行数据处理方法的具体工作过程中,多个参与方101基于所有参与方101预先协商的共同密钥对己方的业务数据集中元素进行不可逆的混淆处理得到参与方101的混淆数据集,在可信执行环境中构建己方的过滤器,并将混淆数据集插入过滤器;并基于与计算方102协商的加解密机制对过滤器进行加密处理得到己方的加密过滤器;并分别向计算方102发送携带有加密过滤器的近似求交请求;计算方102接收到多个参与方101分别发送的携带有加密过滤器的近似求交请求后,对基于加解密机制针对所有参与方101各自的加密过滤器进行解密,并对解密得到的所有参与方101的过滤器进行近似求交处理得到近似求交的过滤器,对近似求交的过滤器进行加密,并向多个参与方101分别发送经加密的近似求交的过滤器;参与方101接收到计算方102反馈的经加密的近似求交的过滤器后,解密得到近似求交的过滤器,并基于近似求交的过滤器对业务数据集进行数据筛选得到目标元素集,并对目标元素集进行加密得到目标元素集密文,并向计算方102发送携带有目标元素集密文的隐私集合求交请求;计算方102接收到多个参与方101分别发送的隐私集合求交请求后,针对所有参与方101各自的目标元素集进行求交得到的隐私集合求交结果,并发送给各个参与方101。
在本公开实施例中,参与方101与计算方102之间需要具备可信执行环境,也就是参与方101与计算方102需要在可信执行环境下执行数据处理方法。在本公开实施例中,可信执行环境可以是可信硬件中提供的进行安全计算的环境,例如英特尔软件防护扩展(Intel Software Guard Extension,Intel SGX;内存中一个加密的可信执行区域)等。
在一种实施方式中,可以采用以下过程构建可信执行环境,构建可信执行环境的过程可以参见图2、图3所示,具体可以包括步骤A1-A5。
A1:参与方101生成第一挑战数据,并向计算方102发送第一挑战数据。
第一挑战数据用于验证计算方102的可信执行环境。第一挑战数据可以为参与方101生成的随机数据。示例性的,第一挑战数据可以为长度为32比特的nonce数据。其中,nonce为number used once或number once的缩写,表征只被使用一次的随机数据。
A2:计算方102响应于接收到参与方101发送的第一挑战数据,基于第一挑战数据生成第一证明信息,并生成第二挑战数据;计算方102向参与方101反馈第一证明信息和第二挑战数据。
第一挑战数据用于验证参与方101的可信执行环境。第二挑战数据可以为计算方102生成的随机数据。示例性的,第二挑战数据也可以为长度为32比特的nonce数据。
在一种实施方式中,基于第一挑战数据生成第一证明信息的过程中,计算方102,具体用于:
A21:生成计算方签名密钥对、以及第一加密密钥对;其中,计算方签名密钥对中包括:计算方签名公钥、以及计算方签名私钥;第一加密密钥对中包括:第一加密公钥、以及第一加密私钥。
这里,计算方签名密钥对和第一加密密钥对可以是随机生成的。为了便于描述和理解,本文可以将计算方签名公钥记为将计算方签名私钥记为/>以及将第一加密公钥记为/>将第一加密私钥记为/>
计算方102生成计算方签名密钥对和第一加密密钥对后,可以将计算方签名密钥对中的计算方签名私钥和第一加密密钥对中的第一加密私钥/>加密保存在本地。
A22:基于计算方签名私钥对第一挑战数据进行数字签名处理,得到第一签名挑战数据;以及,基于计算方签名公钥/>和第一加密公钥/>生成第一校验数据,并基于第一校验数据,生成第一可信环境校验数据。
这里,第一校验数据可以是分别将计算方签名公钥和第一加密公钥/>进行哈希处理后进行拼接得到的。在一种实施方式中,可以对计算方签名公钥/>进行哈希处理,得到第一哈希字符串,并对第一加密公钥/>进行哈希处理,得到第二哈希字符串。然后将第一哈希字符串和第二哈希字符串进行拼接,得到第一校验数据。在一种方式中,基于计算方签名公钥/>和第一加密公钥/>生成的第一校验数据可以置于第一可信环境校验数据的目标字段里。
例如在使用Intel SGX时,可以利用SHA256算法对计算方签名公钥和第一加密公钥/>分别进行哈希处理,得到计算方签名公钥/>对应的第一哈希字符串hash/>以及第一加密公钥/>对应的第二哈希字符串hash/>然后将第一哈希字符串hash和第二哈希字符串hash/>进行串联,即hash/>‖hash/>最后将该64字节的第一校验数据存放在第一可信环境校验数据的reportdata字段。
A23:基于计算方签名公钥第一加密公钥/>第一签名挑战数据、以及第一可信环境校验数据,生成第一证明信息。
通过上述A21-A23的步骤,计算方102生成了携带有计算方签名公钥第一加密公钥/>第一签名挑战数据、以及第一可信环境校验数据的第一证明信息,然后计算方102将该第一证明信息返回给参与方101。
A3:参与方101接收计算方102基于第一挑战数据返回的第一证明信息、和第二挑战数据,基于第一证明信息进行第一可信验证;响应于第一可信验证通过,基于第一挑战数据生成第二证明信息,并向计算方102发送第二证明信息。
参与方101接收到计算方102基于第一挑战数据返回的第一证明信息后,将第一证明信息传递至参与方101的执行环境中,对计算方102的执行环境进行验证,即基于第一证明信息进行第一可信验证。
在一种实施方式中,基于第一证明信息进行第一可信验证的过程中,参与方101,具体用于:
A31:基于第一可信环境校验数据,验证计算方102的执行环境是否处于可信状态。
这里,参与方101可以向本地用于保证环境可信的可信硬件服务中发送第一可信环境校验数据,然后该可信硬件服务能够直接给出计算方102的执行环境是否处于可信状态的结果。
A32:响应于验证确定计算方102的执行环境处于可信状态,基于第一可信环境校验数据中携带的第一校验数据,对计算方签名公钥和第一加密公钥/>进行正确性验证。
在确定计算方102的执行环境处于可信状态的情况下,可以认为第一可信环境校验数据中的第一校验数据是可信的,那么进而可以根据第一校验数据对计算方签名公钥和第一加密公钥/>进行正确性验证。
在具体实施方式中,可以分别对计算方签名公钥和第一加密公钥/>进行哈希处理,得到计算方签名公钥/>对应的待验证第一哈希字符串,以及第一加密公钥/>对应的待验证第二哈希字符串。然后将第一校验数据中携带的第一哈希字符串与待验证第一哈希字符串进行比对,将第一校验数据中携带的第二哈希字符串与待验证第二哈希字符串进行比对。如果比对成功,则对计算方签名公钥/>和第一加密公钥/>的正确性验证通过。
A33:响应于对计算方签名公钥和第一加密公钥/>进行正确性验证通过,基于计算方签名公钥/>以及本地保存的第一挑战数据,对第一签名挑战数据进行正确性验证。
这里,可以基于计算方签名公钥对第一签名挑战数据进行解密,得到解密后的第一签名挑战数据,然后将解密后的第一签名挑战数据与第一签名挑战数据进行比对。如果比对成功,则对第一签名挑战数据的正确性验证通过。
A34:响应于对第一签名挑战数据的正确性验证通过,确定第一可信验证通过。
在确定第一可信验证通过之后,则可以将计算方签名公钥和第一加密公钥保存在参与方101的执行环境中。并且在第一可信验证通过后,还可以基于第一挑战数据生成第二证明信息。
在一种实施方式中,基于第二挑战数据生成第二证明信息的过程中,参与方101,具体用于:
A35:生成参与方签名密钥对、第二加密密钥对、以及随机种子;其中,参与方签名密钥对中包括:参与方签名公钥、参与方签名私钥;第二加密密钥对中包括:第二加密公钥、以及第二加密私钥。
这里,随机种子、参与方签名密钥对和第二加密密钥对可以是随机生成的。为了便于描述和理解,本文可以将参与方签名公钥记为将参与方签名私钥记为/>以及将第二加密公钥记为/>将第二加密私钥记为/>
参与方101生成参与方签名密钥对和第二加密密钥对后,可以将参与方签名密钥对中的参与方签名私钥和第二加密密钥对中的第二加密私钥/>加密保存在本地。
A36:基于第一加密公钥对随机种子进行加密处理,得到加密种子数据;以及基于参与方签名私钥/>对加密种子数据进行数字签名处理,得到签名种子数据。/>
A37:基于参与方签名私钥对第二挑战数据进行数字签名处理,得到第二签名挑战数据;以及,基于参与方签名公钥/>和第二加密公钥/>生成第二校验数据,并基于第二校验数据,生成第二可信环境校验数据。
这里,第二校验数据可以是分别将参与方签名公钥和第二加密公钥/>进行哈希处理后进行拼接得到的。在一种实施方式中,可以对参与方签名公钥/>进行哈希处理,得到第三哈希字符串,并对第二加密公钥/>进行哈希处理,得到第四哈希字符串。然后将第三哈希字符串和第四哈希字符串进行拼接,得到第二校验数据。基于参与方签名公钥/>和第二加密公钥/>生成的第二校验数据可以置于第二可信环境校验数据的目标字段里。
例如在使用Intel SGX时,可以利用SHA256算法对参与方签名公钥和第二加密公钥/>分别进行哈希处理,得到参与方签名公钥/>对应的第三哈希字符串hash/>以及第二加密公钥/>对应的第四哈希字符串hash/>然后将第三哈希字符串hash和第四哈希字符串hash/>进行串联,即hash/>‖hash/>最后将该64字节的第二校验数据存放在第二可信环境校验数据的reportdata字段。
A38:基于参与方签名公钥第二加密公钥/>第二签名挑战数据、第二可信环境校验数据、以及签名种子数据,生成第二证明信息。
通过上述A35-A38的步骤,参与方101生成了携带有参与方签名公钥第二加密公钥/>第二签名挑战数据、第二可信环境校验数据、以及签名种子数据的第二证明信息,然后参与方101将该第二证明信息返回给计算方102。
A4:计算方102接收参与方101基于第二挑战数据发送的第二证明信息,基于第二证明信息进行第二可信验证;响应于第二可信验证通过,基于第二证明信息,生成聚合种子数据,并基于聚合种子数据生成第三证明信息,向参与方101发送第三证明信息;其中,聚合种子数据用于参与方101生成目标过滤器。
计算方102接收到参与方101基于第二挑战数据返回的第二证明信息后,将第二证明信息传递至计算方102的执行环境中,对参与方101的执行环境进行验证,即基于第二证明信息进行第二可信验证。
在一种实施方式中,基于第二证明信息进行第二可信验证的过程中,计算方102,具体用于:
A41:基于第二可信环境校验数据,验证参与方101的执行环境是否处于可信状态。
这里,计算方102可以向本地用于保证环境可信的可信硬件服务中发送第二可信环境校验数据,然后该可信硬件服务能够直接给出参与方101的执行环境是否处于可信状态的结果。
A42:响应于验证确定参与方101的执行环境处于可信状态,基于第二可信环境校验数据中携带的第二校验数据,对参与方签名公钥和第二加密公钥/>进行正确性验证。
在确定参与方101的执行环境处于可信状态的情况下,可以认为第二可信环境校验数据中的第二校验数据是可信的,那么进而可以根据第二校验数据对参与方签名公钥和第二加密公钥/>进行正确性验证。
在具体实施方式中,可以分别对参与方签名公钥和第二加密公钥/>进行哈希处理,得到参与方签名公钥/>对应的待验证第三哈希字符串,以及第二加密公钥/>对应的待验证第四哈希字符串。然后将第二校验数据中携带的第三哈希字符串与待验证第三哈希字符串进行比对,将第二校验数据中携带的第四哈希字符串与待验证第四哈希字符串进行比对。如果比对成功,则对参与方签名公钥/>和第二加密公钥/>的正确性验证通过。
A43:响应于对参与方签名公钥和第二加密公钥/>进行正确性验证通过,基于参与方签名公钥/>以及本地保存的第二挑战数据,对第二签名挑战数据进行正确性验证;以及基于参与方签名公钥/>以及签名种子数据,对加密种子数据进行正确性验证。
这里,可以基于参与方签名公钥对第二签名挑战数据进行解密,得到解密后的第二签名挑战数据,然后将解密后的第二签名挑战数据与第二签名挑战数据进行比对。如果比对成功,则对第二签名挑战数据的正确性验证通过。
A44:响应于第二签名挑战数据、和加密种子数据均通过正确性验证,则确定第二可信验证通过。
在确定第二可信验证通过之后,则可以将参与方签名公钥和第二加密公钥保存在计算方102的执行环境中。并且在第二可信验证通过后,还可以基于第二证明信息生成聚合种子数据,并基于聚合种子数据生成第三证明信息。
在一种实施方式中,在基于第二证明信息生成聚合种子数据的过程中国,计算方102,具体用于:
A45:基于第一加密私钥对多个参与方101分别发送的第二证明信息中携带的加密种子数据分别进行解密,得到多个参与方101分别生成的随机种子。
A46:对多个参与方101分别生成的随机种子进行聚合处理,得到聚合种子数据。
在经过A45-A46的步骤得到聚合种子数据之后,可以基于聚合种子数据生成第三证明信息。
在一种实施方式中,在基于聚合种子数据生成第三证明信息的过程中,计算方102,具体用于:
A47:基于第二加密公钥对聚合种子数据进行加密处理,得到加密聚合种子数据。
A48:基于计算方签名私钥对加密聚合种子数据进行数字签名处理,得到签名聚合种子数据。
A49:基于加密聚合种子数据、以及签名聚合种子数据,生成第三证明信息。
A5:参与方101接收计算方102基于第二证明信息发送的第三证明信息,基于第三证明信息进行第三可信验证;响应于第三可信验证通过,确定所述参与方与所述计算方的执行环境为可信执行环境。
参与方101在接收到计算方102基于第二证明信息发送的第三证明信息后,先对签名聚合种子数据进行验证,然后再对加密聚合种子数据进行解密。在一种实施方式中,在基于第三证明信息进行第三可信验证的过程中,参与方101,具体用于:
A51:基于计算方签名公钥以及签名聚合种子数据,对加密聚合种子数据进行正确性验证。
这里,可以基于计算方签名公钥对签名聚合种子数据进行解密,得到待验证的加密聚合种子数据,然后将待验证的加密聚合种子数据与接收到的加密聚合种子数据进行比对。如果比对成功,则对加密聚合种子数据的正确性验证通过。
A52:响应于对加密聚合种子数据的正确性验证通过,基于第二加密私钥对加密聚合种子数据进行解密,得到聚合种子数据。
A53:封存聚合种子数据,以及确定第三可信验证通过。
这里,可以将得到的聚合种子数据保存到本地,并且在确定第三可信验证通过之后,可以向多个参与方101广播可信执行环境构建完成。
在本公开实施例中,为了降低被处理后的数据被逆向出各个参与方的业务数据集中的元素的可能性,在一种实施方式中,可以在数据准备阶段,多个参与方101分别对各自的业务数据集进行混淆处理。在具体实施方式中,参与方101用于获取多条业务数据集;基于预先和其他参与方101协商得到的共同密钥,对多条业务数据集分别进行不可逆的混淆处理,得到混淆数据集。
在一种方式,共同密钥可以按照以下方式得到:多个参与方101(每个参与方101用pi表示,i为大于1的正整数)分别选择一个随机数ri,并使用协商好的公共参数g,对随机数进行第一预设运算处理,得到第一运算处理结果。例如可以对随机数进行指数运算,得到
然后多个参与方101分别将各自得到的第一运算处理结果发送给其他参与方101。在一种方式中,任一参与方101可以将其得到的第一运算处理结果发送给与该任一参与方101相邻的其他参与方101(多个参与方101预先按照终端标识组成了首尾相接的终端组合)。
当任一参与方101接收到相邻的其他参与方101发送的第一运算处理结果后,可以对相邻的其他参与方101的第一运算处理结果进行第二预设运算处理,得到第二运算处理结果。例如,可以先对相邻的其他参与方101的第一运算处理结果进行除法运算,得到中间运算处理结果然后再基于本地的随机数ri对中间运算处理结果/>进行指数运算,得到第二运算处理结果/>
然后多个参与方101分别将各自得到的第二运算处理结果广播给其他参与方101。
最后每个参与方101可以对接收到的其他各个参与方101的第二运算处理结果进行第三预设运算处理,得到第三运算处理结果。例如,可以根据(其中,m为参与方101的个数),得到第三运算处理结果。这里,多个参与方101得到的第三运算处理结果是相同的,因此可以将第三运算处理结果作为共同密钥,在得到第三运算处理结果后,各个参与方101均可以基于第三运算处理结果对业务数据集分别进行混淆处理,得到混淆数据集。在一种方式中,可以基于HMAC-SHA256算法对多个参与方的业务数据集分别进行哈希处理。在其他方式中,也可以使用其他方式对业务数据集进行混淆处理,这里不作具体限定。经过混淆处理之后得到的混淆数据集将用于后续的求交过程,具体过程将在后文详述。
承接前文,可信执行环境构建完成之后,在一种实施方式中,在执行基于预先构建的可信执行环境,生成过滤器的过程中,参与方101具体用于:
B1:基于在构建可信执行环境过程中生成的聚合种子数据,对预设类型的过滤器进行初始化操作,得到初始化过滤器;初始化过滤器包括:包括多个数组位的预设字符串、以及基于聚合种子数据确定的随机变换。
这里,预设类型的过滤器例如可以包括布隆过滤器、计数布隆过滤器、布谷鸟过滤器等。后文将以布隆过滤器和计数布隆过滤器为例进行描述。
对预设类型的过滤器进行初始化操作时,在一种实施方式中,参与方101具体用于:
B11:基于预先确定的过滤器误报率以及混淆数据集中元素的数量,确定过滤器参数。
这里,过滤器误报率可以是参与方101的参与方预先确定的。其中,过滤器参数可以包括过滤器中包括的数组位的数量l、以及对混淆数据集中的元素进行随机变换的次数k。
B12:基于聚合种子数据、以及过滤器参数,确定与随机变换次数对应的多个随机变换;以及,基于数组位的数量,生成预设字符串。
其中,每个随机变换以任意长度的比特串为输入,并输出目标范围内的任一数字;其中目标范围是基于数组位的数量l确定的;预设字符串中各个数组位的值为预设值,也就是初始值。
B2:基于随机变换,将多个元素分别映射至初始化过滤器的预设数位组,生成参与方的过滤器。在对混淆数据集中的元素进行随机变换的过程中,在一种实施方式中,参与方101具体用于:
B21:基于随机变换,对多个元素进行变换处理,得到每个元素对应的变换值;变换值用于表征混淆数据集中的元素对应的映射数组位在预设字符串中的值。
B22:基于过滤器的类型,对映射数组位的数组值进行更新处理,得到参与方的过滤器。
这里,不同类型的过滤器,更新映射数组位的数组值的方式是不同的。例如在布隆过滤器中,可以将映射数组位的数组值置为1;在计数布隆过滤器中,可以将映射数组位的数组值在初始值的基础上加1。
下面以布隆过滤器为例,在生成过滤器的过程中,参与方101具体用于执行以下步骤:
根据公式k=-log2ε,计算对混淆数据集中的元素进行随机变换的次数k;其中ε为预先设置的过滤器误报率。根据公式l=1.44·k·n,计算布隆过滤器中包括的比特位的数量l,即过滤器中比特串的长度;其中n为元素的数量。
例如随机变换可以为hi:{0,1}*→[0,l-1],该随机变换表示将任一长度的比特串作为输入,可以输出0至l-1区间的任意数字。最后可以生成一个比特位的数量为l的比特串BFi:{0,1}l。然后将每个比特位的值置为0,即生成预设字符串。比特位的数量为l,各个比特位的值为0的预设字符串就是初始化后的布隆过滤器。
然后将前述混淆处理后得到的混淆数据集中的元素分别进行变换处理,得到与各个元素对应的变换值,然后根据变换值,将映射比特位的比特值置为1。
下面以计数布隆过滤器为例,在生成过滤器的过程中,参与方101具体用于执行以下步骤:
与布隆过滤器类似的,首先得到初始化后的计数布隆过滤器,该过程可以参见前文,这里不再赘述。
然后根据确定的随机变换,生成一个比特位的数量为l的比特串CBFi:{0,L}l,其中L=2w,w为预设常数,例如w=4。然后将每个比特位的值置为0,即生成预设字符串。比特位的数量为l,各个比特位的值为0的预设字符串就是初始化后的计数布隆过滤器。
然后将前述混淆处理后得到的多个元素分别进行变换处理,得到与各个元素对应的变换值,然后根据变换值,将映射比特位的比特值增加1。
承接前文,在过滤器构建好之后,参与方101用于向计算方102发送过滤器。为了保证上述数据发送过程的安全性。在一种实施方式中,在向计算方102发送过滤器之前,参与方101还用于:
C1:确定第一对称加密密钥。
这里,可以随机选取随机字符串作为第一对称加密密钥。例如可以选择32字节的随机字符串ek1作为第一对称加密密钥。
C2:基于第一对称加密密钥对过滤器进行加密处理,得到加密过滤器;以及基于第一加密公钥对第一对称加密密钥进行加密,得到加密后的第一对称加密密钥。
这里可以基于对称加密算法以及第一对称加密密钥对过滤器进行加密。例如可以基于AES-256-GCM对称加密算法对过滤器进行加密。
C4:基于参与方签名私钥对加密目标过滤器进行数字签名,得到签名过滤器。
C5:基于加密过滤器、加密后的加密密钥、以及签名过滤器,生成与过滤器对应的第一加密数据。
在生成与目标过滤器对应的第一加密数据之后,向计算方102发送过滤器的过程中,参与方101具体用于:向计算方102发送与过滤器对应的第一加密数据。
计算方102接收到参与方101发送的过滤器,即上述与过滤器对应的第一加密数据后,需要先对签名过滤器的签名进行验证;然后对加密后的第一对称加密密钥进行解密;然后基于解密后的第一对称加密密钥对加密过滤器进行解密,得到过滤器。具体地,在一种实施方式中,基于预先构建的可信执行环境,获取多个参与方101分别生成的过滤器的过程中,计算方102具体用于:
D1:获取参与方101发送的第一加密数据;其中,第一加密数据包括:加密过滤器、加密后的第一对称加密密钥、以及签名过滤器;其中,加密后的加密密钥是基于第一加密公钥对参与方101生成的第一对称加密密钥进行加密处理得到的;加密过滤器是基于第一对称加密密钥对过滤器进行加密处理后得到的;签名过滤器是基于参与方签名私钥/>对加密过滤器进行数字签名处理得到的。
D2:基于参与方签名公钥以及签名过滤器,对加密过滤器进行正确性验证;以及基于第一加密私钥/>对加密后的第一对称加密密钥进行解密,得到第一对称加密密钥。
这里,可以基于参与方签名公钥对签名过滤器进行解密,得到待验证的加密过滤器,然后将待验证的加密过滤器与接收到的加密过滤器进行比对。如果比对一致,则正确性验证通过。
D3:响应于加密过滤器通过正确性验证,基于第一对称加密密钥对加密过滤器进行解密,得到过滤器。
计算方102得到各个参与方101的过滤器之后,可以对多个过滤器进行近似求交操作。
在一种实施方式中,对多个参与方101分别发送的过滤器进行第一求交处理,得到多个参与方101对应的近似求交的过滤器的过程中,计算方102具体用于:将多个参与方101分别发送的过滤器进行按位与操作,得到目标字符串;将目标字符串确定为近似求交的过滤器。
以布隆过滤器为例,计算方102可以将多个参与方101的过滤器按位相与得到其中,i为参与方101的个数,l为过滤器中比特位的数量。以计数布隆过滤器为例,计算方102确定各个参与方101的过滤器中相同比特位的值是否存在0值,如果存在则所有过滤器中的将该比特位的值置为0。
在得到近似求交的过滤器后,可以将近似求交的过滤器返回到参与方101。为了保证发送过程的安全性,在一种实施方式中,多个参与方101分别发送近似求交的过滤器之前,计算方102还用于:
D1:确定第二对称加密密钥。
这里,可以随机选取随机字符串作为第二对称加密密钥。例如可以选择32字节的随机字符串ek2作为第二对称加密密钥。
D2:基于第二对称加密密钥对近似求交的过滤器进行加密处理,得到经加密的近似求交的过滤器;以及基于第二加密公钥对第二对称加密密钥进行加密处理,得到加密后的第二对称加密密钥。
这里可以基于对称加密算法以及第二对称加密密钥对近似求交的过滤器进行加密。例如可以基于AES-256-GCM对称加密算法对近似求交的过滤器果进行加密。
D3:基于计算方签名私钥对经加密的近似求交的过滤器进行数字签名处理,得到签名后的近似求交的过滤器。
D4:基于经加密的近似求交的过滤器、加密后的第二对称加密密钥、以及签名后的近似求交的过滤器,生成与近似求交的过滤器对应的第二加密数据。
在生成与近似求交的过滤器对应的第二加密数据之后,向参与方101发送近似求交的过滤器的过程中,计算方102具体用于:向多个参与方101分别发送近似求交的过滤器对应的第二加密数据。
参与方101接收到计算方102发送的近似求交的过滤器,即上述与近似求交的过滤器对应的第二加密数据后,需要先对签名后的近似求交的过滤器的签名进行验证;然后对加密后的第二对称加密密钥进行解密;然后基于解密后的第二对称加密密钥对经加密的近似求交的过滤器进行解密,得到近似求交的过滤器。具体地,在一种实施方式中,接收计算方102基于过滤器发送近似求交的过滤器的过程中,参与方101具体用于:
E1:接收计算方102发送的第二加密数据;其中,第二加密数据包括:经加密的近似求交的过滤器、加密后的第二对称加密密钥、以及签名后的近似求交的过滤器;其中,加密后的第二对称加密密钥是基于第二加密公钥对计算方102生成的第二对称加密密钥进行加密处理得到的;经加密的近似求交的过滤器是基于第二对称加密密钥对近似求交的过滤器进行加密处理得到的;签名后的近似求交的过滤器是基于计算方签名私钥/>对经加密的近似求交的过滤器进行数字签名处理得到的。
E2:基于计算方签名公钥以及签名后的近似求交的过滤器,对经加密的近似求交的过滤器进行正确性验证;以及基于第二加密私钥/>对加密后的第二对称加密密钥进行解密,得到第二对称加密密钥。
这里,可以基于计算方签名公钥对签名后的近似求交的过滤器进行解密,得到待验证的经加密的近似求交的过滤器,然后将待验证的经加密的近似求交的过滤器与接收到的经加密的近似求交的过滤器进行比对。如果比对一致,则正确性验证通过。
E3:响应于经加密的近似求交的过滤器通过正确性验证,基于第二对称加密密钥对经加密的近似求交的过滤器进行解密,得到近似求交的过滤器。
得到计算方102的近似求交的过滤器之后,参与方101可以用于基于近似求交的过滤器对业务数据集进行过滤处理,得到目标元素集。
以布隆过滤器为例,参与方101可以针对业务数据集中的每个元素,查看近似求交的过滤器中比特串的相应比特位的比特值是否为1。如果全部比特位的比特值为1,则认为该元素可能在最终的求交结果中,否则认为其不在最终的求交结果中。参与方101最后将所有可能在最终的求交结果中的元素加入到目标元素集返回给计算方102。
以计数布隆过滤器为例,参与方101根据构建过滤器时使用的随机变换计算每个元素的变换数据,并按照变换数据将过滤器对应比特位的非0比特值减1,如果任意比特位的比特值为0,则认为当前元素不在最终的求交结果中,否则认为其可能在最终的求交结果中。参与方101最后将所有可能在最终的求交结果中的元素加入到目标元素集返回给计算方102。
在一种实施方式中,在向计算方102发送目标元素集之前,参与方101还用于:
F1:对目标元素集进行分组,得到多个目标元素组;每个目标元素组中包含预设数量个目标目标元素;多个目标元素组分别对应有组别标识。
这里,可以设置目标元素组的预设数量,然后按照目标元素组的预设数量,对目标元素进行分组。通过对目标目标元素进行分组的方式,可以实现并行处理,从而提高求交处理的效率。
在一种实施方式中,每个目标元素组中的预设数量个目标目标元素可以是按照大小顺序排序的,以降低求交处理的复杂度。
F2:确定第三对称加密密钥,并基于第三对称加密密钥对各个目标元素组分别进行加密,得到加密目标元素组。
这里第三对称加密密钥可以是随机生成的,也可以是参与方101中对过滤器进行加密所使用的第一对称加密密钥。
F3:基于第二加密公钥对第三对称加密密钥进行加密处理,得到加密后的第三对称加密密钥。
F4:基于加密目标元素组、多个目标元素组分别对应的加密组别标识、以及加密后的第三对称加密密钥,生成目标元素组密文。
在生成目标元素组密文之后,向计算方102发送目标元素组的过程中,参与方101具体用于:向计算方102发送目标元素组密文。
计算方102接收到多个参与方101发送的目标元素组密文之后,可以按照各个目标元素组分别对应的组别标识,可以将多个参与方101中组别标识对应的各个目标元素组进行匹配。然后基于解密后的第三对称加密密钥对各个目标元素组进行解密,并按照组别标识对多个参与方101的各个目标元素组进行第二求交处理。
在一种实施方式中,接收多个参与方101分别发送的目标元素组的过程中,计算方102具体用于:
G1:接收多个参与方101分别发送的目标元素集密文;其中,目标元素集密文包括:加密目标元素组、多个加密目标元素组分别对应的加密组别标识、以及加密后的第三对称加密密钥;其中,加密后的第三对称加密密钥是基于第二加密公钥对第三对称加密密钥进行加密处理后得到的;加密目标元素组是基于参与方101生成的第三对称加密密钥对目标元素组进行加密处理后得到的;加密组别标识是基于第三对称加密密钥对多个加密目标元素组分别对应的组别标识进行加密处理后得到的。
G2:基于第二加密私钥对加密后的第三对称加密密钥进行解密,得到第三对称加密密钥。
G3:基于第三对称加密密钥多个加密目标元素组分别对应的加密组别标识进行解密,得到多个加密目标元素组分别对应的组别标识。
G4:按照多个加密目标元素组分别对应的组别标识,将多个参与方101中组别标识对应的各个加密目标元素组进行匹配。
G5:基于第三对称加密密钥分别对匹配好的加密目标元素组进行解密,得到目标元素组。
计算方102接收到按照组别标识匹配好的目标元素组后,对各个组别标识下的目标元素组进行第二求交处理,得到隐私集合求交结果。
这里,计算方102可以针对各个参与方101的各个目标元素组初始化为各个比特位的值为0的比特串,并将隐私集合求交结果的映射比特位的值置为1。
最后,计算方102将得到的隐私集合求交结果发送给多个参与方101。
在一种实施方式中,在向多个参与方101分别发送对应的隐私集合求交结果之前,计算方102还用于:
H1:基于第三对称加密密钥对隐私集合求交结果进行加密,得到加密隐私集合求交结果;并基于第三对称加密密钥对多个目标元素组分别对应的组别标识进行加密,得到加密组别标识。
H2:基于加密隐私集合求交结果和加密组别标识,得到第三加密数据。
在向多参与方101分别发送对应的隐私集合求交结果的过程中,计算方102具体用于:向多个参与方101分别发送对应的隐私集合求交结果对应的第三加密数据。
在一种实施方式中,参与方101接收计算方102反馈的隐私集合求交结果的过程中,参与方101具体用于:
I1:接收计算方102基于目标元素集反馈的第三加密数据;其中,第三加密数据包括:加密后的隐私集合求交结果和加密组别标识;加密后的隐私集合求交结果是基于第三对称加密密钥对隐私集合求交结果进行加密处理得到的;加密组别识别是基于第三对称加密密钥分别对多个目标元素组对应的组别标识进行加密处理得到的。
I2:基于第三对称加密密钥对加密后的隐私集合求交结果进行解密,得到隐私集合求交结果;以及基于第三对称加密密钥分别对多个目标元素组对应的加密组别标识进行解密,得到多个目标元素组对应的组别标识。
然后参与方101按照多个目标元素组对应的组别标识,将目标元素组中比特值为1的比特位恢复出各个目标元素组中包含的目标元素,目标元素即和其他参与方101的业务数据存在交集的目标数据。
如图4所示,为本公开实施例提供的数据处理系统执行数据处理方法的流程示意图,具体过程不再赘述。
本公开实施例还提供一种数据处理方法,可以应用于参与方,如图5所示,该数据处理方法包括以下步骤:
S501:基于所有参与方预先协商的共同密钥对己方的业务数据集中元素进行不可逆的混淆处理得到参与方的混淆数据集;
S502:在可信执行环境中构建己方的过滤器,并将所述混淆数据集插入所述过滤器,所述过滤器用于以数组的数据结构形式表征所述混淆数据集,并基于与计算方协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器;
S503:向所述计算方发送携带有所述加密过滤器的近似求交请求,所述近似求交请求用于请求所述计算方基于所述加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
S504:通过所述可信执行环境接收所述计算方反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器,并基于所述近似求交的过滤器对所述业务数据集进行数据筛选得到目标元素集,并对所述目标元素集进行加密得到目标元素集密文;
S505:向所述计算方发送携带有所述目标元素集密文的隐私集合求交请求,接收所述计算方响应于所述隐私集合求交请求针对所有参与方各自的目标元素集进行求交得到的隐私集合求交结果。
本公开实施例还提供另一种数据处理方法,可以应用于计算方,如图6所示,该数据处理方法包括以下步骤:
S601:通过可信执行环境接收多个参与方分别发送的携带有加密过滤器的近似求交请求;
S602:响应于所述近似求交请求,基于与参与方协商的加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
S603:向多个所述参与方分别发送经加密的所述近似求交的过滤器;
S604:通过所述可信执行环境接收多个所述参与方分别发送的携带有目标元素集密文的隐私集合求交请求;所述目标元素集密文是所述参与方基于解密后的所述近似求交的过滤器,对己方的业务数据集进行数据筛选,并对筛选后的目标元素集进行加密得到的;
S605:基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方各自的目标元素集,并针对所有参与方各自的目标元素集进行求交处理得到隐私集合求交结果;
S606:向多个所述参与方分别发送对应的所述隐私集合求交结果。
上述数据处理方法的过程具体可以参照前述数据处理系统的执行过程,这里不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与数据处理方法对应的数据处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图7所示,为本公开实施例提供的一种数据处理装置的架构示意图,所述装置包括:
混淆处理模块701,用于基于所有参与方预先协商的共同密钥对己方的业务数据集中元素进行不可逆的混淆处理得到参与方的混淆数据集;
加密处理模块702,用于在可信执行环境中构建己方的过滤器,并将所述混淆数据集插入所述过滤器,所述过滤器用于以数组的数据结构形式表征所述混淆数据集,并基于与计算方协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器;
近似求交处理模块703,用于向所述计算方发送携带有所述加密过滤器的近似求交请求,所述近似求交请求用于请求所述计算方基于所述加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
筛选模块704,用于通过所述可信执行环境接收所述计算方反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器,并基于所述近似求交的过滤器对所述业务数据集进行数据筛选得到目标元素集,并对所述目标元素集进行加密得到目标元素集密文;
接收模块705,用于向所述计算方发送携带有所述目标元素集密文的隐私集合求交请求,接收所述计算方响应于所述隐私集合求交请求针对所有参与方各自的目标元素集进行求交得到的隐私集合求交结果。
在一种可选的实施方式中,所述装置还包括:构建模块,用于采用下述过程构建所述可信执行环境:
生成第一挑战数据,并向所述计算方发送所述第一挑战数据;
响应于接收到所述计算方基于所述第一挑战数据返回的第一证明信息、和第二挑战数据,基于所述第一证明信息进行第一可信验证;
响应于所述第一可信验证通过,基于所述第二挑战数据生成第二证明信息,并向所述计算方发送所述第二证明信息;
响应于接收到所述计算方基于所述第二证明信息发送的第三证明信息,基于所述第三证明信息进行第三可信验证;
响应于所述第三可信验证通过,确定当前参与方与所述计算方的执行环境为可信执行环境。
一种可选的实施方式中,加密处理模块702,在可信执行环境中构建己方的过滤器的过程中,具体用于:
基于在所述可信执行环境中生成的聚合种子数据,对预设类型的过滤器进行初始化操作,得到初始化过滤器;所述初始化过滤器包括:包括多个数组位的预设字符串、以及基于所述聚合种子数据确定的随机变换;
基于所述随机变换,将多个元素分别映射至所述初始化过滤器的预设数组位,生成己方的过滤器。
一种可选的实施方式中,所述加解密机制包括:接收在构建所述可信执行环境时,己方获得所述计算方发送的第一加密公钥,且在己方生成参与方签名密钥对;所述参与方签名密钥对中包括:参与方签名私钥;
加密处理模块702,在基于与计算方协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器的过程中,具体用于:
确定第一对称加密密钥;
基于所述第一对称加密密钥对所述过滤器进行加密处理,得到加密过滤器;
所述向所述计算方发送携带有所述加密过滤器的近似求交请求,包括:
基于所述第一加密公钥对所述第一对称加密密钥进行加密处理,得到加密后的第一对称加密密钥;
基于所述参与方签名私钥对所述加密过滤器进行数字签名,得到签名加密过滤器;
基于所述加密过滤器、所述加密后的加密密钥、以及所述签名加密过滤器数据,生成与所述过滤器对应的第一加密数据;
向所述计算方发送携带有所述第一加密数据的近似求交请求。
一种可选的实施方式中,在构建所述可信执行环境时,己方获得所述计算方发送的计算方签名公钥,且在己方生成了第二加密密钥对;所述第二加密密钥对中包括:第二加密私钥和第二加密公钥;
筛选模块704,在通过所述可信执行环境接收所述计算方反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器的过程中,具体用于:
接收所述计算方发送的第二加密数据;其中,所述第二加密数据包括:经加密的所述近似求交的过滤器、加密后的第二对称加密密钥、以及签名后的所述近似求交的过滤器;其中,所述加密后的第二对称加密密钥是基于所述第二加密公钥对所述计算方生成的第二对称加密密钥进行加密处理得到的;所述经加密的近似求交的过滤器是基于所述第二对称加密密钥对所述近似求交的过滤器进行加密处理得到的;所述签名后的所述近似求交的过滤器是基于计算方签名私钥对所述经加密的近似求交的过滤器进行数字签名处理得到的;
基于所述计算方签名公钥、以及所述签名后的所述近似求交的过滤器,对所述经加密的近似求交的过滤器进行正确性验证;以及
基于所述第二加密私钥对所述加密后的第二对称加密密钥进行解密,得到第二对称加密密钥;
响应于所述经加密的近似求交的过滤器通过正确性验证,基于所述第二对称加密密钥对所述经加密的近似求交的过滤器进行解密,得到所述近似求交的过滤器。
一种可选的实施方式中,在构建所述可信执行环境时,在己方生成了第二加密密钥对;所述第二加密密钥对中包括:第二加密公钥;
筛选模块704,在对所述目标元素集进行加密得到目标元素集密文的过程中,具体用于:
对所述目标元素集进行分组,得到多个目标元素组;每个所述目标元素组中包含预设数量个目标元素;多个所述目标元素组分别对应有组别标识;
确定第三对称加密密钥,并基于所述第三对称加密密钥对各个所述目标元素组分别进行加密处理,得到加密目标元素组;以及,基于所述第三对称加密密钥对各个所述目标元素组对应的组别标识分别进行加密,得到加密组别标识;
基于所述第二加密公钥对所述第三对称加密密钥进行加密处理,得到加密后的第三对称加密密钥;
基于所述加密目标元素组、多个所述目标元素组分别对应的加密组别标识、以及加密后的第三对称加密密钥,生成所述目标元素集密文。
一种可选的实施方式中,接收模块705,具体用于:
接收所述计算方基于所述目标元素集反馈的第三加密数据;其中,所述第三加密数据包括:加密后的隐私集合求交结果和加密组别标识;所述加密后的隐私集合求交结果是基于所述第三对称加密密钥对所述隐私集合求交结果进行加密处理得到的;所述加密组别识别是基于所述第三对称加密密钥分别对多个所述目标元素组对应的组别标识进行加密处理得到的;
基于所述第三对称加密密钥对所述加密后的隐私集合求交结果进行解密,得到所述隐私集合求交结果;以及基于所述第三对称加密密钥分别对多个所述目标元素组对应的加密组别标识进行解密,得到多个所述目标元素组对应的组别标识。
参照图8所示,为本公开实施例提供的另一种数据求交装置的架构示意图,所述装置包括:
第一发送模块801,用于通过可信执行环境接收多个参与方分别发送的携带有加密过滤器的近似求交请求;
近似求交处理模块802,用于响应于所述近似求交请求,基于与参与方协商的加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
第二发送模块803,用于向多个所述参与方分别发送经加密的所述近似求交的过滤器;
接收模块804,用于通过所述可信执行环境接收多个所述参与方分别发送的携带有目标元素集密文的隐私集合求交请求;所述目标元素集密文是所述参与方基于解密后的所述近似求交的过滤器,对己方的业务数据集进行数据筛选,并对筛选后的目标元素集进行加密得到的;
求交处理模块805,用于基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方各自的目标元素集,并针对所有参与方各自的目标元素集进行求交处理得到隐私集合求交结果;
第三发送模块806,用于向多个所述参与方分别发送对应的所述隐私集合求交结果。
一种可选的实施方式中,所述装置还包括:构建模块,用于采用下述方式构建所述可信执行环境:
响应于接收到所述参与方发送的第一挑战数据,基于所述第一挑战数据生成第一证明信息,并生成第二挑战数据;向所述参与方反馈所述第一证明信息、和所述第二挑战数据;
响应于接收到所述参与方基于所述第二挑战数据发送的第二证明信息,基于所述第二证明信息进行第二可信验证;
响应于所述第二可信验证通过,基于所述第二证明信息,生成聚合种子数据,并基于所述聚合种子数据生成第三证明信息,向所述参与方发送所述第三证明信息;其中,所述聚合种子数据用于所述参与方构建过滤器。
一种可选的实施方式中,在构建所述可信执行环境时,在当前计算方生成了第一加密密钥对;所述第一加密密钥对中包括:第一加密私钥和第一加密公钥;
所述目标元素集密文中包括所述加密目标元素组、多个所述加密目标元素组分别对应的加密组别标识、以及加密后的第三对称加密密钥;其中,所述加密后的第三对称加密密钥是基于所述第一加密公钥对所述第三对称加密密钥进行加密处理后得到的;所述加密目标元素组是基于所述参与方生成的第三对称加密密钥对目标元素组进行加密处理后得到的;所述加密组别标识是基于所述第三对称加密密钥对多个所述加密目标元素组分别对应的组别标识进行加密处理后得到的;
求交处理模块805,在基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方各自的目标元素集的过程中,具体用于:
基于第一加密私钥对所述加密后的第三对称加密密钥进行解密,得到所述第三对称加密密钥;
基于所述第三对称加密密钥多个所述加密目标元素组分别对应的加密组别标识进行解密,得到多个所述加密目标元素组分别对应的组别标识;
按照多个所述加密目标元素组分别对应的组别标识,将多个所述参与方中组别标识对应的各个所述加密目标元素组进行匹配;
所述第三对称加密密钥分别对匹配好的所述加密目标元素组进行解密,得到所述目标元素组。
一种可选的实施方式中,所述装置还包括:
第二加密模块,用于基于所述第三对称加密密钥对所述隐私集合求交结果进行加密处理,得到加密隐私集合求交结果;并基于所述第三对称加密密钥对多个所述目标元素组分别对应的组别标识进行加密处理,得到加密组别标识;
处理模块,用于基于所述加密隐私集合求交结果和所述加密组别标识,得到第三加密数据;
第三发送模块806,具体用于:
向多个所述参与方分别发送对应的隐私集合求交结果对应的第三加密数据。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图9所示,为本公开实施例提供的计算机设备900的结构示意图,包括处理器901、存储器902、和总线903。其中,存储器902用于存储执行指令,包括内存9021和外部存储器9022;这里的内存9021也称内存储器,用于暂时存放处理器901中的运算数据,以及与硬盘等外部存储器9022交换的数据,处理器901通过内存9021与外部存储器9022进行数据交换,当计算机设备900运行时,处理器901与存储器902之间通过总线903通信,使得处理器901在执行以下指令:
基于所有参与方预先协商的共同密钥对己方的业务数据集中元素进行不可逆的混淆处理得到参与方的混淆数据集;
在可信执行环境中构建己方的过滤器,并将所述混淆数据集插入所述过滤器,所述过滤器用于以数组的数据结构形式表征所述混淆数据集,并基于与计算方协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器;
向所述计算方发送携带有所述加密过滤器的近似求交请求,所述近似求交请求用于请求所述计算方基于所述加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
通过所述可信执行环境接收所述计算方反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器,并基于所述近似求交的过滤器对所述业务数据集进行数据筛选得到目标元素集,并对所述目标元素集进行加密得到目标元素集密文;
向所述计算方发送携带有所述目标元素集密文的隐私集合求交请求,接收所述计算方响应于所述隐私集合求交请求针对所有参与方各自的目标元素集进行求交得到的隐私集合求交结果。
或者,当计算机设备900运行时,处理器901与存储器902之间通过总线903通信,使得处理器901在执行以下指令:
通过可信执行环境接收多个参与方分别发送的携带有加密过滤器的近似求交请求;
响应于所述近似求交请求,基于与参与方协商的加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
向多个所述参与方分别发送经加密的所述近似求交的过滤器;
通过所述可信执行环境接收多个所述参与方分别发送的携带有目标元素集密文的隐私集合求交请求;所述目标元素集密文是所述参与方基于解密后的所述近似求交的过滤器,对己方的业务数据集进行数据筛选,并对筛选后的目标元素集进行加密得到的;
基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方各自的目标元素集,并针对所有参与方各自的目标元素集进行求交处理得到隐私集合求交结果;
向多个所述参与方分别发送对应的所述隐私集合求交结果。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种数据处理方法,其特征在于,所述方法包括:
基于所有参与方预先协商的共同密钥对己方的业务数据集中元素进行不可逆的混淆处理得到参与方的混淆数据集;
在可信执行环境中构建己方的过滤器,并将所述混淆数据集插入所述过滤器,所述过滤器用于以数组的数据结构形式表征所述混淆数据集,并基于与计算方协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器;
向所述计算方发送携带有所述加密过滤器的近似求交请求,所述近似求交请求用于请求所述计算方基于所述加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
通过所述可信执行环境接收所述计算方反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器,并基于所述近似求交的过滤器对所述业务数据集进行数据筛选得到目标元素集,并对所述目标元素集进行加密得到目标元素集密文;
向所述计算方发送携带有所述目标元素集密文的隐私集合求交请求,接收所述计算方响应于所述隐私集合求交请求针对所有参与方各自的目标元素集进行求交得到的隐私集合求交结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:采用下述过程构建所述可信执行环境:
生成第一挑战数据,并向所述计算方发送所述第一挑战数据;
响应于接收到所述计算方基于所述第一挑战数据返回的第一证明信息、和第二挑战数据,基于所述第一证明信息进行第一可信验证;
响应于所述第一可信验证通过,基于所述第二挑战数据生成第二证明信息,并向所述计算方发送所述第二证明信息;
响应于接收到所述计算方基于所述第二证明信息发送的第三证明信息,基于所述第三证明信息进行第三可信验证;
响应于所述第三可信验证通过,确定当前参与方与所述计算方的执行环境为可信执行环境。
3.根据权利要求1或2所述的方法,其特征在于,所述在可信执行环境中构建己方的过滤器,包括:
基于在所述可信执行环境中生成的聚合种子数据,对预设类型的过滤器进行初始化操作,得到初始化过滤器;所述初始化过滤器包括:包括多个数组位的预设字符串、以及基于所述聚合种子数据确定的随机变换;
基于所述随机变换,将多个元素分别映射至所述初始化过滤器的预设数组位,生成己方的过滤器。
4.根据权利要求1所述的方法,其特征在于,所述加解密机制包括:接收在构建所述可信执行环境时,己方获得所述计算方发送的第一加密公钥,且在己方生成参与方签名密钥对;所述签名密钥对中包括:参与方签名私钥;
所述基于与计算方协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器,包括:
确定第一对称加密密钥;
基于所述第一对称加密密钥对所述过滤器进行加密处理,得到加密过滤器;
所述向所述计算方发送携带有所述加密过滤器的近似求交请求,包括:
基于所述第一加密公钥对所述第一对称加密密钥进行加密处理,得到加密后的第一对称加密密钥;
基于所述参与方签名私钥对所述加密过滤器进行数字签名,得到签名加密过滤器;
基于所述加密过滤器、所述加密后的加密密钥、以及所述签名加密过滤器数据,生成与所述过滤器对应的第一加密数据;
向所述计算方发送携带有所述第一加密数据的近似求交请求。
5.根据权利要求1所述的方法,其特征在于,在构建所述可信执行环境时,己方获得所述计算方发送的计算方签名公钥,且在己方生成了第二加密密钥对;所述第二加密密钥对中包括:第二加密私钥和第二加密公钥;
所述通过所述可信执行环境接收所述计算方反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器,包括:
接收所述计算方发送的第二加密数据;其中,所述第二加密数据包括:经加密的所述近似求交的过滤器、加密后的第二对称加密密钥、以及签名后的所述近似求交的过滤器;其中,所述加密后的第二对称加密密钥是基于所述第二加密公钥对所述计算方生成的第二对称加密密钥进行加密处理得到的;所述经加密的近似求交的过滤器是基于所述第二对称加密密钥对所述近似求交的过滤器进行加密处理得到的;所述签名后的所述近似求交的过滤器是基于计算方签名私钥对所述经加密的近似求交的过滤器进行数字签名处理得到的;
基于所述计算方签名公钥、以及所述签名后的所述近似求交的过滤器,对所述经加密的近似求交的过滤器进行正确性验证;以及
基于所述第二加密私钥对所述加密后的第二对称加密密钥进行解密,得到第二对称加密密钥;
响应于所述经加密的近似求交的过滤器通过正确性验证,基于所述第二对称加密密钥对所述经加密的近似求交的过滤器进行解密,得到所述近似求交的过滤器。
6.根据权利要求1所述的方法,其特征在于,在构建所述可信执行环境时,在己方生成了第二加密密钥对;所述第二加密密钥对中包括:第二加密公钥;
对所述目标元素集进行加密得到目标元素集密文,包括:
对所述目标元素集进行分组,得到多个目标元素组;每个所述目标元素组中包含预设数量个目标元素;多个所述目标元素组分别对应有组别标识;
确定第三对称加密密钥,并基于所述第三对称加密密钥对各个所述目标元素组分别进行加密处理,得到加密目标元素组;以及,基于所述第三对称加密密钥对各个所述目标元素组对应的组别标识分别进行加密,得到加密组别标识;
基于所述第二加密公钥对所述第三对称加密密钥进行加密处理,得到加密后的第三对称加密密钥;
基于所述加密目标元素组、多个所述目标元素组分别对应的加密组别标识、以及加密后的第三对称加密密钥,生成所述目标元素集密文。
7.根据权利要求6所述的方法,其特征在于,所述接收所述计算方响应于所述隐私集合求交请求针对所有参与方各自的目标元素集进行求交得到隐私集合求交结果,包括:
接收所述计算方基于所述目标元素集反馈的第三加密数据;其中,所述第三加密数据包括:加密后的隐私集合求交结果和加密组别标识;所述加密后的隐私集合求交结果是基于所述第三对称加密密钥对所述隐私集合求交结果进行加密处理得到的;所述加密组别识别是基于所述第三对称加密密钥分别对多个所述目标元素组对应的组别标识进行加密处理得到的;
基于所述第三对称加密密钥对所述加密后的隐私集合求交结果进行解密,得到所述隐私集合求交结果;以及基于所述第三对称加密密钥分别对多个所述目标元素组对应的加密组别标识进行解密,得到多个所述目标元素组对应的组别标识。
8.一种数据处理方法,其特征在于,所述方法包括:
通过可信执行环境接收多个参与方分别发送的携带有加密过滤器的近似求交请求;
响应于所述近似求交请求,基于与参与方协商的加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
向多个所述参与方分别发送经加密的所述近似求交的过滤器;
通过所述可信执行环境接收多个所述参与方分别发送的携带有目标元素集密文的隐私集合求交请求;所述目标元素集密文是所述参与方基于解密后的所述近似求交的过滤器,对己方的业务数据集进行数据筛选,并对筛选后的目标元素集进行加密得到的;
基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方各自的目标元素集,并针对所有参与方各自的目标元素集进行求交处理得到隐私集合求交结果;
向多个所述参与方分别发送对应的所述隐私集合求交结果。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:采用下述方式构建所述可信执行环境:
响应于接收到所述参与方发送的第一挑战数据,基于所述第一挑战数据生成第一证明信息,并生成第二挑战数据;向所述参与方反馈所述第一证明信息、和所述第二挑战数据;
响应于接收到所述参与方基于所述第二挑战数据发送的第二证明信息,基于所述第二证明信息进行第二可信验证;
响应于所述第二可信验证通过,基于所述第二证明信息,生成聚合种子数据,并基于所述聚合种子数据生成第三证明信息,向所述参与方发送所述第三证明信息;其中,所述聚合种子数据用于所述参与方构建过滤器。
10.根据权利要求8所述的方法,其特征在于,在构建所述可信执行环境时,在当前计算方生成了第一加密密钥对;所述第一加密密钥对中包括:第一加密私钥和第一加密公钥;
所述目标元素集密文中包括所述加密目标元素组、多个所述加密目标元素组分别对应的加密组别标识、以及加密后的第三对称加密密钥;其中,所述加密后的第三对称加密密钥是基于所述第一加密公钥对所述第三对称加密密钥进行加密处理后得到的;所述加密目标元素组是基于所述参与方生成的第三对称加密密钥对目标元素组进行加密处理后得到的;所述加密组别标识是基于所述第三对称加密密钥对多个所述加密目标元素组分别对应的组别标识进行加密处理后得到的;
所述基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方各自的目标元素集,包括:
基于第一加密私钥对所述加密后的第三对称加密密钥进行解密,得到所述第三对称加密密钥;
基于所述第三对称加密密钥多个所述加密目标元素组分别对应的加密组别标识进行解密,得到多个所述加密目标元素组分别对应的组别标识;
按照多个所述加密目标元素组分别对应的组别标识,将多个所述参与方中组别标识对应的各个所述加密目标元素组进行匹配;
所述第三对称加密密钥分别对匹配好的所述加密目标元素组进行解密,得到所述目标元素组。
11.根据权利要求10所述的方法,其特征在于,向多个所述参与方分别发送对应的隐私集合求交结果之前,所述方法还包括:
基于所述第三对称加密密钥对所述隐私集合求交结果进行加密处理,得到加密隐私集合求交结果;并基于所述第三对称加密密钥对多个所述目标元素组分别对应的组别标识进行加密处理,得到加密组别标识;
基于所述加密隐私集合求交结果和所述加密组别标识,得到第三加密数据;
所述向多个所述参与方分别发送对应的隐私集合求交结果,包括:
向多个所述参与方分别发送对应的隐私集合求交结果对应的第三加密数据。
12.一种数据处理装置,其特征在于,包括:
混淆处理模块,用于基于所有参与方预先协商的共同密钥对己方的业务数据集中元素进行不可逆的混淆处理得到参与方的混淆数据集;
加密处理模块,用于在可信执行环境中构建己方的过滤器,并将所述混淆数据集插入所述过滤器,所述过滤器用于以数组的数据结构形式表征所述混淆数据集,并基于与计算方协商的加解密机制对所述过滤器进行加密处理得到己方的加密过滤器;
近似求交处理模块,用于向所述计算方发送携带有所述加密过滤器的近似求交请求,所述近似求交请求用于请求所述计算方基于所述加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
筛选模块,用于通过所述可信执行环境接收所述计算方反馈的经加密的所述近似求交的过滤器,解密得到所述近似求交的过滤器,并基于所述近似求交的过滤器对所述业务数据集进行数据筛选得到目标元素集,并对所述目标元素集进行加密得到目标元素集密文;
接收模块,用于向所述计算方发送携带有所述目标元素集密文的隐私集合求交请求,接收所述计算方响应于所述隐私集合求交请求针对所有参与方各自的目标元素集进行求交得到的隐私集合求交结果。
13.一种数据处理装置,其特征在于,包括:
第一发送模块,用于通过可信执行环境接收多个参与方分别发送的携带有加密过滤器的近似求交请求;
近似求交处理模块,用于响应于所述近似求交请求,基于与参与方协商的加解密机制针对所有参与方各自的加密过滤器进行解密,并对解密得到的所有参与方的过滤器进行近似求交处理得到近似求交的过滤器,对所述近似求交的过滤器进行加密;
第二发送模块,用于向多个所述参与方分别发送经加密的所述近似求交的过滤器;
接收模块,用于通过所述可信执行环境接收多个所述参与方分别发送的携带有目标元素集密文的隐私集合求交请求;所述目标元素集密文是所述参与方基于解密后的所述近似求交的过滤器,对己方的业务数据集进行数据筛选,并对筛选后的目标元素集进行加密得到的;
求交处理模块,用于基于所述隐私集合求交请求对所述目标元素集密文进行解密,得到所有参与方各自的目标元素集,并针对所有参与方各自的目标元素集进行求交处理得到隐私集合求交结果;
第三发送模块,用于向多个所述参与方分别发送对应的所述隐私集合求交结果。
14.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一项所述的数据处理方法的步骤,或执行如权利要求8至11任一项所述的数据处理方法的步骤。
15.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一项所述的数据处理方法的步骤,或执行如权利要求8至11任一项所述的数据处理方法的步骤。
CN202211048300.8A 2022-08-30 2022-08-30 一种数据处理方法及装置 Active CN115422581B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211048300.8A CN115422581B (zh) 2022-08-30 2022-08-30 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211048300.8A CN115422581B (zh) 2022-08-30 2022-08-30 一种数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN115422581A CN115422581A (zh) 2022-12-02
CN115422581B true CN115422581B (zh) 2024-03-08

Family

ID=84201128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211048300.8A Active CN115422581B (zh) 2022-08-30 2022-08-30 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN115422581B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110622165A (zh) * 2018-04-19 2019-12-27 谷歌有限责任公司 用于确定隐私集交集的安全性措施
CN112329041A (zh) * 2020-03-18 2021-02-05 支付宝(杭州)信息技术有限公司 部署合约的方法及装置
CN113065155A (zh) * 2021-03-26 2021-07-02 杭州宇链科技有限公司 一种基于可信执行环境辅助的隐私集合求交方法
CN113518092A (zh) * 2021-07-22 2021-10-19 西安电子科技大学 实现多方隐私的集合交集方法
CN114036572A (zh) * 2021-11-29 2022-02-11 支付宝(杭州)信息技术有限公司 隐私求交的方法及装置
WO2022076605A1 (en) * 2020-10-07 2022-04-14 Visa International Service Association Secure and scalable private set intersection for large datasets
CN114444124A (zh) * 2022-01-28 2022-05-06 杭州复杂美科技有限公司 基于布隆过滤器的隐私集合交集方法、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110622165A (zh) * 2018-04-19 2019-12-27 谷歌有限责任公司 用于确定隐私集交集的安全性措施
CN112329041A (zh) * 2020-03-18 2021-02-05 支付宝(杭州)信息技术有限公司 部署合约的方法及装置
WO2022076605A1 (en) * 2020-10-07 2022-04-14 Visa International Service Association Secure and scalable private set intersection for large datasets
CN113065155A (zh) * 2021-03-26 2021-07-02 杭州宇链科技有限公司 一种基于可信执行环境辅助的隐私集合求交方法
CN113518092A (zh) * 2021-07-22 2021-10-19 西安电子科技大学 实现多方隐私的集合交集方法
CN114036572A (zh) * 2021-11-29 2022-02-11 支付宝(杭州)信息技术有限公司 隐私求交的方法及装置
CN114444124A (zh) * 2022-01-28 2022-05-06 杭州复杂美科技有限公司 基于布隆过滤器的隐私集合交集方法、设备及存储介质

Also Published As

Publication number Publication date
CN115422581A (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
CN110419053B (zh) 用于信息保护的系统和方法
ES2687182T3 (es) Determinar un secreto común para el intercambio seguro de información y claves criptográficas jerárquicas y deterministas
CN110383754B (zh) 基于椭圆曲线同源的密钥协商协议
Feng et al. An efficient privacy-preserving authentication model based on blockchain for VANETs
EP2409453B1 (en) A method for secure communication in a network, a communication device, a network and a computer program therefor
CN111819815A (zh) 用于转移对数字资产的控制的计算机实现的方法和系统
US20220021521A1 (en) Secure consensus over a limited connection
CN111615810A (zh) 获取数字签名的数据的计算机实现方法和系统
JPWO2017099117A1 (ja) 事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法
EP4000216B1 (en) Cryptographic pseudonym mapping method, computer system, computer program and computer-readable medium
CN108712409A (zh) 一种基于私有区块链的电子账单交易系统
CN106789087B (zh) 确定消息的数据摘要、基于多方的数字签名的方法及系统
US20210234690A1 (en) Method and apparatus for authentication and encryption service employing unbreakable encryption
US20230237437A1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
WO2021098152A1 (zh) 基于区块链的数据处理方法、装置及计算机设备
CN114154174A (zh) 后量子签名设施的状态同步
TW202232913A (zh) 共享金鑰產生技術
JP2023547156A (ja) サービス拒否攻撃の識別
CN109660344A (zh) 基于非对称密钥池路由装置的抗量子计算区块链交易方法和系统
Sivasundari et al. RETRACTED ARTICLE: Hybrid aggregated signcryption scheme using multi-constraints differential evolution algorithm for security
CN117478303A (zh) 区块链隐蔽通信方法、系统和计算机设备
CN115516817A (zh) 具有秘密共享的(ec)dsa阈值签名
CN115422581B (zh) 一种数据处理方法及装置
CN115001719B (zh) 隐私数据处理系统、方法、装置、计算机设备及存储介质
WO2020165931A1 (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