当前位置: 首页 > 专利查询>山东大学专利>正文

基于堆结构的安全多方数据同步预处理方法及系统技术方案

技术编号:38247835 阅读:12 留言:0更新日期:2023-07-25 18:07
本公开提供了一种基于堆结构的安全多方数据同步预处理方法及系统,其应用于若干数据端之间的多方数据融合,包括:对于每个数据端,按照其本地数据标识大小对数据进行本地排序,获得本地数据列表;对于每个数据端,分别定义指向本地数据列表第一个元素标识的位置指针,并构建最终数据同步列表,其中,所述最终数据同步列表初始为空列表;基于各个数据端的位置指针所指向的标识构建最小堆;通过遍历各个数据端中的本地数据列表,循环更新最小堆以及最终数据同步列表,直至各个数据端中的本地数据列表均遍历至结尾,结束循环;以获得的每个终端的最终数据同步列表作为多方数据的融合结果。果。果。

【技术实现步骤摘要】
基于堆结构的安全多方数据同步预处理方法及系统


[0001]本公开属于计算机
,尤其涉及一种基于堆结构的安全多方数据同步预处理方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提供了与本公开相关的
技术介绍
信息,不必然构成在先技术。
[0003]多方数据融合是目前许多商业公司、企业和机构广泛关注的技术问题。它是通过多方安全计算协议来实现数据同步,让不同的数据持有者都有各方的所有数据样本,但不暴露任何一方数据的具体信息。例如:多家医院联合使用各自的病例信息进行更准确的诊断;多家金融机构联合使用各自的信用记录来发现潜在的金融风险等等。因为在多方数据融合中,所有数据持有者都不想暴露自己的数据隐私,即用户级隐私需要得到严格保障。并且,多方数据融合可以提高未来基于数据分析的模型质量或问题挖掘深度。
[0004]专利技术人发现,现有得多方数据融合方法存在以下缺点:
[0005]大多数现有技术都是使用诸如遗忘传输(oblivious transfer)之类的复杂技术实现的,而这中策略算法实现复杂,在实际中运行效率较低;其次,现有技术对于仅找到双方的交集结果虽然是可行的,但实际中多方数据融合不仅仅只有两方,更多的情况是多于两方企业进行数据融合,且希望找到多方数据的并集;同时,当现有技术用于多方融合时,方案非常复杂,需要多次调用两方数据融合的算法,成本较高,不利于实际应用。

技术实现思路

