一种安全高效的分布式k-d树构建方法

文档序号:37099043发布日期:2024-02-22 20:56阅读:14来源:国知局
一种安全高效的分布式k-d树构建方法

本发明属于数据结构,具体涉及一种安全高效的分布式k-d树构建方法。


背景技术:

1、云外包计算已经成为大数据时代存储和管理数据的新模式。随着数据隐私保护意识的增强和国内外隐私保护法律法规的颁布,数据拥有者逐渐以加密的形式将数据外包至云服务器,以保护敏感数据信息不被泄露。众所周知,加密技术会不可避免地影响外包数据的可用性,降低数据的查询效率。建立数据索引是提高外包数据查询效率的有效方式。当外包数据归属于一个数据拥有者时,数据拥有者可基于明文数据建立索引,并将加密索引和数据集一起外包至云服务器。在索引的助力下,云服务器能够高效地处理基于密态数据的查询请求,但建立此类查询索引的前提是数据必须集中存储在一个的数据拥有者。

2、当外包数据垂直分布在多个数据所有者时,为保护数据隐私,不同的数据所有者可能不愿意直接共享其数据来建立索引。为了解决分布式数据的安全查询问题,目前主流的方式是采用安全多方计算技术实现分布式数据查询。现有技术中存在一种针对垂直分布数据的安全前k个数据查询方法,该方法通过计算一个半径来分离排名第k的数据和第(k+1)的数据,并将数据的评分与该半径比较以获得前k个数据;同时,该方法利用安全多方计算技术方案实现安全数据比较保护数据拥有者的数据安全,最大限度地减少信息泄露。

3、美国西北大学的学者们提出了一种针对两方垂直数据的安全数据库语句查询方法。该方法通过引入可信第三方实现数据库语句查询处理操作的细粒度分割,并通过混淆电路技术保护基于多方数据协同计算过程的数据安全。基于上述方法,伦敦帝国学院和波士顿大学的学者们提出了一种基于秘密共享的查询编译器来加速数据库语句查询的方法,能够支持超过两个参与方的安全数据库查询。

4、为了进一步提高计算效率,美国西北大学和伊利诺伊大学的学者们利用轻量级的差分隐私技术和安全计算技术设计面向垂直分布数据的安全近似查询处理算法。北京航空航天大学的学者们提出了一种针对垂直数据的安全高效空间查询方案,该方法通过将空间查询处理步骤分解为尽可能多的明文处理操作和尽可能少的密文操作,并设计高效的安全协议实现密文操作,从而提高查询效率。基于类似的想法,北京航空航天大学的学者们还设计了一种安全的天际线查询方案,并提出了安全隐私集合求交协议提高查询效率。

5、虽然上述方法能够实现垂直数据的安全查询,但仍存在以下局限性:(1)现有方法多依赖于安全多方计算技术设计,导致数据所有者间具有较高的通信开销;(2)现有方法的查询处理是由数据拥有者协同完成,即数据所有者需要参与查询处理,导致数据所有者具有较大的计算开销,不适用于数据所有者资源受限的场景;(3)由于数据集垂直分布于多个数据拥有者,现有方法无法为数据建立高效的查询索引,导致查询效率较低。


技术实现思路

1、为了解决现有技术中存在的上述问题,本发明提供了一种安全高效的分布式k-d树构建方法。本发明要解决的技术问题通过以下技术方案实现:

2、本发明提供一种安全高效的分布式k-d树构建方法,应用于云外包查询系统,所述云外包查询系统包括:数据拥有者、可信第三方ttp、第一云服务器cs1和第二云服务器cs2;

3、所述方法包括:

