CN117390238A - 实现统计分析的安全计算方法、装置、设备及介质 - Google Patents
实现统计分析的安全计算方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117390238A CN117390238A CN202310854355.6A CN202310854355A CN117390238A CN 117390238 A CN117390238 A CN 117390238A CN 202310854355 A CN202310854355 A CN 202310854355A CN 117390238 A CN117390238 A CN 117390238A
- Authority
- CN
- China
- Prior art keywords
- data
- parties
- party
- request
- sum
- 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
Links
- 238000007619 statistical method Methods 0.000 title claims abstract description 79
- 238000004364 calculation method Methods 0.000 title claims abstract description 55
- 238000004458 analytical method Methods 0.000 claims abstract description 64
- 238000012216 screening Methods 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 claims abstract description 24
- 238000003491 array Methods 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 13
- 238000001914 filtration Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 3
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9038—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Computational Biology (AREA)
- Algebra (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种实现统计分析的安全计算方法、装置、设备及介质。其中,所述方法包括:查询方向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据;所述查询方向所述多个数据方发送数据筛选条件,使得所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据;所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方。本方案无需引入额外的计算方,有效降低了数据统计分析的复杂度。
Description
技术领域
本申请涉及隐私保护计算技术领域,尤其涉及一种实现统计分析的安全计算方法、装置、电子设备及计算机可读介质。
背景技术
隐私保护计算技术是当前热门的技术方向,其能够在保护各方数据安全和隐私的前提下,***露原始数据,即可完成多方联合计算任务,解决了互不信任的参与方之间协同计算的问题,其技术特性及应用前景受到了大型金融机构、科技公司、互联网巨头、政府部门等各行业广泛关注。隐私保护计算的常用技术路线包括秘密分享、混淆电路、不经意传输和同态加密等。基于隐私保护计算技术,能够支持多方数据共享、联合查询、联合运算、联合建模、联合预测等隐私计算模式。其中,联合查询使用非对称密码、秘密分享、差分隐私等技术手段,实现能够支持隐私数据联合查询的应用功能,查询过程中能够保护数据方的源数据(除查询结果外)隐私,同时保护查询条件不对外泄漏,支持多检索语句和多结果返回,并且能够保证查询结果真实有效,联合隐私查询可用于黑名单匹配、多方数据融合等场景。
联合隐私查询涉及到四个部分:查询端、随机器、数据库和计算引擎。首先,查询前端接收来自不同用户的查询请求,并将接收到的查询请求发送至随机器,并将查询请求编码发送至计算引擎。随机器接收到查询请求,并将查询请求和生成的随机数发送至每一个数据方。同时,提供去随机化的参数至查询端。每个数据库均计算对于当前查询的本地结果,使用随机参数模糊化查询结果。根据查询类型,计算引擎通过结合来自数据库的模糊计算结果,产生模糊的响应,并将模糊的响应发送至查询端。查询端利用去随机化的参数去除来自计算引擎的查询结果中的噪声。然而,在这个过程中,除了查询方和数据方,还引入了额外的参与方计算引擎,提高了联合查询中数据统计分析的复杂度。
由此可见,如何有效降低联合查询中数据统计分析的复杂度成为当前亟待解决的技术问题。
发明内容
本申请的目的在于提出一种实现统计分析的安全计算方法、装置、电子设备及计算机可读介质,用于解决现有技术中存在的如何有效降低联合查询中数据统计分析的复杂度的技术问题。
根据本申请实施例的第一方面,提供了一种实现统计分析的安全计算方法,所述方法包括:查询方向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据;所述查询方向所述多个数据方发送数据筛选条件,使得所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据;所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方。
根据本申请实施例的第二方面,提供了一种实现统计分析的安全计算装置,所述装置包括:第一发送模块,用于向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据;第二发送模块,用于向所述多个数据方发送数据筛选条件,使得所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据;第三发送模块,用于向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方。
根据本申请实施例的第三方面,提供了一种电子设备,所述设备包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本申请实施例的第一方面所述的实现统计分析的安全计算方法。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例的第一方面所述的实现统计分析的安全计算方法。
在本实施例提供的实现统计分析的安全计算方法中,查询方向与所述查询方通信连接的多个数据方发送数据对齐请求,所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据,所述查询方向所述多个数据方发送数据筛选条件,所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据,所述查询方向所述多个数据方发送数据统计分析请求,所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,与现有其它方式相比,仅需数据方和查询方,无需引入额外的计算方,有效降低了数据统计分析的复杂度。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本申请实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1为本实施例一提供的实现统计分析的安全计算方法的步骤流程图;
图2为根据本实施例一提供的分位数的示意图;
图3为根据本实施例一提供的分位数的示意图;
图4为根据本实施例一提供的分位数的示意图;
图5为根据本实施例一提供的分位数的示意图;
图6为根据本实施例一提供的实现统计分析的安全计算方法的运行流程的示意图;
图7为本实施例二提供的实现统计分析的安全计算装置的结构示意图;
图8为本实施例三提供的电子设备的结构示意图;
图9为本实施例四提供的电子设备的硬件结构。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
参照图1,示出了本实施例一提供的实现统计分析的安全计算方法的步骤流程图。
具体地,本实施例提供的实现统计分析的安全计算方法包括以下步骤:
在步骤S101中,查询方向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据。
在本实施例中,所述查询方可理解为用于提供查询服务的电子设备,所述数据方可理解为用于提供数据服务的电子设备,所述数据对齐请求可理解为请求数据对齐的请求。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在一些可选实施例中,所述数据对齐请求包括数据交集请求或者数据并集请求。当所述数据对齐请求为数据交集请求时,所述查询方向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据,包括:所述查询方向所述多个数据方发送所述数据交集请求,使得所述多个数据方根据所述数据交集请求,使用隐私集合求交方式求取所述多个数据方中的数据的交集;当所述数据对齐请求为数据并集请求时,所述查询方向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据,包括:所述查询方向所述多个数据方发送所述数据并集请求,使得所述多个数据方根据所述数据并集请求,求取所述多个数据方中的数据的并集。籍此,能够有效对齐所述多个数据方中的数据。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在步骤S102中,所述查询方向所述多个数据方发送数据筛选条件,使得所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据。
在本实施例中,所述数据筛选条件可包括逻辑运算、比较运算或者高级查询等。其中,所述逻辑运算可以是与、或,或者非,所述比较运算可以是大于、小于,或者等于,高级查询可以是排序。筛选出来的数据用于下一步的统计分析。所述查询方将数据筛选条件发送至所述数据方,所述数据方在本地筛选出符合条件的数据,以便后面的统计分析。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在步骤S103中,所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方。
在本实施例中,所述数据统计分析请求可理解为用于请求数据统计分析的请求。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在一些可选实施例中,所述数据统计分析请求包括最大值求取请求或者最小值求取请求。当所述数据统计分析请求为最大值求取请求时,所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,包括:所述查询方生成公钥和私钥,并将所述公钥和所述最大值求取请求发送至所述多个数据方,使得所述多个数据方根据所述最大值求取请求,求取所述多个数据方的本地数据的数据最大值,并使用所述公钥对所述数据最大值进行加密,再将加密后的所述数据最大值发送至指定的数据方;所述指定的数据方将加密后的所述数据最大值两两相减,并将相减结果乘以大于零的噪声,再将相乘结果发送至所述查询方;所述查询方使用所述私钥对所述相乘结果进行解密,并对解密结果进行标记,再将所述解密结果的标记结果发送至所述指定的数据方;所述指定的数据方根据所述解密结果的标记结果,确定所述多个数据方中数据最大值的数据方,并将所述多个数据方中数据最大值的数据方的数据最大值的密文发送至所述查询方;所述查询方使用所述私钥对所述多个数据方中数据最大值的数据方的数据最大值的密文进行解密,以获得所述多个数据方中数据最大值的数据方的数据最大值;当所述数据统计分析请求为最小值求取请求时,所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,包括:所述查询方生成公钥和私钥,并将所述公钥和所述最小值求取请求发送至所述多个数据方,使得所述多个数据方根据所述最小值求取请求,求取所述多个数据方的本地数据的数据最小值,并使用所述公钥对所述数据最小值进行加密,再将加密后的所述数据最小值发送至指定的数据方;所述指定的数据方将加密后的所述数据最小值两两相减,并将相减结果乘以大于零的噪声,再将相乘结果发送至所述查询方;所述查询方使用所述私钥对所述相乘结果进行解密,并对解密结果进行标记,再将所述解密结果的标记结果发送至所述指定的数据方;所述指定的数据方根据所述解密结果的标记结果,确定所述多个数据方中数据最小值的数据方,并将所述多个数据方中数据最小值的数据方的数据最小值的密文发送至所述查询方;所述查询方使用所述私钥对所述多个数据方中数据最小值的数据方的数据最小值的密文进行解密,以获得所述多个数据方中数据最小值的数据方的数据最小值。籍此,采用半同态的加密方法,提高了计算效率,且由于采用随机噪声进行保密,也会降低通信复杂度。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在一个具体的例子中,所述查询方生成公钥和私钥,将公钥和最大(小)的查询请求发送至数据方。所述数据方接收到查询请求,计算出本方数据中的最大(小)值,并用公钥进行加密发送给指定的数据方(记为数据甲方,为后续数据的主要计算方)。所述数据甲方将密文数据进行两两相减,乘以大于零的噪声(仅改变结果的值,不改变符号),将结果发送给查询方解密。所述查询方解密计算结果,将大于零的结果标记为1,否则标记为-1,构成由1和-1组成的集合,并发送给数据甲方(注意此步骤中的相等情况不影响查询结果)。所述数据甲方根据计算任务,比较1和-1得分最多的数据方,并将得分最多的数据方的密文数据发送给查询方(1得分最多对应数据最大,-1得分最多则对应数据最小)。所述查询方利用私钥解密数据甲方提供的密文数据得到查询结果。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在一些可选实施例中,所述数据统计分析请求包括均值求取请求。所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,包括:所述查询方生成公钥和私钥,并将所述公钥和所述均值求取请求发送至所述多个数据方,使得所述多个数据方根据所述均值求取请求,求取所述多个数据方的本地数据的数据之和和数量,并使用所述公钥对所述数据之和和所述数量进行加密,再将加密后的所述数据之和和所述数量发送至指定的数据方;所述指定的数据方求取所述多个数据方的加密后的所述数据之和的和,以及所述多个数据方的加密后的所述数量的和,并将所述多个数据方的加密后的所述数据之和的和,以及所述多个数据方的加密后的所述数量的和分别乘以非零噪声,得到加噪的数据之和和加噪的数量之和,再将所述加噪的数据之和和所述加噪的数量之和发送至所述查询方;所述查询方使用所述私钥对所述加噪的数据之和和所述加噪的数量之和分别进行解密,以获得解密的数据之和和解密的数量之和,并将所述解密的数据之和除以所述解密的数量之和,以获得均值。籍此,采用半同态的加密方法,提高了计算效率,且由于采用随机噪声进行保密,也会降低通信复杂度。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在一个具体的例子中,所述查询方生成公钥和私钥,将公钥和均值的查询请求发送至数据方。所述数据方求出本方数据之和si以及本方的样本个数ni,并用公钥进行加密得到和/>发送至指定的数据方(记为数据甲方,为后续数据的主要计算方)。所述数据甲方求所有数据方的和得到/>和/>并乘以非零噪声r得到/>和/>并发送给查询方。所述查询方将/>和/>利用私钥解密,相除得到均值。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在一些可选实施例中,所述数据统计分析请求还包括方差求取请求。所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,包括:所述查询方对所述均值和所述均值的平方分别进行加密,以获得所述均值的加密结果和所述均值的平方的加密结果,并将携带有所述均值的加密结果和所述均值的平方的加密结果的方差求取请求发送至所述多个数据方,使得所述多个数据方根据所述方差求取请求,求取所述多个数据方的本地数据与所述均值的加密结果的差的平方和,并将所述多个数据方的本地数据与所述均值的加密结果的差的平方和发送至所述指定的数据方;所述指定的数据方求取所有数据方的本地数据与所述均值的加密结果的差的平方和的和,并使用非零的随机噪声对所述平方和的和进行加噪,以获得加噪的平方和的和,再使用所述非零的随机噪声对所述数量之和进行加噪,以获得加噪的数量之和,再将所述加噪的平方和的和和所述加噪的数量之和发送至所述查询方;所述查询方使用所述私钥对所述加噪的平方和的和和所述加噪的数量之和分别进行解密,以获得解密的平方和的和和解密的数量之和,并将所述解密的平方和的和除以所述解密的数量之和,以获得方差。籍此,采用半同态的加密方法,提高了计算效率,且由于采用随机噪声进行保密,也会降低通信复杂度。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在一个具体的例子中,方差计算公式如下:
上式子中分子表示三个数据方与均值(密文)差的平方和,分母为三方样本个数的和。为了方便后续计算,我们将平方项进行展开,以第一个数据方为例,表示如下:
查询方计算得到avg、avg2,加密得到发送/>给数据方;数据方计算本方数据∑ni2、/>(即为本方样本个数乘以),相加得到/>将/>发送给指定的数据方(记为数据甲方,为后续数据的主要计算方),数据甲方计算接收到的所有数据方的和/>计算并利用得到的样本个数/>计算/>其中r1为非零的随机噪声,发送和/>给查询方。查询方利用私钥解密/>得到/>n*r1,计算/>得到方差。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在一些可选实施例中,所述数据统计分析请求包括分位数求取请求。所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,包括:第一发送步骤:所述查询方生成公钥和私钥,并将所述公钥和所述分位数求取请求发送至所述多个数据方,使得所述多个数据方根据所述分位数求取请求,将本地数据的数量加密发送至所述指定的数据方;第二发送步骤:所述指定的数据方将加密的本地数据的数量求和,并将所述多个数据方的本地数据的数量的和乘以分位数,得到第k个数据,并将所述第k个数据的密文发送至所述查询方;第三发送步骤:所述查询方解密所述第k个数据的密文,得到当前分位数对应的明文序号k,并根据所述当前分位数对应的明文序号k和所述多个数据方的数量,确定正序数组的数量m,再将所述正序数组的数量m发送至所述多个数据方;第四发送步骤:所述多个数据方将本地数据按照正序排序,选出所述本地数据的第m个数据,并将所述本地数据的第m个数据加密发送至所述指定的数据方;第五发送步骤:所述指定的数据方将所述本地数据的第m个数据的加密结果进行两两相减,并将相减结果乘以大于零的噪声,将加噪结果发送至所述查询方;第六发送步骤:所述查询方解密所述加噪结果,获得解密结果,并对所述解密结果进行标记,获得所述解密结果的标记结果,再将所述标记结果发送至所述指定的数据方;通知步骤:所述指定的数据方根据所述标记结果,确定第一标记最多的数据方,并通知所述第一标记最多的数据方,使得所述第一标记最多的数据方将本地数据的前m个数据删掉,再通知所述查询方;所述查询方转到所述第三发送步骤,将k换成k-m,执行所述第三发送步骤的操作,重复完成所述第三发送步骤至所述通知步骤,直至k为1止,所述数据方将当前对应的数据,加密发送至所述指定的数据方,执行所述第五发送步骤、所述第六发送步骤,所述指定的数据方将所述第一标记最多的数据方对应的密文数据发送至所述查询方,使得所述查询方对所述第一标记最多的数据方对应的密文数据进行解密,获得分位数。籍此,采用半同态的加密方法,提高了计算效率,且由于采用随机噪声进行保密,也会降低通信复杂度。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在一个具体的例子中,此分位数的计算方法类似于LeetCode中“寻找两个正序数组的中位数”,思路如下:假设需要求解两个正序数组第k小数,由于数列是有序的,可以一半一半的排除。假设要找第k小数,可以每次循环排除掉k/2个数。如图2所示,假设要找第7小的数字,比较两个数组的第k/2个数字,如果k是奇数,向下取整。也就是比较第3个数字,上边数组中的4和下边数组中的3,如果哪个小,就表明该数组的前k/2个数字都不是第k小数字,所以可以排除。也就是1,2,3这三个数字不可能是第7小的数字,可以把它排除掉。将1349和45678910两个数组作为新的数组进行比较,如图3所示。由于已经排除掉了3个数字,就是这3个数字一定在最前边,所以在两个新数组中,只需要找第7-3=4小的数字就可以了,也就是k=4。此时,两个数组比较第2个数字,3<5,所以可以把小的那个数组中的1和3排除掉了,如图4所示。又排除掉2个数字,所以现在找第4-2=2小的数字就可以了。此时比较两个数组中的第k/2=1个数,4=4,怎么办呢?由于两个数相等,所以无论去掉哪个数组中的都行,因为去掉1个总会保留1个的,所以没有影响。为了统一,假设4>4吧,所以此时将下边的4去掉,如图5所示。由于又去掉1个数字,此时要找第1小的数字,所以只需判断两个数组中第一个数字哪个小就可以了,也就是4。所以第7小的数字是4。有时候可能会遇到数组长度小于k/2的时候,此时将箭头指向它的末尾就可以了。计算公式k/2中2代表两个正序数组。若正序数组有3个,则此处为3,以此类推。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
在一个具体的例子中,所述查询方生成公钥和私钥,将公钥和分位数的查询请求发送给数据方。数据方将本方样本个数加密发送给指定的数据方(记为数据甲方,为后续数据的主要计算方)。数据甲方将密文样本个数求和,得到总的样本个数,并乘以分位数得到为第几个数据,记为密文并发送给查询方。查询方解密密文/>得到当前分位数对应的明文样本序号k,查询方计算k/num_party(num_party为数据方的个数,即相当于明文情况下的原问题中有多少个正序数组),并进行向下取整,记为m,将m发送给数据方。数据方将本方数据按照正序排序,同上述明文思路,选出本方第m个数据,并将其加密发送给数据甲方。数据甲方将密文数据进行两两相减,乘以大于零的噪声,将结果发送给查询方解密。查询方解密计算结果,将大于零的结果标记为1,否则标记为-1,构成由1和-1组成的集合,并发送给数据甲方。数据甲方根据计算任务,比较-1得分最多的数据方,并通知-1得分最多的数据方。得到通知的数据方,将本方的前m个数据删掉,并通知查询方完成。查询方转第四步,将k换成k-m(因为已经排除掉了m个数据),进行相同的操作,重复完成第四步至第九步,直至k为1止,此时数据方将当前对应的数据,加密发送给数据甲方,执行第六步、第七步,数据甲方将得分-1最多的数据方对应的密文数据发送给查询方。查询方解密即得到最终结果。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
综上所述,仅需要数据方和查询方,不需要引入额外的参与方,仲裁者由查询方充当,无需轮流计算,采用加噪和半同态的密码学技术。具体地,在下面的算法设计思路中,半同态的加密技术均采用加法同态算法,可选paillier等。其中,查询方发出查询请求,并充当仲裁者的角色生成公钥和私钥,将查询请求和公钥发送给数据方。数据方根据查询方的查询请求,进行相关计算,并利用公钥对数据进行加密,其中一个数据方(后面标记为数据甲方)可能承担主要的计算任务,因此不需要单独的计算方。数据方无法完成的计算可能需要查询方协助计算,因为查询方拥有私钥可以解密,所以只能通过随机数来进行保密。数据方完成计算后,将密文的计算结果发给查询方,查询方利用自己的私钥解密,得到查询结果。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
整个框架的运行流程参考如图6所示,首先需要使用PSI求数据的交集或者是并集,其次是进行联合统计。联合统计一般分为两个步骤:条件计算和统计分析,首先数据方需要执行查询方给出的条件筛选出符合条件的数据,统计分析则是根据符合条件的数据进行相关数据分析。可以理解的是,以上描述仅为示例性的,本实施例对此不做任何限定。
通过本实施例提供的实现统计分析的安全计算方法,查询方向与所述查询方通信连接的多个数据方发送数据对齐请求,所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据,所述查询方向所述多个数据方发送数据筛选条件,所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据,所述查询方向所述多个数据方发送数据统计分析请求,所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,与现有其它方式相比,仅需数据方和查询方,无需引入额外的计算方,有效降低了数据统计分析的复杂度。
本实施例提供的实现统计分析的安全计算方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备等。
参照图7,示出了本实施例二提供的实现统计分析的安全计算装置的结构示意图。
本实施例提供的实现统计分析的安全计算装置,所述装置包括:第一发送模块201,用于向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据;第二发送模块202,用于向所述多个数据方发送数据筛选条件,使得所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据;第三发送模块203,用于向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方。
可选地,所述数据对齐请求包括数据交集请求或者数据并集请求,当所述数据对齐请求为数据交集请求时,所述第一发送模块201,具体用于:向所述多个数据方发送所述数据交集请求,使得所述多个数据方根据所述数据交集请求,使用隐私集合求交方式求取所述多个数据方中的数据的交集;当所述数据对齐请求为数据并集请求时,所述第一发送模块201,具体用于:向所述多个数据方发送所述数据并集请求,使得所述多个数据方根据所述数据并集请求,求取所述多个数据方中的数据的并集。
可选地,所述数据统计分析请求包括最大值求取请求或者最小值求取请求,当所述数据统计分析请求为最大值求取请求时,所述第三发送模块203,具体用于:生成公钥和私钥,并将所述公钥和所述最大值求取请求发送至所述多个数据方,使得所述多个数据方根据所述最大值求取请求,求取所述多个数据方的本地数据的数据最大值,并使用所述公钥对所述数据最大值进行加密,再将加密后的所述数据最大值发送至指定的数据方;将加密后的所述数据最大值两两相减,并将相减结果乘以大于零的噪声,再将相乘结果发送至所述查询方;使用所述私钥对所述相乘结果进行解密,并对解密结果进行标记,再将所述解密结果的标记结果发送至所述指定的数据方;根据所述解密结果的标记结果,确定所述多个数据方中数据最大值的数据方,并将所述多个数据方中数据最大值的数据方的数据最大值的密文发送至所述查询方;使用所述私钥对所述多个数据方中数据最大值的数据方的数据最大值的密文进行解密,以获得所述多个数据方中数据最大值的数据方的数据最大值,当所述数据统计分析请求为最小值求取请求时,所述第三发送模块203,具体用于:生成公钥和私钥,并将所述公钥和所述最小值求取请求发送至所述多个数据方,使得所述多个数据方根据所述最小值求取请求,求取所述多个数据方的本地数据的数据最小值,并使用所述公钥对所述数据最小值进行加密,再将加密后的所述数据最小值发送至指定的数据方;将加密后的所述数据最小值两两相减,并将相减结果乘以大于零的噪声,再将相乘结果发送至所述查询方;使用所述私钥对所述相乘结果进行解密,并对解密结果进行标记,再将所述解密结果的标记结果发送至所述指定的数据方;根据所述解密结果的标记结果,确定所述多个数据方中数据最小值的数据方,并将所述多个数据方中数据最小值的数据方的数据最小值的密文发送至所述查询方;使用所述私钥对所述多个数据方中数据最小值的数据方的数据最小值的密文进行解密,以获得所述多个数据方中数据最小值的数据方的数据最小值。
可选地,所述数据统计分析请求包括均值求取请求,所述第三发送模块203,具体用于:生成公钥和私钥,并将所述公钥和所述均值求取请求发送至所述多个数据方,使得所述多个数据方根据所述均值求取请求,求取所述多个数据方的本地数据的数据之和和数量,并使用所述公钥对所述数据之和和所述数量进行加密,再将加密后的所述数据之和和所述数量发送至指定的数据方;求取所述多个数据方的加密后的所述数据之和的和,以及所述多个数据方的加密后的所述数量的和,并将所述多个数据方的加密后的所述数据之和的和,以及所述多个数据方的加密后的所述数量的和分别乘以非零噪声,得到加噪的数据之和和加噪的数量之和,再将所述加噪的数据之和和所述加噪的数量之和发送至所述查询方;使用所述私钥对所述加噪的数据之和和所述加噪的数量之和分别进行解密,以获得解密的数据之和和解密的数量之和,并将所述解密的数据之和除以所述解密的数量之和,以获得均值。
可选地,所述数据统计分析请求还包括方差求取请求,所述第三发送模块203,具体用于:对所述均值和所述均值的平方分别进行加密,以获得所述均值的加密结果和所述均值的平方的加密结果,并将携带有所述均值的加密结果和所述均值的平方的加密结果的方差求取请求发送至所述多个数据方,使得所述多个数据方根据所述方差求取请求,求取所述多个数据方的本地数据与所述均值的加密结果的差的平方和,并将所述多个数据方的本地数据与所述均值的加密结果的差的平方和发送至所述指定的数据方;求取所有数据方的本地数据与所述均值的加密结果的差的平方和的和,并使用非零的随机噪声对所述平方和的和进行加噪,以获得加噪的平方和的和,再使用所述非零的随机噪声对所述数量之和进行加噪,以获得加噪的数量之和,再将所述加噪的平方和的和和所述加噪的数量之和发送至所述查询方;使用所述私钥对所述加噪的平方和的和和所述加噪的数量之和分别进行解密,以获得解密的平方和的和和解密的数量之和,并将所述解密的平方和的和除以所述解密的数量之和,以获得方差。
可选地,所述数据统计分析请求包括分位数求取请求,所述第三发送模块203,具体用于:第一发送步骤:生成公钥和私钥,并将所述公钥和所述分位数求取请求发送至所述多个数据方,使得所述多个数据方根据所述分位数求取请求,将本地数据的数量加密发送至所述指定的数据方;第二发送步骤:将加密的本地数据的数量求和,并将所述多个数据方的本地数据的数量的和乘以分位数,得到第k个数据,并将所述第k个数据的密文发送至所述查询方;第三发送步骤:解密所述第k个数据的密文,得到当前分位数对应的明文序号k,并根据所述当前分位数对应的明文序号k和所述多个数据方的数量,确定正序数组的数量m,再将所述正序数组的数量m发送至所述多个数据方;第四发送步骤:将本地数据按照正序排序,选出所述本地数据的第m个数据,并将所述本地数据的第m个数据加密发送至所述指定的数据方;第五发送步骤:将所述本地数据的第m个数据的加密结果进行两两相减,并将相减结果乘以大于零的噪声,将加噪结果发送至所述查询方;第六发送步骤:解密所述加噪结果,获得解密结果,并对所述解密结果进行标记,获得所述解密结果的标记结果,再将所述标记结果发送至所述指定的数据方;通知步骤:根据所述标记结果,确定第一标记最多的数据方,并通知所述第一标记最多的数据方,使得所述第一标记最多的数据方将本地数据的前m个数据删掉,再通知所述查询方;转到所述第三发送步骤,将k换成k-m,执行所述第三发送步骤的操作,重复完成所述第三发送步骤至所述通知步骤,直至k为1止,将当前对应的数据,加密发送至所述指定的数据方,执行所述第五发送步骤、所述第六发送步骤,将所述第一标记最多的数据方对应的密文数据发送至所述查询方,使得所述查询方对所述第一标记最多的数据方对应的密文数据进行解密,获得分位数。
本实施例提供的实现统计分析的安全计算装置用于实现前述多个方法实施例中相应的实现统计分析的安全计算方法,并具有相应的方法实施例的有益效果,在此不再赘述。
图8为本实施例三中电子设备的结构示意图;该电子设备可以包括:
一个或多个处理器301;
计算机可读介质302,可以配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例一所述的实现统计分析的安全计算方法。
图9为本实施例四中电子设备的硬件结构;如图9所示,该电子设备的硬件结构可以包括:处理器401,通信接口402,计算机可读介质403和通信总线404;
其中处理器401、通信接口402、计算机可读介质403通过通信总线404完成相互间的通信;
可选地,通信接口402可以为通信模块的接口,如GSM模块的接口;
其中,处理器401具体可以配置为:向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据;向所述多个数据方发送数据筛选条件,使得所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据;向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方。
处理器401可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
计算机可读介质403可以是,但不限于,随机存取存储介质(Random AccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一发送模块、第二发送模块和第三发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一发送模块还可以被描述为“向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据的模块”。
作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所描述的实现统计分析的安全计算方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据;向所述多个数据方发送数据筛选条件,使得所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据;向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方。
在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。
当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)***在这两者之间。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (9)
1.一种实现统计分析的安全计算方法,其特征在于,所述方法包括:
查询方向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据;
所述查询方向所述多个数据方发送数据筛选条件,使得所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据;
所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方。
2.根据权利要求1所述的实现统计分析的安全计算方法,其特征在于,所述数据对齐请求包括数据交集请求或者数据并集请求,
当所述数据对齐请求为数据交集请求时,所述查询方向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据,包括:
所述查询方向所述多个数据方发送所述数据交集请求,使得所述多个数据方根据所述数据交集请求,使用隐私集合求交方式求取所述多个数据方中的数据的交集;
当所述数据对齐请求为数据并集请求时,所述查询方向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据,包括:
所述查询方向所述多个数据方发送所述数据并集请求,使得所述多个数据方根据所述数据并集请求,求取所述多个数据方中的数据的并集。
3.根据权利要求1所述的实现统计分析的安全计算方法,其特征在于,所述数据统计分析请求包括最大值求取请求或者最小值求取请求,
当所述数据统计分析请求为最大值求取请求时,所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,包括:
所述查询方生成公钥和私钥,并将所述公钥和所述最大值求取请求发送至所述多个数据方,使得所述多个数据方根据所述最大值求取请求,求取所述多个数据方的本地数据的数据最大值,并使用所述公钥对所述数据最大值进行加密,再将加密后的所述数据最大值发送至指定的数据方;
所述指定的数据方将加密后的所述数据最大值两两相减,并将相减结果乘以大于零的噪声,再将相乘结果发送至所述查询方;
所述查询方使用所述私钥对所述相乘结果进行解密,并对解密结果进行标记,再将所述解密结果的标记结果发送至所述指定的数据方;
所述指定的数据方根据所述解密结果的标记结果,确定所述多个数据方中数据最大值的数据方,并将所述多个数据方中数据最大值的数据方的数据最大值的密文发送至所述查询方;
所述查询方使用所述私钥对所述多个数据方中数据最大值的数据方的数据最大值的密文进行解密,以获得所述多个数据方中数据最大值的数据方的数据最大值,
当所述数据统计分析请求为最小值求取请求时,所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,包括:
所述查询方生成公钥和私钥,并将所述公钥和所述最小值求取请求发送至所述多个数据方,使得所述多个数据方根据所述最小值求取请求,求取所述多个数据方的本地数据的数据最小值,并使用所述公钥对所述数据最小值进行加密,再将加密后的所述数据最小值发送至指定的数据方;
所述指定的数据方将加密后的所述数据最小值两两相减,并将相减结果乘以大于零的噪声,再将相乘结果发送至所述查询方;
所述查询方使用所述私钥对所述相乘结果进行解密,并对解密结果进行标记,再将所述解密结果的标记结果发送至所述指定的数据方;
所述指定的数据方根据所述解密结果的标记结果,确定所述多个数据方中数据最小值的数据方,并将所述多个数据方中数据最小值的数据方的数据最小值的密文发送至所述查询方;
所述查询方使用所述私钥对所述多个数据方中数据最小值的数据方的数据最小值的密文进行解密,以获得所述多个数据方中数据最小值的数据方的数据最小值。
4.根据权利要求1所述的实现统计分析的安全计算方法,其特征在于,所述数据统计分析请求包括均值求取请求,
所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,包括:
所述查询方生成公钥和私钥,并将所述公钥和所述均值求取请求发送至所述多个数据方,使得所述多个数据方根据所述均值求取请求,求取所述多个数据方的本地数据的数据之和和数量,并使用所述公钥对所述数据之和和所述数量进行加密,再将加密后的所述数据之和和所述数量发送至指定的数据方;
所述指定的数据方求取所述多个数据方的加密后的所述数据之和的和,以及所述多个数据方的加密后的所述数量的和,并将所述多个数据方的加密后的所述数据之和的和,以及所述多个数据方的加密后的所述数量的和分别乘以非零噪声,得到加噪的数据之和和加噪的数量之和,再将所述加噪的数据之和和所述加噪的数量之和发送至所述查询方;
所述查询方使用所述私钥对所述加噪的数据之和和所述加噪的数量之和分别进行解密,以获得解密的数据之和和解密的数量之和,并将所述解密的数据之和除以所述解密的数量之和,以获得均值。
5.根据权利要求4所述的实现统计分析的安全计算方法,其特征在于,所述数据统计分析请求还包括方差求取请求,
所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,包括:
所述查询方对所述均值和所述均值的平方分别进行加密,以获得所述均值的加密结果和所述均值的平方的加密结果,并将携带有所述均值的加密结果和所述均值的平方的加密结果的方差求取请求发送至所述多个数据方,使得所述多个数据方根据所述方差求取请求,求取所述多个数据方的本地数据与所述均值的加密结果的差的平方和,并将所述多个数据方的本地数据与所述均值的加密结果的差的平方和发送至所述指定的数据方;
所述指定的数据方求取所有数据方的本地数据与所述均值的加密结果的差的平方和的和,并使用非零的随机噪声对所述平方和的和进行加噪,以获得加噪的平方和的和,再使用所述非零的随机噪声对所述数量之和进行加噪,以获得加噪的数量之和,再将所述加噪的平方和的和和所述加噪的数量之和发送至所述查询方;
所述查询方使用所述私钥对所述加噪的平方和的和和所述加噪的数量之和分别进行解密,以获得解密的平方和的和和解密的数量之和,并将所述解密的平方和的和除以所述解密的数量之和,以获得方差。
6.根据权利要求1所述的实现统计分析的安全计算方法,其特征在于,所述数据统计分析请求包括分位数求取请求,
所述查询方向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方,包括:
第一发送步骤:所述查询方生成公钥和私钥,并将所述公钥和所述分位数求取请求发送至所述多个数据方,使得所述多个数据方根据所述分位数求取请求,将本地数据的数量加密发送至所述指定的数据方;
第二发送步骤:所述指定的数据方将加密的本地数据的数量求和,并将所述多个数据方的本地数据的数量的和乘以分位数,得到第k个数据,并将所述第k个数据的密文发送至所述查询方;
第三发送步骤:所述查询方解密所述第k个数据的密文,得到当前分位数对应的明文序号k,并根据所述当前分位数对应的明文序号k和所述多个数据方的数量,确定正序数组的数量m,再将所述正序数组的数量m发送至所述多个数据方;
第四发送步骤:所述多个数据方将本地数据按照正序排序,选出所述本地数据的第m个数据,并将所述本地数据的第m个数据加密发送至所述指定的数据方;
第五发送步骤:所述指定的数据方将所述本地数据的第m个数据的加密结果进行两两相减,并将相减结果乘以大于零的噪声,将加噪结果发送至所述查询方;
第六发送步骤:所述查询方解密所述加噪结果,获得解密结果,并对所述解密结果进行标记,获得所述解密结果的标记结果,再将所述标记结果发送至所述指定的数据方;
通知步骤:所述指定的数据方根据所述标记结果,确定第一标记最多的数据方,并通知所述第一标记最多的数据方,使得所述第一标记最多的数据方将本地数据的前m个数据删掉,再通知所述查询方;
所述查询方转到所述第三发送步骤,将k换成k-m,执行所述第三发送步骤的操作,重复完成所述第三发送步骤至所述通知步骤,直至k为1止,所述数据方将当前对应的数据,加密发送至所述指定的数据方,执行所述第五发送步骤、所述第六发送步骤,所述指定的数据方将所述第一标记最多的数据方对应的密文数据发送至所述查询方,使得所述查询方对所述第一标记最多的数据方对应的密文数据进行解密,获得分位数。
7.一种实现统计分析的安全计算装置,其特征在于,所述装置包括:
第一发送模块,用于向与所述查询方通信连接的多个数据方发送数据对齐请求,使得所述多个数据方根据所述数据对齐请求对齐所述多个数据方中的数据;
第二发送模块,用于向所述多个数据方发送数据筛选条件,使得所述多个数据方根据所述数据筛选条件,在本地的对齐数据中筛选出符合所述数据筛选条件的数据;
第三发送模块,用于向所述多个数据方发送数据统计分析请求,使得所述多个数据方根据所述数据统计分析请求,对本地符合所述数据筛选条件的数据进行数据统计分析,并将加密后的数据统计分析结果发送至所述查询方。
8.一种电子设备,其特征在于,所述设备包括:
一个或多个处理器;
计算机可读介质,配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任意一项权利要求所述的实现统计分析的安全计算方法。
9.一种计算机可读介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-6中任意一项权利要求所述的实现统计分析的安全计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310854355.6A CN117390238A (zh) | 2023-07-12 | 2023-07-12 | 实现统计分析的安全计算方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310854355.6A CN117390238A (zh) | 2023-07-12 | 2023-07-12 | 实现统计分析的安全计算方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117390238A true CN117390238A (zh) | 2024-01-12 |
Family
ID=89461965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310854355.6A Pending CN117390238A (zh) | 2023-07-12 | 2023-07-12 | 实现统计分析的安全计算方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117390238A (zh) |
-
2023
- 2023-07-12 CN CN202310854355.6A patent/CN117390238A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Federated variance-reduced stochastic gradient descent with robustness to byzantine attacks | |
US10903976B2 (en) | End-to-end secure operations using a query matrix | |
US10693657B2 (en) | Method and apparatus for verifying processed data | |
CN107145791B (zh) | 一种具有隐私保护的K-means聚类方法及*** | |
US20180212753A1 (en) | End-To-End Secure Operations Using a Query Vector | |
WO2020211485A1 (zh) | 数据处理方法、装置和电子设备 | |
CN109446828B (zh) | 一种安全多方计算方法及装置 | |
CN111143862B (zh) | 数据处理方法、查询方法、装置、电子设备和*** | |
CN114039785B (zh) | 数据加密、解密、处理方法、装置、设备和存储介质 | |
Sutradhar et al. | An efficient simulation for quantum secure multiparty computation | |
CN110048830B (zh) | 一种数据加密解密方法和加密解密装置 | |
CN111949998B (zh) | 对象检测及请求方法、数据处理***、装置及存储介质 | |
CN116561787A (zh) | 视觉图像分类模型的训练方法、装置及电子设备 | |
Zhou et al. | PPTA: A location privacy-preserving and flexible task assignment service for spatial crowdsourcing | |
Huang et al. | Hybrid quantum–classical convolutional neural networks with privacy quantum computing | |
CN111046431B (zh) | 数据处理方法、查询方法、装置、电子设备和*** | |
CN111159730B (zh) | 数据处理方法、查询方法、装置、电子设备和*** | |
CN114866312B (zh) | 一种保护数据隐私的共有数据确定方法及装置 | |
CN117390238A (zh) | 实现统计分析的安全计算方法、装置、设备及介质 | |
CN115599959A (zh) | 数据共享方法、装置、设备及存储介质 | |
CN111984932B (zh) | 两方数据分组统计方法、装置及*** | |
CN112257081A (zh) | 纵向联邦标准离差综合评分方法、***、介质及设备 | |
Kavya et al. | A comparative study on homomorphic encryption schemes in cloud computing | |
CN114978620B (zh) | 身份标识号的加密方法和解密方法 | |
CN118157856A (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 |