一种隐私保护的Skyline查询方法及系统技术方案

技术编号:35217356 阅读:24 留言:0更新日期:2022-10-15 10:32
本发明专利技术公开了一种隐私保护的Skyline查询方法及系统,本发明专利技术提供的方法中,使用轻量级加密技术对原始数据库和查询内容进行加密,并且可以实现安全的数据库映射、安全的Skyline元组获取以及安全的Skyline和被支配元组消除,在Skyline查询过程中,第一计算终端和第二计算终端不会获取到原始数据库内容、查询元组和查询结果,也不会获取到数据库的元组之间的支配关系,实现了高效的隐私保护的Skyline查询。询。询。

【技术实现步骤摘要】
一种隐私保护的Skyline查询方法及系统


[0001]本专利技术涉及信息安全
,特别涉及一种隐私保护的Skyline查询方法及系统。

技术介绍

[0002]由于云计算的种种优势,已经有越来越多的企业依托于商业云平台进行数据库的管理和查询。然而,数据库中可能包含大量的隐私敏感信息(如医疗记录或财务数据库记录),在云中部署这样的数据库查询服务可能带来严峻的隐私忧患。因此,亟需将隐私保护嵌入到这种数据库外包查询服务中,确保数据库信息、查询内容以及查询结果不被泄漏。
[0003]Skyline查询在不同领域的多准则决策系统中被广泛使用,例如网站信息系统,无线移动自组网和地理信息系统。特别是当量化每一维的权重十分困难时,Skyline查询能够筛去数据库中在任何维度都没有优势的数据,降低用户的决策复杂度。对于给定查询点(可以是一个元组),Skyline查询旨在检索出一个数据点集合(叫做Skyline点集),其中每个数据点都是不被该多维数据库中其他数据点支配的数据点。但是,在现有技术中,还没有可以实现隐私保护的Skyline查询方法。
[0004]因此,现有技术还有待改进和提高。

技术实现思路

[0005]针对现有技术的上述缺陷,本专利技术提供一种隐私保护的Skyline查询方法及系统,旨在解决现有技术中没有可以实现隐私保护的Skyline查询方法的问题。
[0006]为了解决上述技术问题,本专利技术所采用的技术方案如下:
[0007]本专利技术的第一方面,提供一种隐私保护的Skyline查询方法,所述方法包括:
[0008]第一计算终端和第二计算终端基于加性秘密共享,根据本地持有的查询元组的加性秘密共享份额和原始数据库的加性秘密共享份额获取映射数据库的加性秘密共享份额,所述映射数据库中的第i个元组中的第k个数值为所述原始数据库中的第i个元组的第k个属性值与所述查询元组的第k个属性值的差的绝对值;
[0009]所述第一计算终端和所述第二计算终端基于加性秘密共享获取第一比较结果的加性秘密共享份额,所述第一比较结果为所述映射数据库中的元组的属性和的比较结果,所述第一计算终端和所述第二计算终端基于所述第一比较结果的加性秘密共享份额获取所述映射数据库中最小的属性和的加性秘密共享份额,其中,元组的属性和为元组中各个值的和;
[0010]所述第一计算终端和所述第二计算终端根据所述第一比较结果获取所述映射数据库中的一个Skyline元组的加性秘密共享份额以及所述原始数据库中的一个Skyline元组的加性秘密共享份额,将所述原始数据库中的Skyline元组的加性秘密共享份额加入至查询结果集中;
[0011]所述第一计算终端和所述第二计算终端获取所述映射数据库中最小的属性和与
预设最大值的第二比较结果的加性秘密共享份额,所述第一计算终端和所述第二计算终端交换本地持有的所述第二比较结果的加性秘密共享份额,得到所述第二比较结果的明文信息;
[0012]若所述明文信息为所述映射数据库中最小的属性和小于所述预设最大值,则所述第一计算终端和所述第二计算终端基于加性秘密共享,根据所述映射数据库中Skyline元组的加性秘密共享份额分别获取所述映射数据库中的元组的第一标识信息和第二标识信息的加性秘密共享份额,其中,所述第一标识信息用于区分所述映射数据库中的一个Skyline元组和其他元组,所述第二标识信息用于区分所述映射数据库中的第一元组和第二元祖,所述第一元组为Skyline元组或被Skyline元组支配的元组,所述第二元祖为既不是Skyline元组也不是被Skyline元组支配的元组;
[0013]所述第一计算终端和所述第二计算终端基于本地持有的所述第二标识信息和所述第一标识信息的加性秘密共享份额对所述映射数据库中被Skyline元组支配的元组和一个Skyline元组的属性和的加性秘密共享份额进行更新,以使得所述映射数据库中被Skyline元组支配的元组和一个Skyline元组的属性和为所述预设最大值;
[0014]所述第一计算终端和所述第二计算终端重复执行所述基于加性秘密共享获取第一比较结果的加性秘密共享份额的步骤,直至所述明文信息为所述映射数据库中最小的属性和不小于所述预设最大值。
[0015]所述的隐私保护的Skyline查询方法,其中,所述第一计算终端和所述第二计算终端基于加性秘密共享,根据本地持有的查询元组的加性秘密共享份额和原始数据库的加性秘密共享份额获取映射数据库的加性秘密共享份额,包括:
[0016]所述第一计算终端和所述第二计算终端执行如下操作以获取a和b的差值的绝对值的加性秘密共享份额:
[0017]所述第一计算终端和所述第二计算终端基于加性秘密共享计算第一差值,以使得所述第一计算终端持有所述第一差值的一个加性秘密共享份额,所述第二计算终端持有所述第二差值的另一个加性秘密共享份额,其中,所述第一差值为a减去b得到的差值;
[0018]所述第一计算终端和所述第二计算终端基于加性秘密共享计算第二差值,以使得所述第一计算终端持有所述第二差值的一个加性秘密共享份额,所述第二计算终端持有所述第二差值的另一个加性秘密共享份额,其中,所述第二差值为b减去a得到的差值;
[0019]所述第一计算终端和所述第二计算终端获取a和b的比较结果的比特数据的最高有效位的布尔加性秘密共享份额,其中,当a<b时,a和b的比较结果的最高有效位为1,当a≥b时,a和b的比较结果的最高有效位为0;
[0020]所述第一计算终端和所述第二计算终端基于加性秘密共享计算第一预设公式以得到a和b的差值的绝对值的加性秘密共享份额;
[0021]所述第一预设公式为:
[0022]|a

b|=(a<b)
·
(b

a)+

(a<b)
·
(a

b)
[0023]其中,

表示取反操作,当a<b的时候,(a<b)=1,当a≥b的时候,(a<b)=0;
[0024]在基于加性秘密共享计算所述第一预设公式时,所述第一计算终端和所述第二计算终端通过两轮计算,在所述第一计算终端和所述第二计算终端分别持有x的两个布尔加性秘密共享份额,并且所述第一计算终端和所述第二计算终端分别持有y的两个算术加性
秘密共享份额的情况下,获取x和y的乘积的加性秘密共享份额;
[0025]其中,在第一轮计算中,所述第一计算终端作为发送方,所述第二计算终端作为接收方,在第二轮计算中,所述第一计算终端作为接收方,所述第二计算终端作为发送方;
[0026]在每轮计算中,发送方生成随机数r,并计算消息之后所述发送方保存所述随机数并将m0,m1发送给接收方,其中,为所述发送方本地保存的x的布尔加性秘密共享份额,为所述发送方本地保存的y的算术加性秘密共享份额;
[0027]所述接收方确定本地保存的布尔加性秘密共享份额是否为0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种隐私保护的Skyline查询方法,其特征在于,所述方法包括:第一计算终端和第二计算终端基于加性秘密共享,根据本地持有的查询元组的加性秘密共享份额和原始数据库的加性秘密共享份额获取映射数据库的加性秘密共享份额,所述映射数据库中的第i个元组中的第k个数值为所述原始数据库中的第i个元组的第k个属性值与所述查询元组的第k个属性值的差的绝对值;所述第一计算终端和所述第二计算终端基于加性秘密共享获取第一比较结果的加性秘密共享份额,所述第一比较结果为所述映射数据库中的元组的属性和的比较结果,所述第一计算终端和所述第二计算终端基于所述第一比较结果的加性秘密共享份额获取所述映射数据库中最小的属性和的加性秘密共享份额,其中,元组的属性和为元组中各个值的和;所述第一计算终端和所述第二计算终端根据所述第一比较结果获取所述映射数据库中的一个Skyline元组的加性秘密共享份额以及所述原始数据库中的一个Skyline元组的加性秘密共享份额,将所述原始数据库中的Skyline元组的加性秘密共享份额加入至查询结果集中;所述第一计算终端和所述第二计算终端获取所述映射数据库中最小的属性和与预设最大值的第二比较结果的加性秘密共享份额,所述第一计算终端和所述第二计算终端交换本地持有的所述第二比较结果的加性秘密共享份额,得到所述第二比较结果的明文信息;若所述明文信息为所述映射数据库中最小的属性和小于所述预设最大值,则所述第一计算终端和所述第二计算终端基于加性秘密共享,根据所述映射数据库中Skyline元组的加性秘密共享份额分别获取所述映射数据库中的元组的第一标识信息和第二标识信息的加性秘密共享份额,其中,所述第一标识信息用于区分所述映射数据库中的一个Skyline元组和其他元组,所述第二标识信息用于区分所述映射数据库中的第一元组和第二元祖,所述第一元组为Skyline元组或被Skyline元组支配的元组,所述第二元祖为既不是Skyline元组也不是被Skyline元组支配的元组;所述第一计算终端和所述第二计算终端基于本地持有的所述第二标识信息和所述第一标识信息的加性秘密共享份额对所述映射数据库中被Skyline元组支配的元组和一个Skyline元组的属性和的加性秘密共享份额进行更新,以使得所述映射数据库中被Skyline元组支配的元组和一个Skyline元组的属性和为所述预设最大值;所述第一计算终端和所述第二计算终端重复执行所述基于加性秘密共享获取第一比较结果的加性秘密共享份额的步骤,直至所述明文信息为所述映射数据库中最小的属性和不小于所述预设最大值。2.根据权利要求1所述的隐私保护的Skyline查询方法,其特征在于,所述第一计算终端和所述第二计算终端基于加性秘密共享,根据本地持有的查询元组的加性秘密共享份额和原始数据库的加性秘密共享份额获取映射数据库的加性秘密共享份额,包括:所述第一计算终端和所述第二计算终端执行如下操作以获取a和b的差值的绝对值的加性秘密共享份额:所述第一计算终端和所述第二计算终端基于加性秘密共享计算第一差值,以使得所述第一计算终端持有所述第一差值的一个加性秘密共享份额,所述第二计算终端持有所述第二差值的另一个加性秘密共享份额,其中,所述第一差值为a减去b得到的差值;
所述第一计算终端和所述第二计算终端基于加性秘密共享计算第二差值,以使得所述第一计算终端持有所述第二差值的一个加性秘密共享份额,所述第二计算终端持有所述第二差值的另一个加性秘密共享份额,其中,所述第二差值为b减去a得到的差值;所述第一计算终端和所述第二计算终端获取a和b的比较结果的比特数据的最高有效位的布尔加性秘密共享份额,其中,当a<b时,a和b的比较结果的最高有效位为1,当a≥b时,a和b的比较结果的最高有效位为0;所述第一计算终端和所述第二计算终端基于加性秘密共享计算第一预设公式以得到a和b的差值的绝对值的加性秘密共享份额;所述第一预设公式为:其中,表示取反操作,当a<b的时候,(a<b)=1,当a≥b的时候,(a<b)=0;在基于加性秘密共享计算所述第一预设公式时,所述第一计算终端和所述第二计算终端通过两轮计算,在所述第一计算终端和所述第二计算终端分别持有x的两个布尔加性秘密共享份额,并且所述第一计算终端和所述第二计算终端分别持有y的两个算术加性秘密共享份额的情况下,获取x和y的乘积的加性秘密共享份额;其中,在第一轮计算中,所述第一计算终端作为发送方,所述第二计算终端作为接收方,在第二轮计算中,所述第一计算终端作为接收方,所述第二计算终端作为发送方;在每轮计算中,发送方生成随机数r,并计算消息之后所述发送方保存所述随机数并将m0,m1发送给接收方,其中,为所述发送方本地保存的x的布尔加性秘密共享份额,为所述发送方本地保存的y的算术加性秘密共享份额;所述接收方确定本地保存的布尔加性秘密共享份额是否为0,若是,则保存m0,若否,则保存m1;两轮计算结束后,所述第一计算终端/所述第二计算终端将本地生成的所述随机数和保存的所述消息求和,分别得到x和y的乘积的一个加性秘密共享份额。3.根据权利要求2所述的隐私保护的Skyline查询方法,其特征在于,所述第一计算终端和所述第二计算终端获取a和b的比较结果的比特数据的最高有效位的布尔加性秘密共享份额,包括:所述第一计算终端和所述第二计算终端将本地持有的所述第一差值的加性秘密共享份额转换为比特数据,通过并行前缀加法电路进行计算以使得所述第一计算终端获取a和b的比较结果的比特数据的最高有效位的一个布尔加性秘密共享份额,所述第二计算终端获取a和b的比较结果的最高有效位的另一个布尔加性秘密共享份额。4.根据权利要求2所述的隐私保护的Skyline查询方法,其特征在于,所述第一计算终端和所述第二计算终端基于所述第一比较结果的加性秘密共享份额获取所述映射数据库中最小的属性和的加性秘密共享份额,包括:所述第一计算终端和所述第二计算终端通过如下操作获取a和b之间的最小值的加性秘密共享份额:所述第一计算终端和所述第二计算终端获取a和b的比较结果的比特数据的最高有效
位的布尔加性秘密共享份额,其中,当a<b时,a和b的比较结果的最高有效位为1,当a≥b时,a和b的比较结果的最高有效位为0;所述第一计算终端和所述第二计算终端基于加性秘密共享分别获取第一乘积的两个加性秘密共享份额,所述第一计算终端和所述第二计算终端基于加性秘密共享分别获取第二乘积的两个加性秘密共享份额,其中,所述第一乘积为a和b的比较结果的最高有效位与a的乘积,所述第二乘积a和b的比较结果的取反值与b的乘积;所述第一计算终端和所述第二计算终端基于加性秘密共享分别获取所述第一乘积和所述第二乘积的和的两个加性秘密共享份额作为a和b中的最小值的加性秘密共享份额。5...

【专利技术属性】
技术研发人员:郑宜峰王炜博王松磊
申请(专利权)人:哈尔滨工业大学深圳
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1