4、ttp初始化生成两对安全密钥{pk,sk}和{pk#,sk#},并将{pk,pk#}公开发布给每个数据拥有者doj、第一云服务器cs1和第二云服务器cs2,将sk秘密发送给第二云服务器cs2,将sk#秘密发送给第一云服务器cs1;其中,{pk,pk#}为公钥,{sk,sk#}为私钥,doj表示k个数据拥有者中的第j个数据拥有者,1≤j≤k;

5、数据拥有者doj利用公钥pk对自身数据集xj中的数据进行加密,得到加密数据后,将加密数据外包至第一云服务器cs1;

6、第一云服务器cs1与第二云服务器cs2进行协同计算,基于接收到的外包数据集逐个构建k-d树的内部结点和叶子结点,得到加密的k-d树;其中,所述外包括数据集包括各个数据拥有者外包的加密数据。

7、在本发明的一个实施例中,第一云服务器cs1与所述第二云服务器cs2进行协同计算,基于接收到的外包数据集逐个构建k-d树的内部结点和叶子结点,得到加密的k-d树的步骤之前,还包括:

8、第一云服务器cs1判断所述外包数据集中是否仅包含一条数据;若是,则第一云服务器cs1建立包含该条数据的叶子结点;若否,则执行所述第一云服务器cs1与第二云服务器cs2进行协同计算,基于接收到的外包数据集逐个构建k-d树的内部结点和叶子结点,得到加密的k-d树的步骤。

9、在本发明的一个实施例中,数据拥有者doj利用公钥pk对自身数据集xj中的数据进行加密,得到加密数据后,将加密数据外包至第一云服务器cs1的步骤,包括:

10、数据拥有者doj对自身数据集xj中的数据进行排序,使每条数据拥有唯一的顺序值,xi,j表示数据集xj中的第i条数据,n表示数据集xj中共有n条数据,1≤i≤n;

11、数据拥有者doj利用公钥pk加密数据得到加密数据并将加密数据外包至第一云服务器cs1,si,j表示xi,j的顺序值。

12、在本发明的一个实施例中,第一云服务器cs1与第二云服务器cs2进行协同计算,基于接收到的外包数据集逐个构建k-d树的内部结点和叶子结点,得到加密的k-d树的步骤,包括:

13、第一云服务器cs1通过与第二云服务器cs2协同计算,获得加密的随机维度向量其中,存在cd′满足b′cd′=1,而j≠cd′满足b′j=0,1≤cd′≤k,1≤j≤k;

14、第二云服务器cs2与第一云服务器cs1根据所述随机维度向量及外包数据集进行协同计算,获得所述外包数据集在第cd′维的数据和其中,αi=xi,cd′,βi=si,cd′,1≤i≤n;

15、基于和第一云服务器cs1和第二云服务器cs2进行协同计算,获得加密的分割数据并根据所述加密的分割数据将所述外包数据集分为子数据集c′l和子数据集c′r,其中,median表示取中位数;

16、第一云服务器cs1建立根结点其中,pl和pr分别表示指向左子树和右子树的指针,所述左子树和右子树由第一云服务器cs1和第二云服务器cs2基于c′l和c′r,通过递归运算建立。

17、在本发明的一个实施例中,第一云服务器cs1通过与第二云服务器cs2协同计算,获得加密的随机维度向量的步骤,包括:

18、第一云服务器cs1随机选择一个维度cd,并构建k维的二进制向量bcd=(b1,b2,…,bk),其中,bcd=1,bj=0,1≤cd≤k,j≠cd;

19、第一云服务器cs1利用公钥pk#将bcd加密为密文向量并将所述密文向量发送至第二云服务器cs2;

20、第二云服务器cs2随机置换的位置,得到置换后的向量

21、第二云服务器cs2构造随机向量z2=(z2,1,z2,2,…,z2,k),其中,从m中随机选取,m表示预设的明文空间;

22、第二云服务器cs2计算并利用公钥pk将所述随机向量z2加密为密文后,发送至所述第一云服务器cs1,其中,mod表示取模;

23、第一云服务器cs1利用私钥sk#对进行解密得到z1,并构建所述随机维度向量其中,n为预设的素数。

24、在本发明的一个实施例中,第二云服务器cs2与第一云服务器cs1根据所述随机维度向量及外包数据集进行协同计算,获得所述外包数据集在第cd′维的数据和的步骤,包括:

25、第一云服务器cs1随机选择2*k*n个随机值m表示预设的明文空间;

26、第一云服务器cs1基于x1,i,j、xi,j、s1,i,j和si,j计算:和

27、第一云服务器cs1计算:

28、

29、

30、第一云服务器cs1随机选择一组随机值并计算和

31、第一云服务器cs1将发送至第二云服务器cs2;

32、第二云服务器cs2利用私钥sk解密获得

33、第一云服务器cs1计算:

34、

35、

36、

37、

38、其中,表示在分割维度上提取出的对应的顺序值。

39、在本发明的一个实施例中,基于和第一云服务器cs1和第二云服务器cs2进行协同计算,获得分割数据并根据所述分割数据将所述外包数据集分为子数据集cl′和子数据集cr′的步骤,包括:

40、第二云服务器cs2计算βh=median{βi|1≤i≤n},并令分割数据

41、第二云服务器cs2与第一云服务器cs1利用安全数据比较算法顺序测试集合中的数据,直至发现αi满足αi≠αh,并将αi的顺序记为βh′;

42、第二云服务器cs2构造数据集合:

43、

44、

45、其中,是随机值,并且

46、第二云服务器cs2计算和并将密文发送给第一云服务器cs1,其中,rval∈m为随机值;

47、第一云服务器cs1利用私钥sk#解密密文获得{val′,x′i,j,s′i,j},并计算和

48、第二云服务器cs2构造子数据集c′l、c′r:

49、

50、

51、在本发明的一个实施例中,第二云服务器cs2与第一云服务器cs1利用安全数据比较算法顺序测试集合中的数据,直至发现αi满足αi≠αh,并将αi的顺序记为βh′的步骤,包括:

52、第二云服务器cs2计算并将发送给所述第一云服务器cs1,其中,{r1,r2}∈m为随机值且满足r1>r2>0,m1、m2表示中的数据;

53、第一云服务器cs1利用sk#解密获得m′;如果m′<0,则第一云服务器cs1返回bm′=1至第二云服务器cs2,表示m1=m2;反之,第一云服务器cs1返回bm′=0至第二云服务器cs2,表示m1≠m2。

54、在本发明的一个实施例中,第二云服务器cs2构造子数据集c′l、c′r的步骤之后,还包括:

55、分别将子数据集c′l、c′r作为所述外包数据集并返回所述第一云服务器cs1判断所述外包数据集中是否仅包含一条数据的步骤。

56、与现有技术相比,本发明的有益效果在于:

57、本发明提供一种安全高效的分布式k-d树构建方法,针对为数据拥有者的分布式数据和云服务器所建立密态k-d树索引时,计算中间值等有可能造成用户隐私泄露的问题,均以密文或者随机值的形式进行存储,确保攻击者在仅攻破单个云服务器的情况下,无法危及到分布式数据及所构建的k-d树的隐私安全。

58、此外,本发明提供的k-d树构建方法是高效的,每个数据所有者都会提前对自己的数据进行排序,并将加密后的数据连同顺序一起外包给云端,这有助于减少k-d树构建过程中的大量数据比较。特别的,本发明无需用户间协助运算,能够尽最大可能的减少数据拥有者的计算和通信开销。

59、以下将结合附图及实施例对本发明做进一步详细说明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1