CN116579021B - 一种基于秘密分享的多方联合数据检索方法 - Google Patents
一种基于秘密分享的多方联合数据检索方法 Download PDFInfo
- Publication number
- CN116579021B CN116579021B CN202310851675.6A CN202310851675A CN116579021B CN 116579021 B CN116579021 B CN 116579021B CN 202310851675 A CN202310851675 A CN 202310851675A CN 116579021 B CN116579021 B CN 116579021B
- Authority
- CN
- China
- Prior art keywords
- data
- party
- value
- searching
- subinterval
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 239000012634 fragment Substances 0.000 claims description 43
- 230000009191 jumping Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
Classifications
-
- 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/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- 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/6218—Protecting 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/6227—Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于秘密分享的多方联合数据检索方法。该方法包括:S1:采用秘密分享算法计算出所有数据的总数量m,检索方确定位置索引值p;S2:协商确定检索区间;S3:统一将检索区间等分为n个子区间,并统计自身持有的数据落在每个子区间中的个数;S4:采用秘密分享算法判断位置索引值p对应的数据是否是某个子区间中最大的数据或最小的数据,如果是,则执行步骤S5,如果不是,则找出位置索引值p对应的数据所在的子区间,将该子区间作为新的检索区间,跳转至步骤S3;S5:采用秘密分享算法找出该子区间中最大的数据或最小的数据作为位置索引值p对应的数据。本发明能够在保护各方数据隐私的前提下进行联合检索,避免数据泄露。
Description
技术领域
本发明涉及数据检索技术领域,尤其涉及一种基于秘密分享的多方联合数据检索方法。
背景技术
目前,随着互联网信息技术快速发展,特别是5G、云和大数据等新技术不断发展,各行各业信息***的安全性和保密性显得越来越重要。当前有很多业务场景中检索方需要检索出多方所持有的所有数据中特定某个位置的数据,现有方法是由第三方参与辅助进行检索,使得各方不会泄漏自身数据给检索方,但是实际商业落地较难找到可信的第三方,且存在数据泄露的风险。因此,急需一种在保护各方数据隐私的前提下进行联合数据检索的方法。
发明内容
本发明为了解决上述技术问题,提供了一种基于秘密分享的多方联合数据检索方法,其能够在保护各方数据隐私的前提下进行联合检索,无需第三方参与,避免数据泄露。
为了解决上述问题,本发明采用以下技术方案予以实现:
本发明的一种基于秘密分享的多方联合数据检索方法,所述多方包括检索方和两个以上数据方,包括以下步骤:
S1:检索方、数据方各自统计自身持有的数据的数量,采用秘密分享算法计算出所有数据的总数量m,检索方确定要检索数据在所有数据中的位置索引值p,1≤p≤m;
S2:检索方、数据方协商确定检索区间;
S3:检索方、数据方统一将检索区间等分为n个子区间,检索方、数据方统计自身持有的数据落在每个子区间中的个数;
S4:检索方、数据方采用秘密分享算法判断位置索引值p对应的数据是否是某个子区间中最大的数据或最小的数据,如果是,则执行步骤S5,如果不是,则找出位置索引值p对应的数据所在的子区间,将该子区间作为新的检索区间,跳转至步骤S3;
S5:检索方在数据方的配合下采用秘密分享算法找出该子区间中最大的数据或最小的数据作为位置索引值p对应的数据。
在本方案中,检索方、数据方将检索区间等分为n个子区间,采用秘密分享算法判断位置索引值p对应的数据是否是某个子区间中最大的数据或最小的数据,如果是某个子区间中最大的数据,各方将各自落到该子区间中的最大数据进行比较,找出该子区间中最大的数据,位置索引值p对应的数据就是该最大的数据;如果是某个子区间中最小的数据,各方将各自落到该子区间中的最小数据进行比较,找出该子区间中最小的数据,位置索引值p对应的数据就是该最小的数据;如果不是,则找出位置索引值p对应的数据所在的子区间,然后将该子区间作为新的检索区间重新等分为n个子区间进行检索;如此循环,直到找出位置索引值p对应的数据。
在整个检索过程中,检索方除了拿到位置索引值p对应的数据之外不会获取到数据方持有的其他数据,数据方也不会获取到检索方持有的数据,保护了各方数据隐私,且无需第三方参与。
作为优选,所述步骤S2包括以下步骤:所述检索方、数据方各自统计自身持有的数据的最大值和最小值,采用秘密分享算法的比较协议对所有最大值进行比较、对所有最小值进行比较,得到所有数据的最大值Vmax和最小值Vmin,检索区间为[Vmin, Vmax]。
作为优选,所述步骤S1还包括以下步骤:
检索方设定变量y,变量y的初始值=位置索引值p;
所述步骤S4包括以下步骤:
S41:将n个子区间依次编号为1、2……n,设定变量i,1≤i≤n,变量i的初始值为1;
S42:检索方、数据方采用秘密分享算法计算编号为i的子区间对应的比较值D,检索方得到比较值D的明文值;
S43:如果D=0,则表示位置索引值p对应的数据为编号为i的子区间内的最大值,执行步骤S5;
如果D<0,则表示位置索引值p对应的数据在编号为i的子区间内,将编号为i的子区间作为新的检索区间,如果i=1,则跳转至步骤S3,如果i>1,则执行步骤S44;
如果D>0,则表示位置索引值p对应的数据不在编号为i的子区间内,给i赋值i=i+1,跳转至步骤S42;
S44:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i-1的子区间的数据总数x,检索方、数据方各自持有数据总数x对应的秘密分片;
检索方、数据方采用秘密分享的减法协议计算y-x,得到差值v,v=y-x,检索方、数据方各自持有差值v对应的秘密分片,将差值v作为变量y的值,接着跳转至步骤S3。
作为优选,所述步骤S42包括以下步骤:
S421:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i的子区间的数据总数a,检索方、数据方各自持有数据总数a对应的秘密分片;
S422:检索方、数据方采用秘密分享的减法协议计算y-a,得到差值b,b=y-a,检索方、数据方各自持有差值b对应的秘密分片;
S423:检索方、数据方各自随机生成一个大于1的随机数,检索方、数据方采用秘密分享的乘法协议计算出所有随机数的乘积c,检索方、数据方各自持有乘积c对应的秘密分片;
S424:检索方、数据方采用秘密分享的乘法协议计算差值b与乘积c的乘积d,检索方得到乘积d的明文值,将乘积d的明文值作为比较值D。
检索方、数据方都各自随机生成一个随机数,采用秘密分享的乘法协议计算出所有随机数的乘积c,所以各方都无法知道乘积c的明文值,通过采用秘密分享的乘法协议计算差值b与乘积c的乘积d,将差值b的明文值隐藏,检索方拿到的是乘积d的明文值,使得检索方无法推算出落在子区间中的数据个数,保护了数据方的数据隐私。
作为优选,所述步骤S43中,如果D>0,则表示位置索引值p对应的数据不在编号为i的子区间内,执行以下步骤:
检索方、数据方采用秘密分享算法计算编号为i的子区间对应的比较值E,检索方得到比较值E的明文值,判断比较值E是否为0,如果是,则表示位置索引值p对应的数据为编号为i+1的子区间内的最小值,执行步骤S5,如果不是,则给i赋值i=i+1,跳转至步骤S42。
作为优选,所述检索方、数据方采用秘密分享算法计算编号为i的子区间对应的比较值E的方法如下:
N1:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i的子区间的数据总数a,检索方、数据方各自持有数据总数a对应的秘密分片;
N2:检索方、数据方采用秘密分享的减法协议计算y-1-a,得到差值e,e=y-1-a,检索方、数据方各自持有差值e对应的秘密分片;
N3:检索方、数据方各自随机生成一个大于1的随机数,检索方、数据方采用秘密分享的乘法协议计算出所有随机数的乘积f,检索方、数据方各自持有乘积f对应的秘密分片;
N4:检索方、数据方采用秘密分享的乘法协议计算差值e与乘积f的乘积g,检索方得到乘积g的明文值,将乘积g的明文值作为比较值E。
作为优选,所述步骤S5包括以下步骤:
如果位置索引值p对应的数据是某个子区间中最大的数据,则检索方、数据方各自统计落在该子区间中的自身持有的数据的最大值,采用秘密分享算法的比较协议对所有最大值进行比较,找出该子区间中最大的数据,检索方得到该最大的数据的明文值,该最大的数据的明文值就是位置索引值p对应的数据;
如果位置索引值p对应的数据是某个子区间中最小的数据,则检索方、数据方各自统计落在该子区间中的自身持有的数据的最小值,采用秘密分享算法的比较协议对所有最小值进行比较,找出该子区间中最小的数据,检索方得到该最小的数据的明文值,该最小的数据的明文值就是位置索引值p对应的数据。
作为优选,所述步骤S5中检索方、数据方各自统计落在该子区间中的自身持有的数据的最大值时,如果检索方自身持有的数据没有落在该子区间中,则检索方选取一个小于或等于该子区间左边界值的数值作为落在该子区间中的自身持有的数据的最大值,如果数据方自身持有的数据没有落在该子区间中,则数据方选取一个小于或等于该子区间左边界值的数值作为落在该子区间中的自身持有的数据的最大值。
检索方、数据方有可能存在自身持有的数据没有落在某个子区间中的情况,这种情况出现时,就可以选取小于或等于该子区间左边界值的数值作为落在该子区间中的自身持有的数据的最大值,从而避免数据泄露。
作为优选,所述步骤S5中检索方、数据方各自统计落在该子区间中的自身持有的数据的最小值时,如果检索方自身持有的数据没有落在该子区间中,则检索方选取一个大于或等于该子区间右边界值的数值作为落在该子区间中的自身持有的数据的最小值,如果数据方自身持有的数据没有落在该子区间中,则数据方选取一个大于或等于该子区间右边界值的数值作为落在该子区间中的自身持有的数据的最小值。
检索方、数据方有可能存在自身持有的数据没有落在某个子区间中的情况,这种情况出现时,就可以选取大于或等于该子区间右边界值的数值作为落在该子区间中的自身持有的数据的最小值,从而避免数据泄露。
作为优选,所述步骤S2包括以下步骤:检索方、数据方使用计算机所能承载的数值边界初始化检索区间。这样可以不暴露所有数据的最大值Vmax和最小值Vmin。
本发明的有益效果是:能够在保护各方数据隐私的前提下进行联合检索,无需第三方参与,避免数据泄露。
附图说明
图1是实施例1的流程图;
图2是实施例2的举例说明中检索方、数据方的数据在初始检索区间的各个子区间中的分布示意图;
图3是实施例2的举例说明中检索方、数据方的数据在新的检索区间的各个子区间中的分布示意图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例1:本实施例的一种基于秘密分享的多方联合数据检索方法,多方包括检索方和两个以上数据方,如图1所示,包括以下步骤:
S1:检索方、数据方各自统计自身持有的数据的数量,采用秘密分享算法的加法协议计算出所有数据的总数量m,检索方得到总数量m的明文值,检索方确定要检索数据在所有数据中的位置索引值p,1≤p≤m,检索方设定变量y,变量y的初始值=位置索引值p;
S2:检索方、数据方协商确定检索区间;
S3:检索方、数据方统一将检索区间等分为n个子区间,检索方、数据方统计自身持有的数据落在每个子区间中的个数;
S4:检索方、数据方采用秘密分享算法判断位置索引值p对应的数据是否是某个子区间中最大的数据或最小的数据,如果是,则执行步骤S5,如果不是,则找出位置索引值p对应的数据所在的子区间,将该子区间作为新的检索区间,跳转至步骤S3;
S5:如果位置索引值p对应的数据是某个子区间中最大的数据,则检索方、数据方各自统计落在该子区间中的自身持有的数据的最大值,采用秘密分享算法的比较协议对所有最大值进行比较,找出该子区间中最大的数据,检索方得到该最大的数据的明文值,该最大的数据的明文值就是位置索引值p对应的数据;
如果位置索引值p对应的数据是某个子区间中最小的数据,则检索方、数据方各自统计落在该子区间中的自身持有的数据的最小值,采用秘密分享算法的比较协议对所有最小值进行比较,找出该子区间中最小的数据,检索方得到该最小的数据的明文值,该最小的数据的明文值就是位置索引值p对应的数据。
步骤S4包括以下步骤:
S41:将n个子区间依次编号为1、2……n,设定变量i,1≤i≤n,变量i的初始值为1;
S42:检索方、数据方采用秘密分享算法计算编号为i的子区间对应的比较值D,检索方得到比较值D的明文值;
S43:如果D=0,则表示位置索引值p对应的数据为编号为i的子区间内的最大值,执行步骤S5;
如果D<0,则表示位置索引值p对应的数据在编号为i的子区间内,将编号为i的子区间作为新的检索区间,如果i=1,则跳转至步骤S3,如果i>1,则执行步骤S44;
如果D>0,则表示位置索引值p对应的数据不在编号为i的子区间内,给i赋值i=i+1,跳转至步骤S42;
S44:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i-1的子区间的数据总数x,检索方、数据方各自持有数据总数x对应的秘密分片;
检索方、数据方采用秘密分享的减法协议计算y-x,得到差值v,v=y-x,检索方、数据方各自持有差值v对应的秘密分片,将差值v作为变量y的值,接着跳转至步骤S3。
步骤S42包括以下步骤:
S421:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i的子区间的数据总数a,检索方、数据方各自持有数据总数a对应的秘密分片;
S422:检索方、数据方采用秘密分享的减法协议计算y-a,得到差值b,b=y-a,检索方、数据方各自持有差值b对应的秘密分片;
S423:检索方、数据方各自随机生成一个大于1的随机数,检索方、数据方采用秘密分享的乘法协议计算出所有随机数的乘积c,检索方、数据方各自持有乘积c对应的秘密分片;
S424:检索方、数据方采用秘密分享的乘法协议计算差值b与乘积c的乘积d,检索方得到乘积d的明文值,将乘积d的明文值作为比较值D。
在本方案中,检索方、数据方将检索区间等分为n个子区间,采用秘密分享算法判断位置索引值p对应的数据是否是某个子区间中最大的数据或最小的数据,如果是某个子区间中最大的数据,各方将各自落到该子区间中的最大数据进行比较,找出该子区间中最大的数据,位置索引值p对应的数据就是该最大的数据;如果是某个子区间中最小的数据,各方将各自落到该子区间中的最小数据进行比较,找出该子区间中最小的数据,位置索引值p对应的数据就是该最小的数据;如果不是,则找出位置索引值p对应的数据所在的子区间,然后将该子区间作为新的检索区间重新等分为n个子区间进行检索;如此循环,直到找出位置索引值p对应的数据。
找索引值p对应的数据位于哪个子区间的方法是:将n个子区间按从小到大的顺序依次编号为1、2……n,从编号为1的子区间开始判断,如果D=0,则表示位置索引值p与编号为1的子区间中的数据个数一致,则位置索引值p对应的数据一定就是编号为1的子区间内的最大值;如果D>0,则表示位置索引值p大于编号为1的子区间中的数据个数,说明位置索引值p对应的数据不在编号为1的子区间内,给i赋值i=i+1,即i=2,对编号为2的子区间开始判断;如果D<0,则表示位置索引值p小于编号为1的子区间中的数据个数,说明位置索引值p对应的数据在编号为1的子区间内,将编号为1的子区间作为新的检索区间重新等分为n个子区间进行检索;如此循环,直到找出位置索引值p对应的数据。
计算比较值D时,检索方、数据方都各自随机生成一个随机数,采用秘密分享的乘法协议计算出所有随机数的乘积c,所以各方都无法知道乘积c的明文值,通过采用秘密分享的乘法协议计算差值b与乘积c的乘积d,将差值b的明文值隐藏,检索方拿到的是乘积d的明文值,使得检索方无法推算出落在子区间中的数据个数,保护了数据方的数据隐私。采用这种检索方式在保护数据隐私的基础上,大大提高了检索效率。
在整个检索过程中,检索方除了拿到位置索引值p对应的数据之外不会获取到数据方持有的其他数据,数据方也不会获取到检索方持有的数据,保护了各方数据隐私,且无需第三方参与。
步骤S2的检索方、数据方协商确定检索区间的方法可采用下述三种方法的任意一种:
(1)检索方、数据方各自统计自身持有的数据的最大值和最小值,采用秘密分享算法的比较协议对所有最大值进行比较、对所有最小值进行比较,得到所有数据的最大值Vmax和最小值Vmin,检索区间为[Vmin, Vmax]。
(2)检索方、数据方各自统计自身持有的数据的最大值和最小值,检索方、数据方各自选择一个比自身持有的数据的最大值还要大的值作为虚拟最大值,各自选择一个比自身持有的数据的最小值还要小的值作为虚拟最小值,采用秘密分享算法的比较协议对所有虚拟最大值进行比较、对所有虚拟最小值进行比较,得到所有虚拟最大值的最大值Fmax和所有虚拟最小值的最小值Fmin,检索区间为[Fmin, Fmax]。这样可以不暴露所有数据的最大值Vmax和最小值Vmin。
(3)检索方、数据方使用计算机所能承载的数值边界初始化检索区间[Dmin,Dmax]。这样可以不暴露所有数据的最大值Vmax和最小值Vmin。
步骤S5中检索方、数据方各自统计落在该子区间中的自身持有的数据的最大值时,如果检索方自身持有的数据没有落在该子区间中,则检索方选取一个小于或等于该子区间左边界值的数值作为落在该子区间中的自身持有的数据的最大值,如果数据方自身持有的数据没有落在该子区间中,则数据方选取一个小于或等于该子区间左边界值的数值作为落在该子区间中的自身持有的数据的最大值。
步骤S5中检索方、数据方各自统计落在该子区间中的自身持有的数据的最小值时,如果检索方自身持有的数据没有落在该子区间中,则检索方选取一个大于或等于该子区间右边界值的数值作为落在该子区间中的自身持有的数据的最小值,如果数据方自身持有的数据没有落在该子区间中,则数据方选取一个大于或等于该子区间右边界值的数值作为落在该子区间中的自身持有的数据的最小值。
检索方、数据方有可能存在自身持有的数据没有落在某个子区间中的情况,这种情况出现时,就可以选取小于或等于该子区间左边界值的数值作为落在该子区间中的自身持有的数据的最大值,选取大于或等于该子区间右边界值的数值作为落在该子区间中的自身持有的数据的最小值,从而避免数据泄露。
本方法可应用在如下业务场景:有一家手机厂商,需要在本地推广销售自己的手机,线下地推的时候为了合理定价自身的商品,对本公司及附近几家公司员工的消费能力进行评级,但是由于隐私保护的需求,每个员工的具体收入和消费额度是不能暴露的,因此可以通过本方法,检索收入和消费额度在高分位值所对应的数值,作为高端机的定价参考指标,统计收入和消费额度在中位值所对应的数值,作为中端机的定价参考指标,统计收入和消费额度在的低分位值所对应的数值,作为低端机的定价参考指标。
实施例2:本实施例的方法与实施例1基本相同,不同之处在于:
步骤S4包括以下步骤:
S41:将n个子区间依次编号为1、2……n,设定变量i,1≤i≤n,变量i的初始值为1;
S42:检索方、数据方采用秘密分享算法计算编号为i的子区间对应的比较值D,检索方得到比较值D的明文值;
S43:如果D=0,则表示位置索引值p对应的数据为编号为i的子区间内的最大值,执行步骤S5;
如果D<0,则表示位置索引值p对应的数据在编号为i的子区间内,将编号为i的子区间作为新的检索区间,如果i=1,则跳转至步骤S3,如果i>1,则执行步骤S44;
如果D>0,则表示位置索引值p对应的数据不在编号为i的子区间内,检索方、数据方采用秘密分享算法计算编号为i的子区间对应的比较值E,检索方得到比较值E的明文值,判断比较值E是否为0,如果是,则表示位置索引值p对应的数据为编号为i+1的子区间内的最小值,执行步骤S5,如果不是,则给i赋值i=i+1,跳转至步骤S42;
S44:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i-1的子区间的数据总数x,检索方、数据方各自持有数据总数x对应的秘密分片;
检索方、数据方采用秘密分享的减法协议计算y-x,得到差值v,v=y-x,检索方、数据方各自持有差值v对应的秘密分片,将差值v作为变量y的值,接着跳转至步骤S3。
步骤S42包括以下步骤:
S421:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i的子区间的数据总数a,检索方、数据方各自持有数据总数a对应的秘密分片;
S422:检索方、数据方采用秘密分享的减法协议计算y-a,得到差值b,b=y-a,检索方、数据方各自持有差值b对应的秘密分片;
S423:检索方、数据方各自随机生成一个大于1的随机数,检索方、数据方采用秘密分享的乘法协议计算出所有随机数的乘积c,检索方、数据方各自持有乘积c对应的秘密分片;
S424:检索方、数据方采用秘密分享的乘法协议计算差值b与乘积c的乘积d,检索方得到乘积d的明文值,将乘积d的明文值作为比较值D。
步骤S43中检索方、数据方采用秘密分享算法计算编号为i的子区间对应的比较值E的方法如下:
N1:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i的子区间的数据总数a,检索方、数据方各自持有数据总数a对应的秘密分片;
N2:检索方、数据方采用秘密分享的减法协议计算y-1-a,得到差值e,e=y-1-a,检索方、数据方各自持有差值e对应的秘密分片;
N3:检索方、数据方各自随机生成一个大于1的随机数,检索方、数据方采用秘密分享的乘法协议计算出所有随机数的乘积f,检索方、数据方各自持有乘积f对应的秘密分片;
N4:检索方、数据方采用秘密分享的乘法协议计算差值e与乘积f的乘积g,检索方得到乘积g的明文值,将乘积g的明文值作为比较值E。
实施例2的方法只有步骤S4与实施例1的方法不同,其余方法与实施例1相同。在本方案中,找索引值p对应的数据位于哪个子区间的方法是:将n个子区间按从小到大的顺序依次编号为1、2……n,从编号为1的子区间开始判断;
如果D=0,则表示位置索引值p与编号为1的子区间中的数据个数一致,则位置索引值p对应的数据一定就是编号为1的子区间内的最大值;
如果D<0,则表示位置索引值p小于编号为1的子区间中的数据个数,说明位置索引值p对应的数据在编号为1的子区间内,将编号为1的子区间作为新的检索区间重新等分为n个子区间进行检索;
如果D>0,则表示位置索引值p大于编号为1的子区间中的数据个数,说明位置索引值p对应的数据不在编号为1的子区间内,接着计算比较值E,如果E=0,则表示位置索引值p等于编号为1的子区间中的数据个数加1,说明位置索引值p对应的数据是编号为2的子区间内的最小值,如果E≠0,则表示位置索引值p对应的数据不是编号为2的子区间内的最小值,给i赋值i=i+1,即i=2,对编号为2的子区间开始判断。如此循环,直到找出位置索引值p对应的数据。
计算比较值D时,检索方、数据方都各自随机生成一个随机数,采用秘密分享的乘法协议计算出所有随机数的乘积c,所以各方都无法知道乘积c的明文值,通过采用秘密分享的乘法协议计算差值b与乘积c的乘积d,将差值b的明文值隐藏,检索方拿到的是乘积d的明文值,计算比较值E时,检索方、数据方都各自随机生成一个随机数,采用秘密分享的乘法协议计算出所有随机数的乘积f,所以各方都无法知道乘积f的明文值,通过采用秘密分享的乘法协议计算差值e与乘积f的乘积g,将差值e的明文值隐藏,检索方拿到的是乘积g的明文值,通过乘以随机数的处理,使得检索方无法推算出落在子区间中的数据个数,保护了数据方的数据隐私。
本方案相比于实施例1在步骤S4中D>0的情况增加了计算比较值E并根据比较值E是否为0判断位置索引值p对应的数据是否是下一个子区间的最小值,这样就减少了位置索引值p对应的数据是子区间最小值情况下的再一次分割子区间检索的步骤,大大提高了检索效率。
举例说明:
检索方P1与数据方P2、数据方P3进行联合数据检索,检索方P1持有的数据为[3,5, 14],数据方P2持有的数据为[2, 5, 8, 10, 18],数据方P3持有的数据为[4, 11, 17]。
检索方P1统计自身持有的数据的数量为3,数据方P2统计自身持有的数据的数量为5,数据方P3统计自身持有的数据的数量为3,检索方P1、数据方P2、数据方P3采用秘密分享算法计算出所有数据的总数量m为11,检索方得到总数量为11,假设检索方P1需要检索的数据的位置索引值p为8,设定变量y,变量y的初始值为8。
所有数据按从小到大排序为[2, 3, 4, 5, 5, 8, 10, 11, 14, 17, 18],位置索引值p为8就是要找出从小到大数第8个数据,即位置索引值8对应的数据为11。
检索方P1、数据方P2、数据方P3协商确定检索区间为[0,20]。
检索方P1、数据方P2、数据方P3统一将检索区间等分为4个子区间,将4个子区间依次编号,分别为子区间1、子区间2、子区间3、子区间4,子区间1为[0,5),子区间2为[5,10),子区间3为[10,15),子区间4为[15,20],检索方P1、数据方P2、数据方P3统计自身持有的数据落在每个子区间中的个数,如图2所示。
首先,对子区间1进行判断:
检索方P1、数据方P2、数据方P3采用秘密分享算法计算子区间1对应的比较值D,检索方P1得到比较值D的明文值,具体步骤如下:
检索方P1、数据方P2、数据方P3采用秘密分享的加法协议计算出落在子区间1的数据总数为3,检索方P1、数据方P2、数据方P3各自持有数据总数3对应的秘密分片;
检索方P1、数据方P2、数据方P3采用秘密分享的减法协议计算8-3,得到差值5,检索方P1、数据方P2、数据方P3各自持有差值5对应的秘密分片;
检索方P1随机生成一个随机数5,数据方P2随机生成一个随机数3,数据方P3随机生成一个随机数7,检索方P1、数据方P2、数据方P3采用秘密分享的乘法协议计算出所有随机数的乘积为105,检索方P1、数据方P2、数据方P3各自持有乘积105对应的秘密分片;
检索方P1、数据方P2、数据方P3采用秘密分享的乘法协议计算差值5与乘积105的乘积为525,检索方得到乘积525的值,比较值D=525。
由于比较值D=525>0,所以位置索引值8对应的数据不在子区间1内。
接着,对子区间2进行判断:
检索方P1、数据方P2、数据方P3采用秘密分享算法计算子区间2对应的比较值D,检索方P1得到比较值D的明文值,具体步骤如下:
检索方P1、数据方P2、数据方P3采用秘密分享的加法协议计算出落在子区间1、子区间2的数据总数为6,检索方P1、数据方P2、数据方P3各自持有数据总数6对应的秘密分片;
检索方P1、数据方P2、数据方P3采用秘密分享的减法协议计算8-6,得到差值2,检索方P1、数据方P2、数据方P3各自持有差值2对应的秘密分片;
检索方P1随机生成一个随机数3,数据方P2随机生成一个随机数3,数据方P3随机生成一个随机数13,检索方P1、数据方P2、数据方P3采用秘密分享的乘法协议计算出所有随机数的乘积为117,检索方P1、数据方P2、数据方P3各自持有乘积117对应的秘密分片;
检索方P1、数据方P2、数据方P3采用秘密分享的乘法协议计算差值2与乘积117的乘积为234,检索方得到乘积234的值,比较值D=234。
由于比较值D=234>0,所以位置索引值8对应的数据不在子区间2内。
然后,对子区间3进行判断:
检索方P1、数据方P2、数据方P3采用秘密分享算法计算子区间3对应的比较值D,检索方P1得到比较值D的明文值,具体步骤如下:
检索方P1、数据方P2、数据方P3采用秘密分享的加法协议计算出落在子区间1、子区间2、子区间3的数据总数为9,检索方P1、数据方P2、数据方P3各自持有数据总数9对应的秘密分片;
检索方P1、数据方P2、数据方P3采用秘密分享的减法协议计算8-9,得到差值-1,检索方P1、数据方P2、数据方P3各自持有差值-1对应的秘密分片;
检索方P1随机生成一个随机数11,数据方P2随机生成一个随机数5,数据方P3随机生成一个随机数3,检索方P1、数据方P2、数据方P3采用秘密分享的乘法协议计算出所有随机数的乘积为165,检索方P1、数据方P2、数据方P3各自持有乘积165对应的秘密分片;
检索方P1、数据方P2、数据方P3采用秘密分享的乘法协议计算差值-1与乘积165的乘积为-165,检索方得到乘积234的值,比较值D=-165。
由于比较值D=-165<0,所以位置索引值8对应的数据在子区间3内;
检索方P1、数据方P2、数据方P3采用秘密分享的加法协议计算出落在子区间1、子区间2的数据总数6,检索方P1、数据方P2、数据方P3各自持有数据总数6对应的秘密分片;
检索方、数据方采用秘密分享的减法协议计算8-6,得到差值2,检索方、数据方各自持有差值2对应的秘密分片,将差值2作为变量y的值,即y=2。
将子区间3作为新的检索区间,将新的检索区间等分为4个子区间,将4个子区间依次编号,分别为子区间1、子区间2、子区间3、子区间4,子区间1为[10,11.25),子区间2为[11.25,12.5),子区间3为[12.5,13.75),子区间4为[13.75,15],检索方P1、数据方P2、数据方P3统计自身持有的数据落在每个子区间中的个数,如图3所示。
首先,对子区间1进行判断:
检索方P1、数据方P2、数据方P3采用秘密分享算法计算子区间1对应的比较值D,检索方P1得到比较值D的明文值,具体步骤如下:
检索方P1、数据方P2、数据方P3采用秘密分享的加法协议计算出落在子区间1的数据总数为2,检索方P1、数据方P2、数据方P3各自持有数据总数2对应的秘密分片;
检索方P1、数据方P2、数据方P3采用秘密分享的减法协议计算2-2,得到差值0,检索方P1、数据方P2、数据方P3各自持有差值0对应的秘密分片;
检索方P1随机生成一个随机数7,数据方P2随机生成一个随机数3,数据方P3随机生成一个随机数7,检索方P1、数据方P2、数据方P3采用秘密分享的乘法协议计算出所有随机数的乘积为147,检索方P1、数据方P2、数据方P3各自持有乘积147对应的秘密分片;
检索方P1、数据方P2、数据方P3采用秘密分享的乘法协议计算差值0与乘积147的乘积为0,检索方得到乘积0的值,比较值D=0,所以位置索引值p对应的数据为子区间1内的最大值。
由于检索方P1没有数据落在子区间1中,检索方P1将子区间1的左边界值10作为落在子区间1中的自身持有的数据的最大值,数据方P2统计落在子区间1中的自身持有的数据的最大值为10,数据方P3统计落在子区间1中的自身持有的数据的最大值为11,检索方P1、数据方P2、数据方P3采用秘密分享算法的比较协议对10、10、11三个值进行比较,找出最大的值为11,检索方得到最大值11的明文值,所以位置索引值p对应的数据为11,计算结果正确。
Claims (3)
1.一种基于秘密分享的多方联合数据检索方法,所述多方包括检索方和两个以上数据方,其特征在于,包括以下步骤:
S1:检索方、数据方各自统计自身持有的数据的数量,采用秘密分享算法计算出所有数据的总数量m,检索方确定要检索数据在所有数据中的位置索引值p,1≤p≤m;
S2:检索方、数据方协商确定检索区间;
S3:检索方、数据方统一将检索区间等分为n个子区间,检索方、数据方统计自身持有的数据落在每个子区间中的个数;
S4:检索方、数据方采用秘密分享算法判断位置索引值p对应的数据是否是某个子区间中最大的数据或最小的数据,如果是,则执行步骤S5,如果不是,则找出位置索引值p对应的数据所在的子区间,将该子区间作为新的检索区间,跳转至步骤S3;
S5:检索方在数据方的配合下采用秘密分享算法找出该子区间中最大的数据或最小的数据作为位置索引值p对应的数据;
所述步骤S1还包括以下步骤:检索方设定变量y,变量y的初始值=位置索引值p;
所述步骤S2包括以下步骤:所述检索方、数据方各自统计自身持有的数据的最大值和最小值,采用秘密分享算法的比较协议对所有最大值进行比较、对所有最小值进行比较,得到所有数据的最大值Vmax和最小值Vmin,检索区间为[Vmin, Vmax];
所述步骤S4包括以下步骤:
S41:将n个子区间依次编号为1、2……n,设定变量i,1≤i≤n,变量i的初始值为1;
S42:检索方、数据方采用秘密分享算法计算编号为i的子区间对应的比较值D,检索方得到比较值D的明文值;
S43:如果D=0,则表示位置索引值p对应的数据为编号为i的子区间内的最大值,执行步骤S5;
如果D<0,则表示位置索引值p对应的数据在编号为i的子区间内,将编号为i的子区间作为新的检索区间,如果i=1,则跳转至步骤S3,如果i>1,则执行步骤S44;
如果D>0,则表示位置索引值p对应的数据不在编号为i的子区间内,执行以下步骤:
检索方、数据方采用秘密分享算法计算编号为i的子区间对应的比较值E,检索方得到比较值E的明文值,判断比较值E是否为0,如果是,则表示位置索引值p对应的数据为编号为i+1的子区间内的最小值,执行步骤S5,如果不是,则给i赋值i=i+1,跳转至步骤S42;
S44:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i-1的子区间的数据总数x,检索方、数据方各自持有数据总数x对应的秘密分片;
检索方、数据方采用秘密分享的减法协议计算y-x,得到差值v,检索方、数据方各自持有差值v对应的秘密分片,将差值v作为变量y的值,接着跳转至步骤S3;
所述步骤S42包括以下步骤:
S421:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i的子区间的数据总数a,检索方、数据方各自持有数据总数a对应的秘密分片;
S422:检索方、数据方采用秘密分享的减法协议计算y-a,得到差值b,检索方、数据方各自持有差值b对应的秘密分片;
S423:检索方、数据方各自随机生成一个大于1的随机数,检索方、数据方采用秘密分享的乘法协议计算出所有随机数的乘积c,检索方、数据方各自持有乘积c对应的秘密分片;
S424:检索方、数据方采用秘密分享的乘法协议计算差值b与乘积c的乘积d,检索方得到乘积d的明文值,将乘积d的明文值作为比较值D;
所述步骤S43中检索方、数据方采用秘密分享算法计算编号为i的子区间对应的比较值E的方法如下:
N1:检索方、数据方采用秘密分享的加法协议计算出落在编号为1至i的子区间的数据总数a,检索方、数据方各自持有数据总数a对应的秘密分片;
N2:检索方、数据方采用秘密分享的减法协议计算y-1-a,得到差值e,检索方、数据方各自持有差值e对应的秘密分片;
N3:检索方、数据方各自随机生成一个大于1的随机数,检索方、数据方采用秘密分享的乘法协议计算出所有随机数的乘积f,检索方、数据方各自持有乘积f对应的秘密分片;
N4:检索方、数据方采用秘密分享的乘法协议计算差值e与乘积f的乘积g,检索方得到乘积g的明文值,将乘积g的明文值作为比较值E;
所述步骤S5包括以下步骤:
如果位置索引值p对应的数据是某个子区间中最大的数据,则检索方、数据方各自统计落在该子区间中的自身持有的数据的最大值,采用秘密分享算法的比较协议对所有最大值进行比较,找出该子区间中最大的数据,检索方得到该最大的数据的明文值,该最大的数据的明文值就是位置索引值p对应的数据;
如果位置索引值p对应的数据是某个子区间中最小的数据,则检索方、数据方各自统计落在该子区间中的自身持有的数据的最小值,采用秘密分享算法的比较协议对所有最小值进行比较,找出该子区间中最小的数据,检索方得到该最小的数据的明文值,该最小的数据的明文值就是位置索引值p对应的数据。
2.根据权利要求1所述的一种基于秘密分享的多方联合数据检索方法,其特征在于,所述步骤S5中检索方、数据方各自统计落在该子区间中的自身持有的数据的最大值时,如果检索方自身持有的数据没有落在该子区间中,则检索方选取一个小于或等于该子区间左边界值的数值作为落在该子区间中的自身持有的数据的最大值,如果数据方自身持有的数据没有落在该子区间中,则数据方选取一个小于或等于该子区间左边界值的数值作为落在该子区间中的自身持有的数据的最大值。
3.根据权利要求1所述的一种基于秘密分享的多方联合数据检索方法,其特征在于,所述步骤S5中检索方、数据方各自统计落在该子区间中的自身持有的数据的最小值时,如果检索方自身持有的数据没有落在该子区间中,则检索方选取一个大于或等于该子区间右边界值的数值作为落在该子区间中的自身持有的数据的最小值,如果数据方自身持有的数据没有落在该子区间中,则数据方选取一个大于或等于该子区间右边界值的数值作为落在该子区间中的自身持有的数据的最小值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310851675.6A CN116579021B (zh) | 2023-07-12 | 2023-07-12 | 一种基于秘密分享的多方联合数据检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310851675.6A CN116579021B (zh) | 2023-07-12 | 2023-07-12 | 一种基于秘密分享的多方联合数据检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116579021A CN116579021A (zh) | 2023-08-11 |
CN116579021B true CN116579021B (zh) | 2024-04-05 |
Family
ID=87534464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310851675.6A Active CN116579021B (zh) | 2023-07-12 | 2023-07-12 | 一种基于秘密分享的多方联合数据检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116579021B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019202586A1 (en) * | 2018-04-17 | 2019-10-24 | B. G. Negev Technologies & Applications Ltd., At Ben-Gurion | One-round secure multiparty computation of arithmetic streams and evaluation of functions |
CN115080615A (zh) * | 2022-06-07 | 2022-09-20 | 蚂蚁区块链科技(上海)有限公司 | 基于多方安全计算的数据查询方法及装置 |
CN115134078A (zh) * | 2022-07-08 | 2022-09-30 | 蓝象智联(杭州)科技有限公司 | 一种基于秘密分享的统计方法、装置及存储介质 |
CN115189878A (zh) * | 2022-09-08 | 2022-10-14 | 蓝象智联(杭州)科技有限公司 | 一种基于秘密分享的共享数据排序方法及电子设备 |
CN115941181A (zh) * | 2023-02-02 | 2023-04-07 | 华控清交信息科技(北京)有限公司 | 一种乱序秘密分享方法、***和可读存储介质 |
CN116401423A (zh) * | 2023-03-31 | 2023-07-07 | 杭州博盾习言科技有限公司 | 基于安全多方计算的中位数确定方法、装置、设备及介质 |
-
2023
- 2023-07-12 CN CN202310851675.6A patent/CN116579021B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019202586A1 (en) * | 2018-04-17 | 2019-10-24 | B. G. Negev Technologies & Applications Ltd., At Ben-Gurion | One-round secure multiparty computation of arithmetic streams and evaluation of functions |
CN115080615A (zh) * | 2022-06-07 | 2022-09-20 | 蚂蚁区块链科技(上海)有限公司 | 基于多方安全计算的数据查询方法及装置 |
CN115134078A (zh) * | 2022-07-08 | 2022-09-30 | 蓝象智联(杭州)科技有限公司 | 一种基于秘密分享的统计方法、装置及存储介质 |
CN115189878A (zh) * | 2022-09-08 | 2022-10-14 | 蓝象智联(杭州)科技有限公司 | 一种基于秘密分享的共享数据排序方法及电子设备 |
CN115941181A (zh) * | 2023-02-02 | 2023-04-07 | 华控清交信息科技(北京)有限公司 | 一种乱序秘密分享方法、***和可读存储介质 |
CN116401423A (zh) * | 2023-03-31 | 2023-07-07 | 杭州博盾习言科技有限公司 | 基于安全多方计算的中位数确定方法、装置、设备及介质 |
Non-Patent Citations (3)
Title |
---|
Morohashi,G等.Secure multiparty computation for comparator networks.SEP 2008.2008,全文. * |
保护私有信息的选择问题研究;张永华;中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑;20140915;全文 * |
秘密区间与阈值的保密判定;成雯;李顺东;王文丽;;计算机科学与探索(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116579021A (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230087864A1 (en) | Secure multi-party computation method and apparatus, device, and storage medium | |
CN115051791B (zh) | 一种基于密钥协商的高效三方隐私集合求交方法及*** | |
CN111523144A (zh) | 针对多方的隐私数据进行安全运算的方法和装置 | |
Zhou et al. | Continuous leakage-resilient public-key encryption scheme with CCA security | |
CN112532383B (zh) | 一种基于秘密分享的隐私保护计算方法 | |
CN114255037A (zh) | 隐私保护下的多方联合排序方法和数据处理方法 | |
CN116361649A (zh) | 一种基于布隆过滤器及哈希的高效非平衡psi | |
CN111460510A (zh) | 基于隐私保护确定相同业务数据的方法及装置 | |
CN112685788B (zh) | 数据处理方法和装置 | |
CN114036581A (zh) | 基于神经网络模型的隐私计算方法 | |
CN116579021B (zh) | 一种基于秘密分享的多方联合数据检索方法 | |
CN112272082B (zh) | 图像加密/解密的方法及装置、电子设备、存储介质 | |
CN111082990B (zh) | 一种区块链的共识方法、装置、设备及存储介质 | |
Järvinen et al. | Faster privacy‐preserving location proximity schemes for circles and polygons | |
WO2024138854A1 (zh) | 联邦学习预测阶段隐私保护方法及*** | |
CN110807211A (zh) | 安全获取用户交集的方法、***、可读介质及电子设备 | |
CN112668036B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN110851487B (zh) | 数据统计方法和装置 | |
Sun et al. | A privacy‐preserving density peak clustering algorithm in cloud computing | |
Pathak et al. | Tri-TTP based architecture for secure multi-party computations using virtual parties | |
CN113239202B (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN117640248B (zh) | 基于区块链的电力数据共享方法及装置 | |
CN115412364B (zh) | 一种无需第三方的多方安全求交集的方法、***和介质 | |
Kitbumrung et al. | ECC dynamic point encoding on mobile device | |
CN116244650B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |