CN115455488B - 基于复制秘密共享的密态数据库查询方法及装置 - Google Patents
基于复制秘密共享的密态数据库查询方法及装置 Download PDFInfo
- Publication number
- CN115455488B CN115455488B CN202211420158.5A CN202211420158A CN115455488B CN 115455488 B CN115455488 B CN 115455488B CN 202211420158 A CN202211420158 A CN 202211420158A CN 115455488 B CN115455488 B CN 115455488B
- Authority
- CN
- China
- Prior art keywords
- secret
- share
- operator
- party
- sharing
- 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
Images
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/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
-
- 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/604—Tools and structures for managing or administering access control systems
Abstract
本发明公开了一种基于复制秘密共享的密态数据库查询方法及装置,方法包括:用户将查询需求编译成复制秘密共享下的安全多方计算原语并将其交递给计算层,计算层向存储层请求共享查询需求所对应数据的表;每个数据提供方调用布尔复制秘密共享算法生成秘密份额并传输给计算方;计算方调用安全三方计算算法并利用密态过滤算子、密态连接算子、密态排序算子和密态聚合算子中的一个或多个进行安全三方计算,得到秘密共享形式的计算结果的秘密共享份额并发送给用户;调用秘密重构算法将计算结果的秘密共享份额重构之后得到最终的查询结果。本发明每个数据提供方将自己的数据以秘密共享的形式分成三个秘密份额发给计算方,性能更好。
Description
技术领域
本发明属于数据隐私的技术领域,具体涉及一种基于复制秘密共享的密态数据库查询方法及装置。
背景技术
密态数据库查询中,需要从以下几个角度保护数据提供者的信息:1)保证元数据在查询计算之前/期间/之后不被泄露;2)保证用户的查询信息不被泄漏。隐私保护的密态查询方法可以使用户查询多个数据提供者的数据信息,而不泄露除了查询结果之外的任何信息,达到不泄露隐私的数据聚合目的。此外,隐私保护联合查询提供条件、排序、连接和聚合函数等多种操作,但其数据隐私需要有技术保障。目前用于密态数据库查询的安全技术有:
1.混淆电路方法:将多方参与的计算函数编译成布尔电路的形式,并将真值表打乱,从而实现计算电路的正常输出而不泄漏参与计算的参与方隐私。该方法虽然适用于布尔运算,但对于多数据提供方的情景下,每增加一个数据提供方都需要重新编译电路,虽然能实现可拓展性但开销巨大,且电路的深度与数据提供方数量成正比,其吞吐量和计算效率都较低。
2.Shamir门限秘密共享方法:将秘密(各数据提供方的数据)以多项式的形式分割成多份并分别发给多个计算参与方,从而使得低于门限个参与方无法重构出该秘密,等于或者多于门限个参与方可以重构。在这种秘密共享上,各参与方可以实现无需通信的加法以及需要通信的乘法。该方法适用于秘密共享下的算术运算,而数据库查询的计算大部分涉及的是布尔运算,但是Shamir秘密共享在布尔运算下的效率较低。并且重构秘密的计算量相对较大。
3.同态加密方法:各数据提供方使用密钥将各自的数据进行加密并发送到服务器,服务器利用同态加密的性质使用数据进行查询所需的计算。这种方式下,服务器只能看到密文状态下的数据,避免将数据直接暴露给服务器。该方法虽然能满足外包计算以及可拓展性的需求,但该方法在加密后的密文相对明文的数据量要大百万级别,在密文计算时的效率较低。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于复制秘密共享的密态数据库查询方法及装置,在保证较高安全性的同时,以较低的通信代价和较少的交互次数完成密态数据库查询的计算,符合可拓展性以及高性能的需求。
为了达到上述目的,本发明采用以下技术方案:
第一方面,本发明实施例提供了一种基于复制秘密共享的密态数据库查询方法,包括下述步骤:
用户将查询需求编译成复制秘密共享下的安全多方计算原语并将其交递给计算层,计算层向存储层请求共享查询需求所对应数据的表;
每个数据提供方i通过自己的输入数据x调用布尔复制秘密共享算法MPC.Shr (x)生成秘密份额第一秘密份额[x]1 B 、第二秘密份额[x]2 B 和第三秘密份额[x]3 B ,并通过安全信道将 [x]1 B 传输给第一计算方,将 [x]2 B 传输给第二计算方, 将 [x]3 B 传输给第三计算方,1≤i≤k;
计算方收到来自每个数据提供方传输的秘密份额后,调用安全三方计算算法MPC.Eval并利用密态过滤算子、密态连接算子、密态排序算子和密态聚合算子中的一个或多个进行相应的安全三方计算,得到秘密共享形式的计算结果的秘密共享份额[r]1 B ,[r]2 B , [r]3 B ,并发送给用户;
用户收到各方计算结果的秘密共享份额后,调用秘密重构算法MPC.Rec将计算结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B 重构之后得到最终的查询结果。
作为优选的技术方案,所述调用布尔复制秘密共享算法MPC.Shr (x)生成第一秘密份额[x]1 B 、第二秘密份额[x]2 B 和第三秘密份额[x]3 B ,具体为:
数据x作为输入,并输出三份秘密共享份额[x]1 B : x 1,x 2, [x]2 B : x 2,x 3, [x]3 B : x 1,x 3,满足x = x 1⊕x 2⊕x 3。
作为优选的技术方案,所述安全三方计算算法MPC.Eval具体为:
输入为秘密共享份额[x]1 B , [x]2 B , [x]3 B ,输出为计算结果的秘密共享份额[r]1 B ,[r]2 B , [r]3 B 。
作为优选的技术方案,所述密态过滤算子的计算过程如下:
首先,将查询语句编译成对应的底层操作算子;
其次,将所述底层操作算子转化成安全多方计算原语,而后完成计算;
最后,计算结果由一个单比特位份额 [r]B表示,如果符合查询谓词的条件,则设置为1,反之则为0。
作为优选的技术方案,所述密态连接算子的计算过程如下:
首先,编译器将连接谓词编译对应的底层操作算子;
其次,得到底层操作算子后,跟明文下的嵌套循环连接相似,对于左表中每个连接键,计算方根据连接谓词在右表中进行扫描匹配,如果连接谓词中出现算术运算,则使用B2A协议将该计算对应的布尔电路转换成算术电路进行计算,完成计算后,再使用A2B协议转换到布尔电路进行匹配;
最后,对于全连接,匹配过程中,连接算子会生成左表、右表的笛卡尔积组成一张新表,为新表的每一个元组添加了一个额外的比特r来表示该新表的左表元组t是否与右表元组t'匹配上;对于半连接,连接算子为左表添加一个额外属性r来存储结果位表示左表中该元组是否与右表的某个元组匹配上。
作为优选的技术方案,所述密态排序算子的计算过程如下:
所述密态排序算子实现的是密态下的比较-交换算法,在安全三方计算中的比较-交换运算中,参与方先共同计算两个字符串的最大值与最小值,并设置一个额外的比较结果,进而使用多路加法器来计算得到交换结果。
作为优选的技术方案,所述密态聚合算子的计算过程如下:
先使用密态排序算子基于聚合键对所有的元组进行排序,再扫描聚合键,进行安全比较运算,对于每一个元组添加一个额外的比特用来表示结果,当第一次扫描到某一元组时,比特设置为1,反之为0。
第二方面,本发明实施例还提供了一种基于复制秘密共享的密态数据库查询系统,包括查询请求模块、秘密共享模块、三方计算模块和重构模块;
所述查询请求模块,用于用户将查询需求编译成复制秘密共享下的安全多方计算原语并将其交递给计算层,计算层向存储层请求共享查询需求所对应数据的表;
所述秘密共享模块,用于每个数据提供方i通过自己的输入数据x调用布尔复制秘密共享算法MPC.Shr (x)生成秘密份额第一秘密份额[x]1 B 、第二秘密份额[x]2 B 和第三秘密份额[x]3 B ,并通过安全信道将 [x]1 B 传输给第一计算方,将 [x]2 B 传输给第二计算方, 将[x]3 B 传输给第三计算方,1≤i≤k;
所述三方计算模块,用于计算方收到来自每个数据提供方传输的秘密份额后,调用安全三方计算算法MPC.Eval并利用密态过滤算子、密态连接算子、密态排序算子和密态聚合算子中的一个或多个进行相应的安全三方计算,得到秘密共享形式的计算结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B ,并发送给用户;
所述重构模块,用于用户收到各方计算结果的秘密共享份额后,调用秘密重构算法MPC.Rec将查询结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B 重构之后得到最终的查询结果。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的基于复制秘密共享的密态数据库查询方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,存储有程序,所述程序被处理器执行时,实现所述的基于复制秘密共享的密态数据库查询方法。
本发明与现有技术相比,具有如下优点和有益效果:
本发明具有效率高和可拓展性好的优点。由于本发明使用的是复制秘密共享,由于混淆电路发送真值表需要大量的通信,其通信量相对于混淆电路方案有明显的优势。复制秘密共享重构秘密只需要简单的相加,而Shamir秘密共享需要进行拉格朗日插值法才能重构秘密,所以对于计算量本发明也有较大的优势。本发明使用安全三方外包计算架构,数据提供者可直接将自己的数据通过秘密共享的形式传输到三个计算方,对于数据提供者的数量是可以无限拓展的,所以其可拓展性相对于其他方案会好很多。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例基于复制秘密共享的密态数据库查询方法的流程图;
图2为本发明实施例密态过滤算子的计算流程图;
图3为本发明实施例密态连接算子的计算流程图;
图4为本发明实施例密态排序算子的计算流程图;
图5为本发明实施例密态聚合算子的计算流程图;
图6为本发明实施例基于复制秘密共享的密态数据库查询系统的方框图。
图7为本发明实施例电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
复制秘密共享:复制秘密共享是一种秘密分割存储的技术,包括秘密分发和秘密重构两个阶段。在秘密分发阶段,将秘密分成几部分(称为秘密份额),然后将秘密份额发送给参与者;在秘密重构阶段,若干个参与者一同协作正确恢复出原始秘密。
安全多方计算:安全多方计算是一种实现多个参与方基于自己的隐私输入共同计算一个函数得到输出的过程,该过程需要保证了各参与方输入和输出的隐私性,以及输出的正确性。
本申请利用复制秘密共享及电路转换的技术来实现多用户多存储方的隐私保护联合查询系统。该算法在保护数据存储方的隐私情况下,支持基本的查询操作:条件,连接,聚合函数以及排序,本申请中主要利用了下述三个算法:
1. 布尔复制秘密共享算法[x]1 B , [x]2 B , [x]3 B ← MPC.Shr (x):数据x作为输入,并输出三份秘密共享份额[x]1 B : x 1,x 2, [x]2 B : x 2,x 3, [x]3 B : x 1,x 3,满足x = x 1⊕x 2⊕x 3。
2. 安全三方计算算法[r]1 B , [r]2 B , [r]3 B ← MPC.Eval ([x]1 B , [x]2 B , [x]3 B ):输入为秘密共享份额[x]1 B , [x]2 B , [x]3 B ,根据实际的查询请求调用对应的查询算子,并将其组合,查询算子计算得到密文下的结果,输出为计算结果的秘密份额[r]1 B , [r]2 B , [r]3 B
3. 秘密重构算法r← MPC.Rec ([r]1 B , [r]2 B , [r]3 B ):输入为[r]1 B , [r]2 B ,[r]3 B 三份结果的秘密共享份额,输出为结果的明文。
请参阅图1,基于复制秘密共享的密态数据库查询方法,包括有数据提供方、计算方和用户,具体为:
数据提供方:本申请中数据提供方向查询操作提供数据,每个数据提供方数据相互独立,可能存在部分关系。以两个数据提供方为例,每个数据提供方根据用户的查询需求,提供其数据库中对应表的列,使用复制布尔秘密共享技术将数据共享给计算层中的三个计算方,计算方进行相应的计算后将结果(密文)返回给用户,用户重构出查询结果。
计算方:计算方主要接收到数据提供方秘密共享的数据,按照用户对应的查询操作完成秘密共享数据下的连接、条件等运算,并将秘密共享下的查询结果发送给用户。每个计算方只知道秘密的一部分(随机值),不会知道全部的秘密。
用户:用户主要将自己的查询需求编译成复制秘密共享下的安全多方计算原语并将其发送给计算层的三个计算方,计算方计算出查询的结果(密文)后发给用户,用户收到所有的秘密共享结果后将秘密重构得到明文下的结果。
请再次参阅图1,所述基于复制秘密共享的密态数据库查询方法,包括下述具体步骤:
S1、用户将查询需求编译成复制秘密共享下的安全多方计算原语并将其交递给计算层,计算层向存储层请求共享查询需求所对应数据的表;
S2、每个数据提供方i通过自己的输入数据x调用布尔复制秘密共享算法MPC.Shr(x)生成秘密份额第一秘密份额[x]1 B 、第二秘密份额[x]2 B 和第三秘密份额[x]3 B ,并通过安全信道将 [x]1 B 传输给第一计算方,将 [x]2 B 传输给第二计算方, 将 [x]3 B 传输给第三计算方,1≤i≤k;
S3、计算方收到来自每个数据提供方传输的秘密份额后,调用安全三方计算算法MPC.Eval并利用密态过滤算子、密态连接算子、密态排序算子和密态聚合算子中的一个或多个进行相应的安全三方计算,得到秘密共享形式的计算结果的秘密共享份额[r]1 B ,[r]2 B , [r]3 B ,并发送给用户.
进一步的,对密态过滤算子、密态连接算子、密态排序算子和密态聚合算子做具体说明:
(1)密态过滤算子:明文下的过滤算子是扫描表中所有的元组,根据查询谓词过滤出符合条件的元组。而在密态下的过滤算子拥有跟明文下过滤算子相同的语义。请参阅图2,查询执行时,系统首先查询语句编译成对应的底层操作算子,其中谓词可能是任意的逻辑表达式,还可以是算术表达式(+,*,=,>,<)。本申请将这些底层操作算子转化成安全多方计算原语,而后完成计算。计算结果由一个单比特位份额 [r]B表示,如果符合查询谓词的条件,则设置为1,反之则为0。注意到,为了防止向计算方泄露结果元组的数量信息,本申请的过滤算子不会像明文下的过滤算子那样在计算中消除元组,而是在用户重建结果时消除。
(2)密态连接算子:本系统的密态连接算子采用嵌套循环连接算法。明文下的嵌套连接是根据查询条件扫描其中一张表的连接键,对于该表的每一个连接键都将扫描另一张表的连接键进行匹配。
请参阅图3,本申请密态下连接算子的语义与明文下的连接算子基本一致,具体为:
第一步:编译器将连接谓词编译对应的底层操作算子,连接谓词可以是任意的逻辑表达式也可能出现算术表达式;
第二步:得到底层的操作算子后,跟明文下的嵌套循环连接相似,对于左表每个连接键,计算方根据连接谓词在右表进行扫描匹配,如果连接谓词中出现算术运算,则使用B2A协议将该计算对应的布尔电路转换成算术电路进行计算,完成计算后,再使用A2B协议转换到布尔电路进行匹配。
第三步:对于全连接,匹配过程中,连接算子会生成两张表的笛卡尔积组成一张新的表,类似于过滤算子,本申请为新表的每一个元组添加了一个额外的比特r来表示该新表的左表元组t是否与右表元组t'匹配上。对于半连接(左连接),连接算子为左表添加一个额外属性r来存储结果位表示左表中该元组是否与右表的某个元组匹配上。
(3)密态排序算子:明文下的排序算子是使用某种排序算法对排序属性的元组进行排序运算,其中不管是哪种排序算法,其基本思想都是比较-交换,所以密态下的排序算子主要实现的是密态下的比较-交换算法,只要实现了该子操作,本申请就能使用该子操作实现任意的排序算法。请参阅图4,在安全三方计算中的比较-交换运算中,参与方先共同计算两个字符串的最大值与最小值。本申请设置一个额外的比较结果,进而使用多路加法器来计算得到交换结果。
(4)密态聚合算子:明文下的聚合算子先将所有的元组基于聚合键进行排序,再对聚合键进行扫描,对聚合键相同的元组进行聚合,同时进行聚合函数的计算。本申请的密态聚合算子与明文下的步骤相似,请参阅图5,先使用密态排序算子基于聚合键对所有的元组进行排序,再扫描聚合键,进行安全比较运算。本申请对于每一个元组添加一个额外的比特用来表示结果,当第一次扫描到该元组时,该比特设置为1,反之为0。
S4、用户收到各方计算结果的秘密共享份额后,调用秘密重构算法MPC.Rec将计算结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B 重构之后得到最终的查询结果。
本发明针对目前密态数据库查询的性能差和拓展性差等问题,提出了一种基于复制秘密共享的密态数据库查询方法,每个数据提供方将自己的数据以秘密共享的形式分成三个秘密份额发给计算方,相较于基于Shamir秘密共享的密态数据库查询方案,性能更好,技术关键点如下:
1. 为解决查询中连接操作的效率问题,本发明使用秘密共享上的布谷鸟哈希连接方法进行连接操作,并使用超前进位加法器来优化底层计算中的比较运算,使效率得到大幅度提升。
2. 为尽最大可能减少数据在密文下进行计算,本发明提出预先共享思想,在条件操作或者连接操作时,如果运算中含有常数,则数据提供方预先进行部分计算并再将结果使用秘密共享发给计算方,使部分查询操作的效率大幅提升。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。
基于与上述实施例中的基于复制秘密共享的密态数据库查询方法相同的思想,本发明还提供了基于复制秘密共享的密态数据库查询系统,该系统可用于执行上述基于复制秘密共享的密态数据库查询方法。为了便于说明,基于复制秘密共享的密态数据库查询系统实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
请参阅图6,在本申请的另一个实施例中,提供了一种基于复制秘密共享的密态数据库查询系统100,该系统包括查询请求模块101、秘密共享模块102、三方计算模块103和重构模块104;
所述查询请求模块101,用于用户将查询需求编译成复制秘密共享下的安全多方计算原语并将其交递给计算层,计算层向存储层请求共享查询需求所对应数据的表;
所述秘密共享模块102,用于每个数据提供方i通过自己的输入数据x调用布尔复制秘密共享算法MPC.Shr (x)生成秘密份额第一秘密份额[x]1 B 、第二秘密份额[x]2 B 和第三秘密份额[x]3 B ,并通过安全信道将 [x]1 B 传输给第一计算方,将 [x]2 B 传输给第二计算方,将 [x]3 B 传输给第三计算方,1≤i≤k;
所述三方计算模块103,用于计算方收到来自每个数据提供方传输的秘密份额后,调用安全三方计算算法MPC.Eval并利用密态过滤算子、密态连接算子、密态排序算子和密态聚合算子中的一个或多个进行相应的安全三方计算,得到秘密共享形式的计算结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B ,并发送给用户;
所述重构模块104,用于用户收到各方计算结果的秘密共享份额后,调用秘密重构算法MPC.Rec将查询结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B 重构之后得到最终的查询结果。
需要说明的是,本发明的基于复制秘密共享的密态数据库查询系统与本发明的基于复制秘密共享的密态数据库查询方法一一对应,在上述基于复制秘密共享的密态数据库查询方法的实施例阐述的技术特征及其有益效果均适用于基于复制秘密共享的密态数据库查询的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明。
此外,上述实施例的基于复制秘密共享的密态数据库查询系统的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述基于复制秘密共享的密态数据库查询系统的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
请参阅图7,在一个实施例中,提供了一种实现基于复制秘密共享的密态数据库查询方法的电子设备,所述电子设备200可以包括第一处理器201、第一存储器202和总线,还可以包括存储在所述第一存储器202中并可在所述第一处理器201上运行的计算机程序,如基于复制秘密共享的密态数据库查询程序203。
其中,所述第一存储器202至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述第一存储器202在一些实施例中可以是电子设备200的内部存储单元,例如该电子设备200的移动硬盘。所述第一存储器202在另一些实施例中也可以是电子设备200的外部存储设备,例如电子设备200上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述第一存储器202还可以既包括电子设备200的内部存储单元也包括外部存储设备。所述第一存储器202不仅可以用于存储安装于电子设备200的应用软件及各类数据,例如基于复制秘密共享的密态数据库查询程序203的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述第一处理器201在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述第一处理器201是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述第一存储器202内的程序或者模块,以及调用存储在所述第一存储器202内的数据,以执行电子设备200的各种功能和处理数据。
图7仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图7示出的结构并不构成对所述电子设备200的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
所述电子设备200中的所述第一存储器202存储的基于复制秘密共享的密态数据库查询程序203是多个指令的组合,在所述第一处理器201中运行时,可以实现:
用户将查询需求编译成复制秘密共享下的安全多方计算原语并将其交递给计算层,计算层向存储层请求共享查询需求所对应数据的表;
每个数据提供方i通过自己的输入数据x调用布尔复制秘密共享算法MPC.Shr (x)生成秘密份额第一秘密份额[x]1 B 、第二秘密份额[x]2 B 和第三秘密份额[x]3 B ,并通过安全信道将 [x]1 B 传输给第一计算方,将 [x]2 B 传输给第二计算方, 将 [x]3 B 传输给第三计算方,1≤i≤k;
计算方收到来自每个数据提供方传输的秘密份额后,调用安全三方计算算法MPC.Eval并利用密态过滤算子、密态连接算子、密态排序算子和密态聚合算子中的一个或多个进行相应的安全三方计算,得到秘密共享形式的计算结果的秘密共享份额[r]1 B ,[r]2 B , [r]3 B ,并发送给用户;
用户收到各方计算结果的秘密共享份额后,调用秘密重构算法MPC.Rec将计算结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B 重构之后得到最终的查询结果。
进一步地,所述电子设备200集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、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 (9)
1.基于复制秘密共享的密态数据库查询方法,其特征在于,包括下述步骤:
用户将查询需求编译成复制秘密共享下的安全多方计算原语并将其交递给计算层,计算层向存储层请求共享查询需求所对应数据的表;
每个数据提供方i通过自己的输入数据x调用布尔复制秘密共享算法MPC.Shr (x)生成秘密份额第一秘密份额[x]1 B 、第二秘密份额[x]2 B 和第三秘密份额[x]3 B ,并通过安全信道将[x]1 B 传输给第一计算方,将[x]2 B 传输给第二计算方, 将[x]3 B 传输给第三计算方,1≤i≤k;
计算方收到来自每个数据提供方传输的秘密份额后,调用安全三方计算算法MPC.Eval并利用密态过滤算子、密态连接算子、密态排序算子和密态聚合算子中的一个或多个进行相应的安全三方计算,得到秘密共享形式的计算结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B ,并发送给用户;所述密态过滤算子的计算过程如下:
首先,将查询语句编译成对应的底层操作算子;
其次,将所述底层操作算子转化成安全多方计算原语,而后完成计算;
最后,计算结果由一个单比特位份额 [r]B表示,如果符合查询谓词的条件,则设置为1,反之则为0;
用户收到各方计算结果的秘密共享份额后,调用秘密重构算法MPC.Rec将计算结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B 重构之后得到最终的查询结果。
2.根据权利要求1所述基于复制秘密共享的密态数据库查询方法,其特征在于,所述调用布尔复制秘密共享算法MPC.Shr (x)生成第一秘密份额[x]1 B 、第二秘密份额[x]2 B 和第三秘密份额[x]3 B ,具体为:
数据x作为输入,并输出三份秘密共享份额[x]1 B : x 1,x 2, [x]2 B : x 2,x 3, [x]3 B : x 1,x 3,满足x = x 1⊕x 2⊕x 3。
3.根据权利要求1所述基于复制秘密共享的密态数据库查询方法,其特征在于,所述安全三方计算算法MPC.Eval具体为:
输入为秘密共享份额[x]1 B , [x]2 B , [x]3 B ,输出为计算结果的秘密共享份额[r]1 B ,[r]2 B , [r]3 B 。
4.根据权利要求1所述基于复制秘密共享的密态数据库查询方法,其特征在于,所述密态连接算子的计算过程如下:
首先,编译器将连接谓词编译对应的底层操作算子;
其次,得到底层操作算子后,跟明文下的嵌套循环连接相似,对于左表中每个连接键,计算方根据连接谓词在右表中进行扫描匹配,如果连接谓词中出现算术运算,则使用B2A协议将该计算对应的布尔电路转换成算术电路进行计算,完成计算后,再使用A2B协议转换到布尔电路进行匹配;
最后,对于全连接,匹配过程中,连接算子会生成左表、右表的笛卡尔积组成一张新表,为新表的每一个元组添加了一个额外的比特r来表示该新表的左表元组t是否与右表元组t'匹配上;对于半连接,连接算子为左表添加一个额外属性R来存储结果位表示左表中该元组是否与右表的某个元组匹配上。
5.根据权利要求1所述基于复制秘密共享的密态数据库查询方法,其特征在于,所述密态排序算子的计算过程如下:
所述密态排序算子实现的是密态下的比较-交换算法,在安全三方计算中的比较-交换运算中,参与方先共同计算两个字符串的最大值与最小值,并设置一个额外的比较结果,进而使用多路加法器来计算得到交换结果。
6.根据权利要求1所述基于复制秘密共享的密态数据库查询方法,其特征在于,所述密态聚合算子的计算过程如下:
先使用密态排序算子基于聚合键对所有的元组进行排序,再扫描聚合键,进行安全比较运算,对于每一个元组添加一个额外的比特用来表示结果,当第一次扫描到某一元组时,比特设置为1,反之为0。
7.基于复制秘密共享的密态数据库查询系统,其特征在于,包括查询请求模块、秘密共享模块、三方计算模块和重构模块;
所述查询请求模块,用于用户将查询需求编译成复制秘密共享下的安全多方计算原语并将其交递给计算层,计算层向存储层请求共享查询需求所对应数据的表;
所述秘密共享模块,用于每个数据提供方i通过自己的输入数据x调用布尔复制秘密共享算法MPC.Shr (x)生成秘密份额第一秘密份额[x]1 B 、第二秘密份额[x]2 B 和第三秘密份额[x]3 B ,并通过安全信道将 [x]1 B 传输给第一计算方,将 [x]2 B 传输给第二计算方, 将 [x]3 B 传输给第三计算方,1≤i≤k;
所述三方计算模块,用于计算方收到来自每个数据提供方传输的秘密份额后,调用安全三方计算算法MPC.Eval并利用密态过滤算子、密态连接算子、密态排序算子和密态聚合算子中的一个或多个进行相应的安全三方计算,得到秘密共享形式的计算结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B ,并发送给用户;所述密态过滤算子的计算过程如下:
首先,将查询语句编译成对应的底层操作算子;
其次,将所述底层操作算子转化成安全多方计算原语,而后完成计算;
最后,计算结果由一个单比特位份额 [r]B表示,如果符合查询谓词的条件,则设置为1,反之则为0;
所述重构模块,用于用户收到各方计算结果的秘密共享份额后,调用秘密重构算法MPC.Rec将查询结果的秘密共享份额[r]1 B , [r]2 B , [r]3 B 重构之后得到最终的查询结果。
8.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-6中任意一项所述的基于复制秘密共享的密态数据库查询方法。
9.一种计算机可读存储介质,存储有程序,其特征在于,所述程序被处理器执行时,实现权利要求1-6任一项所述的基于复制秘密共享的密态数据库查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211420158.5A CN115455488B (zh) | 2022-11-15 | 2022-11-15 | 基于复制秘密共享的密态数据库查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211420158.5A CN115455488B (zh) | 2022-11-15 | 2022-11-15 | 基于复制秘密共享的密态数据库查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115455488A CN115455488A (zh) | 2022-12-09 |
CN115455488B true CN115455488B (zh) | 2023-03-28 |
Family
ID=84295588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211420158.5A Active CN115455488B (zh) | 2022-11-15 | 2022-11-15 | 基于复制秘密共享的密态数据库查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115455488B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115982246B (zh) * | 2023-03-03 | 2023-08-04 | 阿里云计算有限公司 | 一种数据查询方法、设备、系统及存储介质 |
CN116471051B (zh) * | 2023-03-22 | 2024-04-02 | 电子科技大学 | 一种基于不经意传输协议的安全多方数据排序方法 |
CN116484432B (zh) * | 2023-06-21 | 2023-09-19 | 杭州金智塔科技有限公司 | 基于多方安全计算的纵向联合查询方法及装置 |
CN117118602B (zh) * | 2023-06-29 | 2024-02-23 | 济南大学 | 一种基于复制秘密分享的安全比较协议的实现方法及系统 |
CN117454435B (zh) * | 2023-12-22 | 2024-03-15 | 北京天润基业科技发展股份有限公司 | 基于秘密多项式的跨数据库统计方法、系统及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347473A (zh) * | 2020-11-06 | 2021-02-09 | 济南大学 | 支持双向隐私保护的机器学习安全聚合预测方法及系统 |
CN114239032A (zh) * | 2021-12-21 | 2022-03-25 | 贵州数据宝网络科技有限公司 | 基于安全多方计算的多方数据交互方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2668676C (en) * | 2006-11-07 | 2016-01-05 | Security First Corp. | Systems and methods for distributing and securing data |
JP5968484B1 (ja) * | 2015-03-18 | 2016-08-10 | 日本電信電話株式会社 | シェア復旧システム、シェア復旧方法、およびプログラム |
CN111541679B (zh) * | 2020-04-17 | 2021-04-16 | 武汉大学 | 一种云环境下基于秘密共享的图像安全检索方法 |
CN112148755A (zh) * | 2020-09-07 | 2020-12-29 | 支付宝(杭州)信息技术有限公司 | 基于秘密共享的隐私数据访问方法、装置、设备及系统 |
US20220224515A1 (en) * | 2021-01-10 | 2022-07-14 | Nec Corporation Of America | Multi-party computation (mpc) based key search in private data |
-
2022
- 2022-11-15 CN CN202211420158.5A patent/CN115455488B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347473A (zh) * | 2020-11-06 | 2021-02-09 | 济南大学 | 支持双向隐私保护的机器学习安全聚合预测方法及系统 |
CN114239032A (zh) * | 2021-12-21 | 2022-03-25 | 贵州数据宝网络科技有限公司 | 基于安全多方计算的多方数据交互方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115455488A (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115455488B (zh) | 基于复制秘密共享的密态数据库查询方法及装置 | |
Cui et al. | Efficient and expressive keyword search over encrypted data in cloud | |
Emekci et al. | Privacy preserving query processing using third parties | |
Hendricks et al. | Verifying distributed erasure-coded data | |
US8170216B2 (en) | Techniques for validating and sharing secrets | |
US10977114B2 (en) | Indexing and recovering encoded blockchain data | |
Dong et al. | Approximating private set union/intersection cardinality with logarithmic complexity | |
US20200068008A1 (en) | Block Chain Encoding With Fair Delay For Distributed Network Devices | |
US20210049066A1 (en) | Prioritizing shared blockchain data storage | |
US20210044422A1 (en) | Data security of shared blockchain data storage based on error correction code | |
CN112131227A (zh) | 一种基于联盟链的数据查询方法及装置 | |
CN109272316B (zh) | 一种基于区块链网络下的区块实现方法及系统 | |
CN115622684B (zh) | 基于全同态加密的隐私计算异构加速方法及装置 | |
Yang et al. | Achieving efficient and privacy-preserving multi-domain big data deduplication in cloud | |
US20210034460A1 (en) | Shared blockchain data storage based on error correction code | |
CN113343283B (zh) | 一种数据处理方法 | |
CN113761563A (zh) | 数据交集计算方法、装置及电子设备 | |
US20210073075A1 (en) | Dynamic blockchain data storage based on error correction code | |
CN113239395A (zh) | 数据查询方法、装置、设备、存储介质及程序产品 | |
CN114844621B (zh) | 基于多密钥全同态加密的多用户隐私保护机器学习方法及装置 | |
CN116541878A (zh) | 一种基于安全两方计算s型函数的隐私保护方法 | |
Bhangale et al. | Efficient adaptively-secure byzantine agreement for long messages | |
US10839087B2 (en) | Secure data aggregation in databases using dynamic bucketization and grouping bucketization | |
Humphries et al. | Selective mpc: Distributed computation of differentially private key-value statistics | |
CN114430321A (zh) | 基于dfa自适应安全的黑盒可追踪密钥属性加密方法及装置 |
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 |