CN118536150A - 基于同态秘密共享的隐私保护数据库join类型查询方法、系统及设备 - Google Patents
基于同态秘密共享的隐私保护数据库join类型查询方法、系统及设备 Download PDFInfo
- Publication number
- CN118536150A CN118536150A CN202410488387.3A CN202410488387A CN118536150A CN 118536150 A CN118536150 A CN 118536150A CN 202410488387 A CN202410488387 A CN 202410488387A CN 118536150 A CN118536150 A CN 118536150A
- Authority
- CN
- China
- Prior art keywords
- secret
- homomorphic
- encrypted
- secret sharing
- private key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 239000000654 additive Substances 0.000 claims description 14
- 230000000996 additive effect Effects 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000010276 construction Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 9
- 239000002243 precursor Substances 0.000 claims description 9
- 230000002776 aggregation Effects 0.000 claims description 8
- 238000004220 aggregation Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000005520 cutting process Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 5
- 238000013461 design Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012946 outsourcing Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于同态秘密共享的隐私保护数据库JOIN类型查询方法、系统及设备,方法包括设置阶段和查询阶段,在设置阶段生成Paillier加密的公钥N、私钥d及加密私钥E(d),而后打包送至客户;在查询阶段,客户将加密的客户表发送云服务器,根据查询者指令执行查询任务;云服务器根据同态秘密共享私钥eki,将加密的客户表中的加密值Ix本地转化为秘密份额,云服务器获取各自的秘密份额表;各个云服务器根据拥有的加密的客户表和秘密份额表执行安全连接协议,分别得到连接表的秘密份额;查询者根据各连接表的秘密份额重构连接表。本发明通过结合不经意排序和同态秘密共享的特点,设计安全连接协议,避免了匹配阶段的通信开销。
Description
技术领域
本发明属于云端数据保护的技术领域,具体涉及一种基于同态秘密共享的隐私保护数据库JOIN类型查询方法、系统及设备。
背景技术
随着云计算的发展和日益成熟,越来越多的机构或个人倾向于将自己的数据以加密的方式上传到云端,数据库所有者可以在云端执行相关查询,从而释放了本地的算力和存储空间。在此基础上,一种常见的实用需求是云端服务器存在多个数据集,每个数据集由不同的所有者上传。数据所有者彼此不信任,但是希望对数据集的相同属性执行查询,如对广告的有效程度的衡量,这可以通过计算浏览广告的用户信息(由广告发送方持有)和完成相应交易的用户信息(由商家持有)的交集来计算。在查询执行的过程中,不得向其他实体泄露除了查询内容之外的任务其他信息。
同时,在查询任务中,传统的方法将隐私集合求交协议当成密态数据库Join的构建块,虽然隐私集合求交协议可以用于识别出相同元素,但是隐私集合求交仅要求输出相同元素,对应到join查询中,即仅输出相同的连接键元素。为了能够获取更多的信息,在实际查询中,往往还需要输出其他属性,或是整个连接表,因此隐私集合求交的方法不满足数据对齐的要求。
另外,已有技术使用传统的秘密共享来构建协议,这使得在连接的匹配阶段,不可以避免要调用电路转换协议和比较协议,导致需要承担大量的通信和计算。
因此,如何能够提供一种既能满足输出多属性的对齐要求,又能减少通信和计算的高效安全的安全连接协议是目前亟待解决的问题。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于同态秘密共享的隐私保护数据库JOIN类型查询方法、系统及设备,通过结合不经意排序和同态秘密共享的特点,设计安全连接协议,避免了匹配阶段的通信开销。
为了达到上述目的,本发明采用以下技术方案:
第一方面,本发明提供了一种基于同态秘密共享的隐私保护数据库JOIN类型查询方法,包括设置阶段和查询阶段;
设置阶段:
生成Paillier加密的公钥N和私钥d,将私钥d以加性秘密共享的形式分别发送至i个云服务器,云服务器获取同态秘密共享私钥eki;对私钥d进行Paillier加密,获取加密私钥E(d);将公钥N和加密私钥E(d)打包作为同态秘密共享的公钥pk(N,E(d))发送至客户;
查询阶段:
客户将自己表中的每个元素x通过同态秘密算法进行转化成加密值Ix,获取加密的客户表;
将加密的客户表上传至云服务器;
云服务器收到查询者指令,开始执行查询任务;云服务器根据同态秘密共享私钥eki,将加密的客户表中的加密值Ix本地转化为秘密份额,云服务器获取各自的秘密份额表;各个云服务器根据拥有的加密的客户表和秘密份额表执行安全连接协议,分别得到连接表的秘密份额;
查询者根据各连接表的秘密份额重构连接表。
作为优选的技术方案,所述云服务器的数量为2,分别为P0和P1;所述加性秘密共享包括秘密分发和秘密重构;
秘密分发:设有环长度为l比特;秘密管理员随机选择数值然后将s-r发送给P0,r发送给P1,其中s-r和r为秘密份额,记作
秘密重构:P0将秘密份额发送给秘密管理员,P1将秘密份额发送给秘密管理员,秘密管理员计算重构得到秘密s。
作为优选的技术方案,所述通过同态秘密算法进行转化成加密值Ix,包括:
客户需要将自己表中的每一个元素x通过Paillier加密得到E(x),并通过Paillier的加法同态性对dx进行加密获取E(dx),如下式:
E(dx)=rNE(d)x
将每一个元素x转换成加密值Ix(E(x),E(dx))。
作为优选的技术方案,所述安全连接协议包括基于不经意排序的对齐操作和基于同态秘密共享的匹配操作;
所述基于不经意排序的对齐操作,包括以下步骤:
对加密的客户表中的所有元素进行排序,将相同的元素进行堆积操作;
利用基数排序将加密的客户表中整数按位数切割成不同的数字,然后按每个位数分别比较,截取连接表构造部分前体;
所述基于同态秘密共享的匹配操作,包括以下步骤:
对连接表构造部分前体中每一行进行匹配已筛选存在交集的元素;
保留存在交集的部分,将不存在交集的部分清零,获取连接表的秘密份额。
作为优选的技术方案,所述云服务器的数量为2,将其加密的客户表记为集合A和B;所述基于不经意排序的对齐操作,还包括:
将两个云服务器的加密的客户表拼接为数组B||A||B,对数组B||A||B进行排序生成置换ρ;
构造数组D=(dn||0n||-dn),将数组D的每一个0依次对应集合A中的每一个元素;将置换ρ作用到数组D中,对置换后的数组D进行前缀和;将前缀和后的数组D逆置换,原始数组D中的0对应集合A的元素,如果原始数组D与集合A存在交集,则将前缀和后的数组D的特定序列中的0赋值d,其他元素数值不变;
所述特定序列包括d||0||-d序列;
其中dn表示n个私钥数据的连接。
作为优选的技术方案,所述云服务器的数量为2,所述连接表构造部分前体包括表A和表B;所述保留存在交集的部分,将不存在交集的部分清零,包括以下步骤:
对表A调用同态秘密共享的乘法操作,将数组D与表A的各属性逐行相乘其中D[j]表示数组D的第j个元素,表示表A的第j行i列元素的同态秘密共享形式;
对表B调用态秘密共享的秘密份额转化操作,将表B的加密值转化为秘密份额;重新构造数组B′=B||0||-B,对表B与表A进行对齐;
获取连接表的秘密份额。
作为优选的技术方案,完成加密的客户表上传后,客户本地删除加密的客户表,将存储任务全部托管给云服务器;云服务器在空闲状态仅提供存储功能。
作为优选的技术方案,所述查询阶段,还包括聚合分析步骤,具体为:
对连接表进行单属性计算,在连接表一列中执行聚合函数,输出结果;
对连接表进行不同属性间计算,将连接表中的一列与另外一列进行运算,输出结果。
第二方面,本发明还提供了一种基于同态秘密共享的隐私保护数据库JOIN类型查询系统,应用于所述的基于同态秘密共享的隐私保护数据库JOIN类型查询方法,包括设置模块和查询模块;
设置模块,用于设置阶段,包括:
生成Paillier加密的公钥N和私钥d,将私钥d以加性秘密共享的形式分别发送至i个云服务器,云服务器获取同态秘密共享私钥eki;对私钥d进行Paillier加密,获取加密私钥E(d);将公钥N和加密私钥E(d)打包作为同态秘密共享的公钥pk(N,E(d))发送至客户;
查询模块,用于查询阶段,包括:
客户将自己表中的每个元素x通过同态秘密算法进行转化成加密值Ix,获取加密的客户表;
将加密的客户表上传至云服务器;
云服务器收到查询者指令,开始执行查询任务;云服务器根据同态秘密共享私钥eki,将加密的客户表中的加密值Ix本地转化为秘密份额,云服务器获取各自的秘密份额表;各个云服务器根据拥有的加密的客户表和秘密份额表执行安全连接协议,分别得到连接表的秘密份额;
查询者根据各连接表的秘密份额重构连接表。
第三方面,本发明提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的基于同态秘密共享的隐私保护数据库JOIN类型查询方法。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明采用了不经意排序和同态秘密共享的技术手段,能够在保证数据隐私的前提下,实现高效的数据库查询和聚合分析。相比于传统的秘密共享方案和ABY3协议,本发明减少了通信开销和计算复杂度,提高了查询效率;同时,本发明在将隐私集合求交扩展到密态连接时保持了输出表的紧凑型,省去了匹配阶段带来的开销。
(2)本发明的安全性依托与同态加密的底层构造,能够在外包框架下保护数据库查询中的隐私信息。本发明不需要采用高效但安全性若的分布式加密方案,避免了明文数据的暴露和敏感信息的泄露,有效保护了个人隐私。
(3)本发明通过构造特定的中间连接表将安全连接协议扩展到多表连接的情况,适用于更复杂的数据库查询场景。同时,聚合分析方案的设计也能应对非线性聚合函数的计算需求,提供了更广泛的功能支持。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例基于同态秘密共享的隐私保护数据库JOIN类型查询方法的流程图;
图2为本发明实施例的不同安全范式对比图;
图3为本发明实施例的基数排序示意图;
图4为本发明实施例的基于基数排序的单比特不经意排序示意图;
图5为本发明实施例的安全连接子协议示意图;
图6为本发明实施例的匹配阶段前的连接表构造部分前体示意图;
图7为本发明实施例的连接表示意图;
图8为本发明实施例基于同态秘密共享的隐私保护数据库JOIN类型查询系统的结构示意图;
图9为本发明实施例电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其他实施例相结合。
针对本实施例中提及的术语解释如下:
(1)安全多方计算:一种实现多个参与方基于自己的隐私输入共同计算一个函数得到输出的过程,该过程需要保证了各参与方输入和输出的隐私性,以及输出的正确性;
(2)隐私集合求交:指参与方在不泄露任何额外信息的情况下,得到其持有数据的交集。在这里,额外的信息指的是除了各参与方的数据交集以外的任何信息。
(3)Paillier半同态加密:是一种概率公钥加密系统。基于复合剩余类的困难问题,该加密算法是一种同态加密,满足加法和数乘同态。
(4)同态秘密共享:结合了秘密共享和同态加密的特点,一旦进行秘密分发给计算后,无论是加法还是乘法,计算方不需要再进行任何交互即可独立进行计算,同时避免了同态加密的密文膨胀,保持了安全多方计算的简洁形式。
实施例:
请参阅图1,本实施例提供了一种基于同态秘密共享的隐私保护数据库JOIN类型查询方法,包括设置阶段和查询阶段;
S1、设置阶段:
生成Paillier加密的公钥N和私钥d,将私钥d以加性秘密共享的形式分别发送至2个云服务器,云服务器获取同态秘密共享私钥两台服务器分别持有ek0和ek1;对私钥d进行Paillier加密,获取加密私钥E(d);将公钥N和加密私钥E(d)打包作为同态秘密共享的公钥pk(N,E(d))发送至客户;
本发明采用了同态加密算法,同态秘密共享是一类新型密码学原语,结合了秘密共享和同态加密的特点。与传统的加性秘密共享不同,一旦数据分发了不同的参与方,则无需在进行任何交互。可信第三方生成公钥pk和私钥d,数据持有方通过公钥pk对只身数据进行加密并发送给计算方,计算方可以根据持有的私钥份额本地计算加法和乘法。同态秘密共享包含两种类型的值:一种是加性秘密份额Mx,一种是通过某类加密方案加密的值Ix。其中加密值可以本地转化为秘密份额。如图2所示,与全同态加密相比,输出保持了简洁性;与加性秘密共享相比,不需要再计算时加性交互。同态秘密共享支持四类操作:
秘密份额相加:Mz=Mx+My;
加密值相加:Iz=Ix+Iy;
秘密份额和加密值相乘:Mz=Ix·My;
秘密份额转化:Mz←Ix。
具体地,在本实施例中,采用了Paillier算法,其基于复合剩余类难题,满足加法同态和数乘同态,具有非常高效的运行时性能。这种算法除了能实现数据的基本加密外,还能保证在密文上直接进行操作,其结果解密后与在明文上进行操作的结果一样。
再参见图1,本实施例考虑数据库外包的场景,其中客户端C将自己持有的数据表上传到云端服务器S,由服务器来负责提供存储空间和执行查询任务。为了方便理解本发明的实施方式,本实施例设置了两个云服务器,分别为P0和P1,其中接收到的客户表及其数值集合均成为A和B。所述客户表,以A为例,如表1所示:
表1
ID | A1 | A2 | … | An |
2 | 14 | 1 | … | 34 |
4 | 3 | 21 | … | 47 |
6 | 7 | 7 | … | 12 |
9 | 8 | 23 | … | 9 |
数据一般表示为数据库中的表,由连接键和其他属性组成。我们用(ID,A1,A2,…,An)表示用户CA的数据库表,其中ID表示连接键,Ai表示其他属性。
需要说明的是,为了实现将私钥d共享至云服务器,需要使用到秘密共享。秘密共享是一种安全多方计算中使用的基础技术模块,主要包括秘密分发和秘密重构两个阶段,其中有负责秘密分发和重构的秘密管理员和保存秘密份额的秘密参与方。
设有环秘密值其长度为l比特。秘密共享方案的秘密分发和重构操作有:秘密分发:秘密管理员随机选择然后将s-r发送给P0,r发送给P1,其中s-r和r通常称为秘密份额,记作秘密重构:P0将秘密份额发送给秘密管理员,P1将秘密份额发送给秘密管理员,秘密管理员计算重构得到秘密s。其中,本实施例用的形式来表示秘密值s的秘密份额,其中下标0和1分别表示该秘密份额分别由参与方P0和P1持有。
特别地,本实施例需要在秘密份额上进行算术运算,比如加法和乘法。假设有秘密值a和b已经通过算术秘密共享秘密分发给P0和P1,此时P0有P1有对于加法,P0和P1需要计算得到c=a+b的秘密份额对于乘法,P0和P1需要计算得到c=a·b的秘密份额对于加法运算,P0在本地计算P1在本地计算 即可。可以验证
具体而言,在本实施例中的框架下,云服务器所持有的同态秘密共享的私钥ek0和ek1,需要满足ek0+ek1=d。
S2、查询阶段:
S21、客户将自己表中的每个元素x通过同态秘密算法进行转化成加密值Ix,获取加密的客户表;
特别地,首先各客户需要将自己表中的每一个元素x通过Paillier加密得到E(x),除此之外,还需要对dx进行加密得到E(dx),这可以通过Paillier的加法同态性,即计算E(dx)=rNE(d)x。对于每个元素x,都需要进行x→(E(x),E(dx))的转化,本实施例用Ix来表示二元组(E(x),E(dx))。
S22、将加密的客户表上传至云服务器;
各客户将加密后的表上传到两台云服务器,此时,两台云服务器拥有相同的副本。之后客户端可以本地删除数据,将存储任务全部托管给云端服务器。云服务器在空闲状态仅提供存储功能,由于客户的表都进行了加密,因此保证了客户数据在云端存储的安全性。一旦收到了查询者的查询请求,便开始执行查询任务。详见步骤S23。
S23、云服务器收到查询者指令,开始执行查询任务;云服务器根据同态秘密共享私钥eki,将加密的客户表中的加密值Ix本地转化为秘密份额,云服务器获取各自的秘密份额表;各个云服务器根据拥有的加密的客户表和秘密份额表执行安全连接协议,分别得到连接表的秘密份额。
其中,本实施例结合不经意排序和同态秘密共享的特点,设计安全连接协议。下面给出安全连接协议的具体细节描述,对于连接,实际上可以分为两部分,一是对齐,二是匹配。对齐是为了使所有可能相同的元素映射或堆叠处在相同的位置,这能减少比较次数。而匹配是为了识别出相等的元素。
特别地,所述基于不经意排序的对齐操作,包括以下步骤:
对加密的客户表中的所有元素进行排序,将相同的元素进行堆积操作;
利用基数排序将加密的客户表中整数按位数切割成不同的数字,然后按每个位数分别比较,截取连接表构造部分前体。
其中,由于在实际查询中,除了需要输出要求输出相同元素,往往还需要输出其他属性,或是整个连接表。本实施例中采用不经意排序来实现对齐,其原理是将所有元素进行排序后,相同的元素总是连续的出现,利用这个特点便能将相同的元素的堆积在一起。
进一步地,利用基数排序在秘密共享份额实现排序,基数排序原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。将整数以二进制形式表示,则只需要实现0,1的基数排序,如图3所示。将二进制形式的每一列当成一个数组通过构造 辅助数组,并利用下面的公式便可计算出置换数组其中为原始数组的相同副本,为原始数组的取反数组;为数组的前缀和数组,为数组在初始值为最大值的前缀和数组。
之后将置换数组作用于数组便可实现排序,由于上述公式只涉及加法和乘法,所以其能自然地转换成秘密共享的实现形式,即:
更进一步地,请参阅图4和图5,为了实现紧凑型的输出,就需要除了对连接键对齐,还要保证其他属性也进行对齐。具体而言,对于A和B,本实施例的基于不经意排序的对齐操作,还包括:
将两个云服务器的加密的客户表拼接为数组B||A||B,对数组B||A||B进行排序生成置换ρ;
构造数组D=(dn||0n||-dn),将数组D的每一个0依次对应集合A中的每一个元素;将置换ρ作用到数组D中,对置换后的数组D进行前缀和;将前缀和后的数组D逆置换,原始数组D中的0对应集合A的元素,如果原始数组D与集合A存在交集,则将前缀和后的数组D的特定序列中的0赋值d,其他元素数值不变;
所述特定序列包括d||0||-d序列,其中dn表示n个私钥数据的连接。
截取这一个部分既可以作为连接表的构造部分。此时保持了连接表的输出紧凑型,具体实现步骤如图5所示。
特别地,本实施例在实现了对齐后,需要对每一行进行匹配已筛选存在交集的元素。如图6所示,其中Ai表示A表的第i个属性,是属性Ai的第j个元素,ID是两表的共同属性,也就是连接键。在此处,利用了改进的隐私集合求交PSI,相比传统的隐私集合求交,本实施例将PSI扩展到密态连接时保持了输出表的紧凑型,省去了匹配阶段带来的开销,具体为省去了进行秘密共享乘法带的开销,如下述步骤:
所述基于同态秘密共享的匹配操作,包括以下步骤:
对连接表构造部分前体中每一行进行匹配已筛选存在交集的元素;
保留存在交集的部分,将不存在交集的部分清零,获取连接表的秘密份额。
进一步地,对连接表进行筛选清理,即保留存在交集的部分,将不存在交集的部分清零。
筛选表A:由于数组D中的0原本就是与表A中的元素对齐,因此调用同态秘密共享的乘法操作,将数组D与表A的各属性逐行相乘即可保留存在交集的元素,同时将不存在交集的元素置0,其中D[j]表示数组D的第j个元素,表示表A的第j行i列元素的同态秘密共享形式。
筛选表B:数组B稍有不同,因为数组D只标注了表A存在交集的元素,因此需要对表B进行对齐操作,首先调用态秘密共享的秘密份额转化操作,将表B的加密值转化为秘密份额与对齐步骤类似,重新构造一个新数组B′=B||0||-B。在执行与对齐步骤相同的流程后,则将表B与表A对齐,同时将不存在交集的元素置0。
至此,计算方就完成了连接表的秘密份额构造,如图7所示。
S24、查询者根据各连接表的秘密份额重构连接表。
另外,除了安全连接协议外,在另外的一些实施例,还支持两大类操作,第一类是允许对连接表中的某一属性执行聚合分析,第二类聚合查询是允许在不同属性之间进行计算。
对于第一类,具体为:
对连接表进行单属性计算,在连接表一列中执行聚合函数,输出结果。
为了方便理解,该实施例可以执行以下指令:
SELECT MAX(X.column2)FROM X JOIN Y ON X.column=Y.column
这个SQL查询是一个联合查询(JOIN),它结合了X和Y两个表,并试图从这两个表中找出column2的最大值。
对于第二类,具体为:
对连接表进行不同属性间计算,将连接表中的一列与另外一列进行运算,输出结果。
假设有两张表:订单表包含有关订单的信息,包括每个订单的产品ID和数量。产品表包含有关产品的信息,包括产品ID和价格。为了计算每个订单的总价值,可以通过连接这个两个表进行联合分析。如下SQL查询所示:
SELECT Orders.Product-ID,
Orders.Quantity*Products.Price AS total_price
FROM Orders
JOIN Products ON Orders.Product-ID=Products.product-ID;
通过将每行的Price列的Quantity列的相乘,以获取总计每个订单的价值。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。
基于与上述实施例中的基于同态秘密共享的隐私保护数据库JOIN类型查询方法相同的思想,本发明还提供了基于同态秘密共享的隐私保护数据库JOIN类型查询系统,该系统可用于执行上述基于同态秘密共享的隐私保护数据库JOIN类型查询方法。为了便于说明,基于同态秘密共享的隐私保护数据库JOIN类型查询系统实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
请参阅图8,在本申请的另一个实施例中,提供了一种基于同态秘密共享的隐私保护数据库JOIN类型查询系统10,该系统包括设置模块11和查询模块12;
设置模块11,用于设置阶段,包括:
生成Paillier加密的公钥N和私钥d,将私钥d以加性秘密共享的形式分别发送至i个云服务器,云服务器获取同态秘密共享私钥eki;对私钥d进行Paillier加密,获取加密私钥E(d);将公钥N和加密私钥E(d)打包作为同态秘密共享的公钥pk(N,E(d))发送至客户;
查询模块12,用于查询阶段,包括:
客户将自己表中的每个元素x通过同态秘密算法进行转化成加密值Ix,获取加密的客户表;
将加密的客户表上传至云服务器;
云服务器收到查询者指令,开始执行查询任务;云服务器根据同态秘密共享私钥eki,将加密的客户表中的加密值Ix本地转化为秘密份额,云服务器获取各自的秘密份额表;各个云服务器根据拥有的加密的客户表和秘密份额表执行安全连接协议,分别得到连接表的秘密份额;
查询者根据各连接表的秘密份额重构连接表。
需要说明的是,本发明的基于同态秘密共享的隐私保护数据库JOIN类型查询系统与本发明的基于同态秘密共享的隐私保护数据库JOIN类型查询方法一一对应,在上述基于同态秘密共享的隐私保护数据库JOIN类型查询方法的实施例阐述的技术特征及其有益效果均适用于基于同态秘密共享的隐私保护数据库JOIN类型查询方法的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明。
此外,上述实施例的基于同态秘密共享的隐私保护数据库JOIN类型查询系统的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述基于同态秘密共享的隐私保护数据库JOIN类型查询系统的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
请参阅图9,在一个实施例中,提供了一种实现基于同态秘密共享的隐私保护数据库JOIN类型查询方法的电子设备,所述电子设备20可以包括第一处理器21、第一存储器22和总线,还可以包括存储在所述第一存储器22中并可在所述第一处理器21上运行的计算机程序,如基于同态秘密共享的隐私保护数据库JOIN类型查询程序23。
其中,所述第一存储器22至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述第一存储器22在一些实施例中可以是电子设备20的内部存储单元,例如该电子设备20的移动硬盘。所述第一存储器22在另一些实施例中也可以是电子设备20的外部存储设备,例如电子设备20上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述第一存储器22还可以既包括电子设备20的内部存储单元也包括外部存储设备。所述第一存储器22不仅可以用于存储安装于电子设备20的应用软件及各类数据,例如基于同态秘密共享的隐私保护数据库JOIN类型查询程序23的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述第一处理器21在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述第一处理器21是所述电子设备的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述第一存储器22内的程序或者模块,以及调用存储在所述第一存储器22内的数据,以执行电子设备20的各种功能和处理数据。
图9仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图9示出的结构并不构成对所述电子设备20的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
所述电子设备20中的所述第一存储器22存储的基于同态秘密共享的隐私保护数据库JOIN类型查询程序23是多个指令的组合,在所述第一处理器21中运行时,可以实现:
设置阶段:
生成Paillier加密的公钥N和私钥d,将私钥d以加性秘密共享的形式分别发送至i个云服务器,云服务器获取同态秘密共享私钥eki;对私钥d进行Paillier加密,获取加密私钥E(d);将公钥N和加密私钥E(d)打包作为同态秘密共享的公钥pk(N,E(d))发送至客户;
查询阶段:
客户将自己表中的每个元素x通过同态秘密算法进行转化成加密值Ix,获取加密的客户表;
将加密的客户表上传至云服务器;
云服务器收到查询者指令,开始执行查询任务;云服务器根据同态秘密共享私钥eki,将加密的客户表中的加密值Ix本地转化为秘密份额,云服务器获取各自的秘密份额表;各个云服务器根据拥有的加密的客户表和秘密份额表执行安全连接协议,分别得到连接表的秘密份额;
查询者根据各连接表的秘密份额重构连接表。进一步地,所述电子设备20集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其他介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.基于同态秘密共享的隐私保护数据库JOIN类型查询方法,其特征在于,包括设置阶段和查询阶段;
设置阶段:
生成Paillier加密的公钥N和私钥d,将私钥d以加性秘密共享的形式分别发送至i个云服务器,云服务器获取同态秘密共享私钥eki;对私钥d进行Paillier加密,获取加密私钥E(d);将公钥N和加密私钥E(d)打包作为同态秘密共享的公钥pk(N,E(d))发送至客户;
查询阶段:
客户将自己表中的每个元素x通过同态秘密算法进行转化成加密值Ix,获取加密的客户表;
将加密的客户表上传至云服务器;
云服务器收到查询者指令,开始执行查询任务;云服务器根据同态秘密共享私钥eki,将加密的客户表中的加密值Ix本地转化为秘密份额,云服务器获取各自的秘密份额表;各个云服务器根据拥有的加密的客户表和秘密份额表执行安全连接协议,分别得到连接表的秘密份额;
查询者根据各连接表的秘密份额重构连接表。
2.根据权利要求1所述基于同态秘密共享的隐私保护数据库JOIN类型查询方法,其特征在于,所述云服务器的数量为2,分别为P0和P1;所述加性秘密共享包括秘密分发和秘密重构;
秘密分发:设有环长度为l比特;秘密管理员随机选择数值然后将s-r发送给P0,r发送给P1,其中s-r和r为秘密份额,记作
秘密重构:P0将秘密份额发送给秘密管理员,P1将秘密份额发送给秘密管理员,秘密管理员计算重构得到秘密s。
3.根据权利要求1所述基于同态秘密共享的隐私保护数据库JOIN类型查询方法,其特征在于,所述通过同态秘密算法进行转化成加密值Ix,包括:
客户需要将自己表中的每一个元素x通过Paillier加密得到E(x),并通过Paillier的加法同态性对dx进行加密获取E(dx),如下式:
E(dx)=rNE(d)x
将每一个元素x转换成加密值Ix(E(x),E(dx))。
4.根据权利要求1所述基于同态秘密共享的隐私保护数据库JOIN类型查询方法,其特征在于,所述安全连接协议包括基于不经意排序的对齐操作和基于同态秘密共享的匹配操作;
所述基于不经意排序的对齐操作,包括以下步骤:
对加密的客户表中的所有元素进行排序,将相同的元素进行堆积操作;
利用基数排序将加密的客户表中整数按位数切割成不同的数字,然后按每个位数分别比较,截取连接表构造部分前体;
所述基于同态秘密共享的匹配操作,包括以下步骤:
对连接表构造部分前体中每一行进行匹配已筛选存在交集的元素;
保留存在交集的部分,将不存在交集的部分清零,获取连接表的秘密份额。
5.根据权利要求4所述基于同态秘密共享的隐私保护数据库JOIN类型查询方法,其特征在于,所述云服务器的数量为2,将其加密的客户表记为集合A和B;所述基于不经意排序的对齐操作,还包括:
将两个云服务器的加密的客户表拼接为数组B||A||B,对数组B||A||B进行排序生成置换ρ;
构造数组D=(dn||0n||-dn),将数组D的每一个0依次对应集合A中的每一个元素;将置换ρ作用到数组D中,对置换后的数组D进行前缀和;将前缀和后的数组D逆置换,原始数组D中的0对应集合A的元素,如果原始数组D与集合A存在交集,则将前缀和后的数组D的特定序列中的0赋值d,其他元素数值不变;
所述特定序列包括d||0||-d序列;
其中dn表示n个私钥数据的连接。
6.根据权利要求4所述基于同态秘密共享的隐私保护数据库JOIN类型查询方法,其特征在于,所述云服务器的数量为2,所述连接表构造部分前体包括表A和表B;所述保留存在交集的部分,将不存在交集的部分清零,包括以下步骤:
对表A调用同态秘密共享的乘法操作,将数组D与表A的各属性逐行相乘其中D[j]表示数组D的第j个元素,表示表A的第j行i列元素的同态秘密共享形式;
对表B调用态秘密共享的秘密份额转化操作,将表B的加密值转化为秘密份额;重新构造数组B′=B||0||-B,对表B与表A进行对齐;
获取连接表的秘密份额。
7.根据权利要求1所述基于同态秘密共享的隐私保护数据库JOIN类型查询方法,其特征在于,完成加密的客户表上传后,客户本地删除加密的客户表,将存储任务全部托管给云服务器;云服务器在空闲状态仅提供存储功能。
8.根据权利要求1所述基于同态秘密共享的隐私保护数据库JOIN类型查询方法,其特征在于,所述查询阶段,还包括聚合分析步骤,具体为:
对连接表进行单属性计算,在连接表一列中执行聚合函数,输出结果;
对连接表进行不同属性间计算,将连接表中的一列与另外一列进行运算,输出结果。
9.基于同态秘密共享的隐私保护数据库JOIN类型查询系统,其特征在于,应用于权利要求1-8中任一项所述的基于同态秘密共享的隐私保护数据库JOIN类型查询方法,包括设置模块和查询模块;
设置模块,用于设置阶段,包括:
生成Paillier加密的公钥N和私钥d,将私钥d以加性秘密共享的形式分别发送至i个云服务器,云服务器获取同态秘密共享私钥eki;对私钥d进行Paillier加密,获取加密私钥E(d);将公钥N和加密私钥E(d)打包作为同态秘密共享的公钥pk(N,E(d))发送至客户;
查询模块,用于查询阶段,包括:
客户将自己表中的每个元素x通过同态秘密算法进行转化成加密值Ix,获取加密的客户表;
将加密的客户表上传至云服务器;
云服务器收到查询者指令,开始执行查询任务;云服务器根据同态秘密共享私钥eki,将加密的客户表中的加密值Ix本地转化为秘密份额,云服务器获取各自的秘密份额表;各个云服务器根据拥有的加密的客户表和秘密份额表执行安全连接协议,分别得到连接表的秘密份额;
查询者根据各连接表的秘密份额重构连接表。
10.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-8中任意一项所述的基于同态秘密共享的隐私保护数据库JOIN类型查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410488387.3A CN118536150A (zh) | 2024-04-23 | 2024-04-23 | 基于同态秘密共享的隐私保护数据库join类型查询方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410488387.3A CN118536150A (zh) | 2024-04-23 | 2024-04-23 | 基于同态秘密共享的隐私保护数据库join类型查询方法、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118536150A true CN118536150A (zh) | 2024-08-23 |
Family
ID=92386791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410488387.3A Pending CN118536150A (zh) | 2024-04-23 | 2024-04-23 | 基于同态秘密共享的隐私保护数据库join类型查询方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118536150A (zh) |
-
2024
- 2024-04-23 CN CN202410488387.3A patent/CN118536150A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7292365B2 (ja) | ブロックチェーンからのデータのセキュアな抽出のための暗号方法及びシステム | |
US20190386814A1 (en) | Systems and Methods for Implementing an Efficient, Scalable Homomorphic Transformation of Encrypted Data with Minimal Data Expansion and Improved Processing Efficiency | |
US10664604B2 (en) | Securing SQL based databases with cryptographic protocols | |
US20190036678A1 (en) | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency | |
WO2019098941A1 (en) | System and method for private integration of datasets | |
CN110971390A (zh) | 一种用于智能合约隐私保护的全同态加密方法 | |
CN115455488B (zh) | 基于复制秘密共享的密态数据库查询方法及装置 | |
CN113761563B (zh) | 数据交集计算方法、装置及电子设备 | |
WO2023098294A1 (zh) | 异构数据处理方法、装置及电子设备 | |
WO2019094303A1 (en) | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency | |
Abadi et al. | Feather: Lightweight multi-party updatable delegated private set intersection | |
JP7222106B2 (ja) | プライバシーデータのアップリンク方法、デバイス及び記憶媒体 | |
CN113868693A (zh) | 一种在反洗钱中对数据进行隐私保护的查询方法及系统 | |
CN113239395A (zh) | 数据查询方法、装置、设备、存储介质及程序产品 | |
CN112182660A (zh) | 一种数据排序方法及装置 | |
Corena et al. | Secure and fast aggregation of financial data in cloud-based expense tracking applications | |
JP6605746B2 (ja) | 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム | |
CN114880715A (zh) | 一种基于同态加密智能合约的电力数据安全共享方法及系统 | |
CN110968883A (zh) | 一种基于区块链技术的数据管理方法、装置及存储介质 | |
Talviste | Applying secure multi-party computation in practice | |
Asharov et al. | Secure statistical analysis on multiple datasets: Join and group-by | |
CN112887281A (zh) | 支持高效审计和多备份密文去重的存储方法、系统及应用 | |
CN118536150A (zh) | 基于同态秘密共享的隐私保护数据库join类型查询方法、系统及设备 | |
CN113746621B (zh) | 一种基于区块链技术的多链架构信息共享系统 | |
CN115549998A (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 |