[0006]本公开为了解决上述问题,提供了一种基于堆结构的安全多方数据同步预处理方法及系统,所述方案通过使用基于百万富翁难题的安全多方计算比较大小的协议以及数据归并策略,大大降低了多方数据融合的复杂性,同时,所述方案能够达到数据融合的最终效果,使得数据按照标识大小排列,并严格满足数据的安全要求。
[0007]根据本公开实施例的第一个方面,提供了一种基于堆结构的安全多方数据同步预处理方法,其应用于若干数据端之间的多方数据融合,包括:
[0008]对于每个数据端,按照其本地数据标识大小对数据进行本地排序,获得本地数据列表;
[0009]对于每个数据端,分别定义指向本地数据列表第一个元素标识的位置指针,并构建最终数据同步列表,其中,所述最终数据同步列表初始为空列表;
[0010]基于各个数据端的位置指针所指向的标识构建最小堆;
[0011]通过遍历各个数据端中的本地数据列表,循环更新最小堆以及最终数据同步列表,直至各个数据端中的本地数据列表均遍历至结尾,结束循环;
[0012]以获得的每个终端的最终数据同步列表作为多方数据的融合结果;
[0013]其中,所述循环更新最小堆以及最终数据同步列表,具体为:获取最小堆结构中的
最小元,将最小元标识对应的数据添加至该标识对应数据端的最终数据同步列表的末端;更新最小元标识对应数据端的位置指针指向下一位置;在最小堆中删除当前最小元,并增加当前最小元标识对应数据端位置指针所指向的标识,实现最小堆的更新;若更新后最小堆的最小元标识与前一个删除的最小元相等,则重新执行下一轮循环,若不等,则在本轮循环中未添加数据的数据端最终数据同步列表的末端添加随机数据。
[0014]进一步的,所述最小堆的初始化过程中,每个数据端不需要存储完整的最小堆,仅需存储自身当前位置指针所指向标识在最小堆中的父节点和子节点;
[0015]或,
[0016]所述最小堆的初始化过程中,每个数据端各自维护完整的最小堆。
[0017]进一步的,所述在最小堆中删除当前最小元,并增加当前最小元标识对应数据端位置指针所指向的标识,具体为:将最小堆中最小元结点对应的标识直接更新为新增加的标识,并更新此堆使其成为最小堆。
[0018]进一步的,所述更新此堆使其成为最小堆,具体为:
[0019]步骤1:若更新的结点有父结点,更新的结点和其父结点对应的数据端交互比较大小;若更新的结点更大,进入步骤2;若更新的结点更小,交换此结点与父结点,并通知父结点对应的数据端更新自己的位置,返回步骤1继续与父结点比较;
[0020]步骤2:若更新的结点有子结点,分别与左子结点和右子结点对应的数据端交互比较大小;若更新的结点更大,交换此结点与该子结点,并通知该子结点对应的数据端更新自己的位置,返回步骤2继续与子结点比较;若更新的结点更小,进入步骤3。
[0021]步骤3:通知所有数据端自己更新后的位置。
[0022]进一步的,在最小堆的构建及更新过程中,对于每个数据端,实时存储其当前位置指针所指向的标识,以及该标识在最小堆中的父节点和子节点对应的数据端编号。
[0023]进一步的,在最小堆更新时,基于各个数据端中存储的父节点和子节点编号,寻找相应的数据端;不同数据端之间通过编号查找进行两两标识的比较,其中,所述两两标识的比较采用基于百万富翁难题的多方安全计算。
[0024]进一步的,所述两两标识的比较采用基于百万富翁难题的多方安全计算,具体为:
[0025]对于两个待比较标识分别对应的第一数据端和第二数据端,第一数据端通过百万富翁协议的加密自己的标识,记为第一加密标识,发送给第二数据端;
[0026]第二数据端将自己的标识和收到的第一加密标识基于百万富翁协议进行比较大小,获得比较结果;将自身标识通过百万富翁协议加密得到第二加密标识,并将其发送给第一数据端;
[0027]第一数据端将自己的标识和收到的第二加密标识基于百万富翁协议进行比较大小,获得比较结果。
[0028]根据本公开实施例的第二个方面,提供了一种基于堆结构的安全多方数据同步预处理系统,其应用于若干数据端之间的多方数据融合,包括:
[0029]本地排序单元,其用于对于每个数据端,按照其本地数据标识大小对数据进行本地排序,获得本地数据列表;
[0030]最终数据同步列表初始化单元,其用于对于每个数据端,分别定义指向本地数据列表第一个元素标识的位置指针,并构建最终数据同步列表,其中,所述最终数据同步列表
初始为空列表;
[0031]最小堆构建单元,其用于基于各个数据端的位置指针所指向的标识构建最小堆;
[0032]多方数据融合单元,其用于通过遍历各个数据端中的本地数据列表,循环更新最小堆以及最终数据同步列表,直至各个数据端中的本地数据列表均遍历至结尾,结束循环;以获得的每个终端的最终数据同步列表作为多方数据的融合结果;
[0033]其中,所述循环更新最小堆以及最终数据同步列表,具体为:获取最小堆结构中的最小元,将最小元标识对应的数据添加至该标识对应数据端的最终数据同步列表的末端;更新最小元标识对应数据端的位置指针指向下一位置;在最小堆中删除当前最小元,并增加当前最小元标识对应数据端位置指针所指向的标识,实现最小堆的更新;若更新后最小堆的最小元标识与前一个删除的最小元相等,则重新执行下一轮循环,若不等,则在本轮循环中未添加数据的数据端最终数据同步列表的末端添加随机数据。
[0034]根据本公本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于堆结构的安全多方数据同步预处理方法,其特征在于,其应用于若干数据端之间的多方数据融合,包括:对于每个数据端,按照其本地数据标识大小对数据进行本地排序,获得本地数据列表;对于每个数据端,分别定义指向本地数据列表第一个元素标识的位置指针,并构建最终数据同步列表,其中,所述最终数据同步列表初始为空列表;基于各个数据端的位置指针所指向的标识构建最小堆;通过遍历各个数据端中的本地数据列表,循环更新最小堆以及最终数据同步列表,直至各个数据端中的本地数据列表均遍历至结尾,结束循环;以获得的每个终端的最终数据同步列表作为多方数据的融合结果;其中,所述循环更新最小堆以及最终数据同步列表,具体为:获取最小堆结构中的最小元,将最小元标识对应的数据添加至该标识对应数据端的最终数据同步列表的末端;更新最小元标识对应数据端的位置指针指向下一位置;在最小堆中删除当前最小元,并增加当前最小元标识对应数据端位置指针所指向的标识,实现最小堆的更新;若更新后最小堆的最小元标识与前一个删除的最小元相等,则重新执行下一轮循环,若不等,则在本轮循环中未添加数据的数据端最终数据同步列表的末端添加随机数据。2.如权利要求1所述的一种基于堆结构的安全多方数据同步预处理方法,其特征在于,所述最小堆的初始化过程中,每个数据端不需要存储完整的最小堆,仅需存储自身当前位置指针所指向标识在最小堆中的父节点和子节点;或,所述最小堆的初始化过程中,每个数据端各自维护完整的最小堆。3.如权利要求1所述的一种基于堆结构的安全多方数据同步预处理方法,其特征在于,所述在最小堆中删除当前最小元,并增加当前最小元标识对应数据端位置指针所指向的标识,具体为:将最小堆中最小元结点对应的标识直接更新为新增加的标识,并更新此堆使其成为最小堆。4.如权利要求3所述的一种基于堆结构的安全多方数据同步预处理方法,其特征在于,所述更新此堆使其成为最小堆,具体为:步骤1:若更新的结点有父结点,更新的结点和其父结点对应的数据端交互比较大小;若更新的结点更大,进入步骤2;若更新的结点更小,交换此结点与父结点,并通知父结点对应的数据端更新自己的位置,返回步骤1继续与父结点比较;步骤2:若更新的结点有子结点,分别与左子结点和右子结点对应的数据端交互比较大小;若更新的结点更大,交换此结点与该子结点,并通知该子结点对应的数据端更新自己的位置,返回步骤2继续与子结点比较;若更新的结点更小,进入步骤3。步骤3:通知所有数据端自己更新后的位置。5.如权利要求1所述的一种基于堆结构的安全多方数据同步预处理方法,其特征在于,在最小堆的构建及更新过程中,对于每个数据端,实时存储其当前位置指针所指向的标识,以及该标识在最小堆中的父节点和子节点对应的数据端编号。...

【专利技术属性】
技术研发人员:李梁栾昊
申请(专利权)人:山东大学
类型:发明
国别省市:

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

1