掌桥专利:专业的专利平台
掌桥专利
首页

安全三方高精度数据处理方法、系统及相关设备

文献发布时间:2024-04-18 20:01:30


安全三方高精度数据处理方法、系统及相关设备

技术领域

本申请涉及隐私计算技术领域以及计算机技术领域,具体涉及一种安全三方高精度数据处理方法、系统及相关设备。

背景技术

目前来看,安全多方计算中,以安全三方计算为例,数据通常会转化成定点数并且在秘密分享状态下来进行计算,此时,每个秘密分片的数据大小大致为64比特,由于秘密分片会在指数上,对于这个体量的数据超出了传统EXP运算支持的计算范围,EXP运算是无法直接进行计算的,给计算EXP算子增加了非常多的难度,因此,如何在安全三方计算中实现EXP运算的问题亟待解决。

发明内容

本申请实施例提供了一种安全三方高精度数据处理方法、系统及相关设备,可以在安全三方计算中实现EXP运算。

第一方面,本申请实施例提供一种安全三方高精度数据处理方法,应用于三方计算系统,所述三方计算系统包括第一方、第二方和第三方,所述第一方、所述第二方为数据持有节点,所述第三方为非数据持有节点,所述第一方拥有第一数据,所述第二方拥有第二数据,所述第一数据与所述第二数据之间的和等于预设值;所述第一数据、所述第二数据的数据精度为n比特;n为正整数;所述方法包括:

通过所述第一方将所述第一数据发送给所述第三方;

通过所述第二方选取随机数,将所述随机数与所述第二数据进行运算,得到目标第二数据,将所述目标第二数据发送给所述第三方;

通过所述第三方根据所述第一数据、所述目标第二数据以及n进行运算,得到第一运算结果;将所述第一运算结果分为第三数据和第四数据,所述第三数据、所述第四数据之和等于所述第一运算结果;将所述第三数据发送给所述第一方;将所述第四数据发送给所述第二方;

通过所述第一方根据所述第三数据和n进行第一指数运算,得到目标第三数据;

通过所述第二方根据所述第四数据和n进行第二指数运算,得到目标第四数据;

通过所述第一方、所述第二方将所述目标第三数据、所述目标第四数据进行秘密分享操作,得到所述第一方的第一分享结果和第二分享结果以及所述第二方的第三分享结果和第四分享结果;

通过所述第一方、所述第二方和所述第三方将所述第一分享结果、所述第二分享结果、所述第三分享结果和所述第四分享结果进行安全三方乘法运算,得到所述第一方的第二运算结果和所述第二方的第三运算结果,所述第二运算结果和所述第三运算结果与所述预设值满足指数运算关系。

第二方面,本申请实施例提供了一种三方计算系统,所述三方计算系统包括第一方、第二方和第三方,所述第一方、所述第二方为数据持有节点,所述第三方为非数据持有节点,所述第一方拥有第一数据,所述第二方拥有第二数据,所述第一数据与所述第二数据之间的和等于预设值;所述第一数据、所述第二数据的数据精度为n比特;n为正整数;其中,

所述第一方,用于将所述第一数据发送给所述第三方;

所述第二方,用于选取随机数,将所述随机数与所述第二数据进行运算,得到目标第二数据,将所述目标第二数据发送给所述第三方;

所述第三方,用于根据所述第一数据、所述目标第二数据以及n进行运算,得到第一运算结果;将所述第一运算结果分为第三数据和第四数据,所述第三数据、所述第四数据之和等于所述第一运算结果;将所述第三数据发送给所述第一方;将所述第四数据发送给所述第二方;

所述第一方,还用于根据所述第三数据和n进行第一指数运算,得到目标第三数据;

所述第二方,还用于根据所述第四数据和n进行第二指数运算,得到目标第四数据;

所述第一方、所述第二方,用于将所述目标第三数据、所述目标第四数据进行秘密分享操作,得到所述第一方的第一分享结果和第二分享结果以及所述第二方的第三分享结果和第四分享结果;

所述第一方、所述第二方和所述第三方,用于将所述第一分享结果、所述第二分享结果、所述第三分享结果和所述第四分享结果进行安全三方乘法运算,得到所述第一方的第二运算结果和所述第二方的第三运算结果,所述第二运算结果和所述第三运算结果与所述预设值满足指数运算关系。

第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面中的步骤的指令。

第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。

第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。

实施本申请实施例,具备如下有益效果:

可以看出,本申请实施例中所描述的安全三方高精度数据处理方法、系统及相关设备,应用于三方计算系统,三方计算系统包括第一方、第二方和第三方,第一方、第二方为数据持有节点,第三方为非数据持有节点,第一方拥有第一数据,第二方拥有第二数据,第一数据与第二数据之间的和等于预设值;第一数据、第二数据的数据精度为n比特;n为正整数;通过第一方将第一数据发送给第三方,通过第二方选取随机数,将随机数与第二数据进行运算,得到目标第二数据,将目标第二数据发送给第三方,通过第三方根据第一数据、目标第二数据以及n进行运算,得到第一运算结果;将第一运算结果分为第三数据和第四数据,第三数据、第四数据之和等于第一运算结果;将第三数据发送给第一方;将第四数据发送给第二方,通过第一方根据第三数据和n进行第一指数运算,得到目标第三数据,通过第二方根据第四数据和n进行第二指数运算,得到目标第四数据,通过第一方、第二方将目标第三数据、目标第四数据进行秘密分享操作,得到第一方的第一分享结果和第二分享结果以及第二方的第三分享结果和第四分享结果,通过第一方、第二方和第三方将第一分享结果、第二分享结果、第三分享结果和第四分享结果进行安全三方乘法运算,得到第一方的第二运算结果和第二方的第三运算结果,第二运算结果和第三运算结果与预设值满足指数运算关系,一方面,由于通过预先恢复带随机数的原始数据信息,随后第三方将恢复后的结果秘密分享给第一方、第二方,此时的秘密分片为浮点数的状态,相比于传统的定点数减少了指数的大小,可以直接进行EXP运算,另一方面,采用非逼近算法,通过对带随机数的原始数据再次进行秘密分享,减少了指数部分的数据规模,可以直接进行明文EXP运算,因此计算精度高,对数据初值无要求,可以适配更多使用场景。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种用于实现安全三方高精度数据处理方法的三方计算系统的架构示意图;

图2是本申请实施例提供的一种安全三方高精度数据处理方法的流程示意图;

图3是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本申请实施例所描述的第一方、第二方、第三方均可以为电子设备,电子设备可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、行车记录仪、服务器、笔记本电脑、移动互联网设备(MID,Mobile Internet Devices)或穿戴式设备(如智能手表、蓝牙耳机)等,上述仅是举例,而非穷举,包含但不限于上述电子设备,该电子设备也可以为云服务器,或者,该电子设备也可以为计算机集群。

本申请实施例中,EXP运算指的是以自然常数e为底的指数函数,在安全多方计算中EXP算子主要指的是多方各自持有数据x的部分秘密分片(例如x0,x1,满足x=x0+x1),多方在不暴露x的前提下,共同计算得到y的秘密分片,其中y满足y=EXP(x)。在安全多方计算中,EXP算子的应用十分广泛,包括联邦学习中的联邦泊松回归、gamma回归等算法以及一些特殊的安全多方计算函数。

相关技术中,安全多方计算中,数据通常会转化成定点数并且在秘密分享状态下来进行计算,此时每个秘密分片的数据大小大致为64比特,由于秘密分片会在指数上,对于这个体量的数据超出了传统EXP运算支持的计算范围,因此,EXP运算是无法直接进行计算的,给计算EXP算子增加了非常多的难度。

另外,传统的一系列线性逼近算法,如泰勒展开、牛顿迭代算法等在处理EXP算子时对初值十分敏感,通常都会默认初值为0,此时,如果真实初值偏离0较多,这些算法的精度表现较差,与真实计算结果有着较大的差距。因此,目前,线性逼近算法能够计算的原始数据范围较小,而真实的原始数据范围是无法确定的,那么此类算法无法满足通用场景的使用要求,一般只用在数据在(-10,10)的某些特殊场景中。

已有一些特殊的非逼近算法的EXP算子计算方案,此类方案通常考虑的是两方秘密分片的场景,由于安全性需求算法流程步骤较多,整体上较为复杂。

为了解决相关技术中的缺陷,本申请实施例提供一种安全三方高精度数据处理方法,应用于三方计算系统,所述三方计算系统包括第一方、第二方和第三方,所述第一方、所述第二方为数据持有节点,所述第三方为非数据持有节点,所述第一方拥有第一数据,所述第二方拥有第二数据,所述第一数据与所述第二数据之间的和等于预设值;所述第一数据、所述第二数据的数据精度为n比特;n为正整数;所述方法包括:

通过所述第一方将所述第一数据发送给所述第三方;

通过所述第二方选取随机数,将所述随机数与所述第二数据进行运算,得到目标第二数据,将所述目标第二数据发送给所述第三方;

通过所述第三方根据所述第一数据、所述目标第二数据以及n进行运算,得到第一运算结果;将所述第一运算结果分为第三数据和第四数据,所述第三数据、所述第四数据之和等于所述第一运算结果;将所述第三数据发送给所述第一方;将所述第四数据发送给所述第二方;

通过所述第一方根据所述第三数据和n进行第一指数运算,得到目标第三数据;

通过所述第二方根据所述第四数据和n进行第二指数运算,得到目标第四数据;

通过所述第一方、所述第二方将所述目标第三数据、所述目标第四数据进行秘密分享操作,得到所述第一方的第一分享结果和第二分享结果以及所述第二方的第三分享结果和第四分享结果;

通过所述第一方、所述第二方和所述第三方将所述第一分享结果、所述第二分享结果、所述第三分享结果和所述第四分享结果进行安全三方乘法运算,得到所述第一方的第二运算结果和所述第二方的第三运算结果,所述第二运算结果和所述第三运算结果与所述预设值满足指数运算关系。

采用本申请实施例,一方面,由于通过预先恢复带随机数的原始数据信息,随后第三方将恢复后的结果秘密分享给第一方、第二方,此时的秘密分片为浮点数的状态,相比于传统的定点数减少了指数的大小,可以直接进行EXP运算,另一方面,采用非逼近算法,通过对带随机数的原始数据再次进行秘密分享,减少了指数部分的数据规模,可以直接进行明文EXP运算,因此计算精度高,对数据初值无要求,可以适配更多使用场景。

下面对本申请实施例进行详细介绍。

请参阅图1,图1是本申请实施例提供的一种用于实现安全三方高精度数据处理方法的三方计算系统的架构示意图,如图所示,所述三方计算系统包括第一方、第二方和第三方,所述第一方、所述第二方为数据持有节点,所述第三方为非数据持有节点,所述第一方拥有第一数据,所述第二方拥有第二数据,所述第一数据与所述第二数据之间的和等于预设值;所述第一数据、所述第二数据的数据精度为n比特;n为正整数;基于该三方计算系统可以实现如下功能:

所述第一方,用于将所述第一数据发送给所述第三方;

所述第二方,用于选取随机数,将所述随机数与所述第二数据进行运算,得到目标第二数据,将所述目标第二数据发送给所述第三方;

所述第三方,用于根据所述第一数据、所述目标第二数据以及n进行运算,得到第一运算结果;将所述第一运算结果分为第三数据和第四数据,所述第三数据、所述第四数据之和等于所述第一运算结果;将所述第三数据发送给所述第一方;将所述第四数据发送给所述第二方;

所述第一方,还用于根据所述第三数据和n进行第一指数运算,得到目标第三数据;

所述第二方,还用于根据所述第四数据和n进行第二指数运算,得到目标第四数据;

所述第一方、所述第二方,用于将所述目标第三数据、所述目标第四数据进行秘密分享操作,得到所述第一方的第一分享结果和第二分享结果以及所述第二方的第三分享结果和第四分享结果;

所述第一方、所述第二方和所述第三方,用于将所述第一分享结果、所述第二分享结果、所述第三分享结果和所述第四分享结果进行安全三方乘法运算,得到所述第一方的第二运算结果和所述第二方的第三运算结果,所述第二运算结果和所述第三运算结果与所述预设值满足指数运算关系。

可选的,所述根据所述第一数据、所述目标第二数据以及n进行运算,得到第一运算结果方面,所述第三方具体用于:

按照如下公式确定所述第一运算结果,具体如下:

y=(x0+x2)>>n

其中,y表示所述第一运算结果;x0表示所述第一数据;x2表示所述目标第二数据;>>表示右移操作。

可选的在所述根据所述第三数据和n进行第一指数运算,得到目标第三数据方面,所述第一方具体用于:

根据如下公式确定所述目标第三数据,具体如下:

h0=EXP(y0)<

其中,h0表示所述目标第三数据,EXP表示指数运算,y0表示所述第三数据;<<表示左移运算。

可选的,在所述根据所述第四数据和n进行第二指数运算,得到目标第四数据方面,所述第二方具体用于:

按照如下公式确定所述目标第四数据,具体如下:

h1=(EXP(y1)<

其中,h1表示所述目标第四数据,y1表示所述第四数据,EXP表示指数运算,r1表示所述随机数,<<表示左移运算。

可选的,所述指数运算关系包括:

w0+w1=EXP(x)

其中,w0表示所述第二运算结果,w1表示所述第三运算结果;x表示所述预设值。

请参阅图2,图2是本申请实施例提供的一种安全三方高精度数据处理方法的流程示意图,应用于图1所示的三方计算系统,所述三方计算系统包括第一方、第二方和第三方,所述第一方、所述第二方为数据持有节点,所述第三方为非数据持有节点,所述第一方拥有第一数据,所述第二方拥有第二数据,所述第一数据与所述第二数据之间的和等于预设值;所述第一数据、所述第二数据的数据精度为n比特;n为正整数;如图所示,本安全三方高精度数据处理方法包括:

201、通过所述第一方将所述第一数据发送给所述第三方。

本申请实施例中,三方计算系统可以包括第一方、第二方和第三方,第一方、第二方为数据持有节点,第三方为非数据持有节点,第一方拥有第一数据,第二方拥有第二数据,第一数据与第二数据之间的和等于预设值;第一数据、第二数据的数据精度为n比特;n为正整数,其中,n可以预先设置或者系统默认。例如,n=30,默认数据精度为30比特,即浮点数转定点数时会将原始数据乘2

其中,预设值也可以预先设置或者系统默认,预设值为第一数据和第二数据之和,第一数据、第二数据可以为具体数值。

其中,第一数据、第二数据均可以包括以下至少一种:工号、身份证号、消费金额、年龄等等,在此不做限定。

本申请实施例中,可以将原始数据重新在浮点数的状态下秘密分享,进而,可以在后续的计算中不采用逼近算法进行计算,而是采用明文EXP以及安全多方计算乘法相结合的方式去计算最终结果。通过此种方式,安全三方的EXP运算结果精度可以达到小数点后5-6位。

举例说明下,本申请实施例中,可以通过非数据持有节点(通常记为P2节点),即第三方预先恢复带随机数的原始数据信息,随后非数据持有节点将恢复后的结果秘密分享给两个数据持有节点(通常记为P0、P1),即第一方和第二方,此时的秘密分片为浮点数的状态,相比于传统的定点数减少了指数的大小,可以直接进行EXP运算。

202、通过所述第二方选取随机数,将所述随机数与所述第二数据进行运算,得到目标第二数据,将所述目标第二数据发送给所述第三方。

本申请实施例中,第二方可以利用随机数发生器生成随机数,如,随机数记作r1,则可以将随机数与第二数据进行运算,得到目标第二数据,具体的,x2=x1+r1,其中,x1表示第二数据,x2表示第二目标数据。由于随机数的存在,保证了原始数据不直接暴露给P2节点。

进而,可以将目标第二数据发送给第三方。

203、通过所述第三方根据所述第一数据、所述目标第二数据以及n进行运算,得到第一运算结果;将所述第一运算结果分为第三数据和第四数据,所述第三数据、所述第四数据之和等于所述第一运算结果;将所述第三数据发送给所述第一方;将所述第四数据发送给所述第二方。

本申请实施例中,第三方可以根据第一数据、目标第二数据以及n进行运算,得到第一运算结果,再将第一运算结果分为第三数据和第四数据,第三数据、第四数据之和等于第一运算结果,再将第三数据发送给第一方,将第四数据发送给第二方。

即本申请实施例中,通过利用安全多方计算中P2节点进行数据处理,将带随机数的原始数据部分直接恢复,由于随机数的存在,保证了原始数据不直接暴露给P2节点,随后P2节点重新进行秘密分享,使得数据可以在浮点数的状态下进行计算,保证了后续EXP运算中指数部分为较小的数据规模。

可选的,上述步骤203,通过所述第三方根据所述第一数据、所述目标第二数据以及n进行运算,得到第一运算结果,可以按照如下方式实施:

按照如下公式确定所述第一运算结果,具体如下:

y=(x0+x2)>>n

其中,y表示所述第一运算结果;x0表示所述第一数据;x2表示所述目标第二数据;>>表示右移操作。

本申请实施例中,P2计算y=(x0+x2)>>30,随后随机选择y0,y1,使得y0+y1=y,将y0发送给P0,y1发送给P1。

204、通过所述第一方根据所述第三数据和n进行第一指数运算,得到目标第三数据。

本申请实施例中,第一方可以根据第三数据和n进行第一指数运算,得到目标第三数据。

可选的,上述步骤204,通过所述第一方根据所述第三数据和n进行第一指数运算,得到目标第三数据,可以按照如下方式实施:

根据如下公式确定所述目标第三数据,具体如下:

h0=EXP(y0)<

其中,h0表示所述目标第三数据,EXP表示指数运算,y0表示所述第三数据;<<表示左移运算。

其中,h0=EXP(y0)<

举例说明下,以n为30为例,P0计算h0=EXP(y0)<<30。

205、通过所述第二方根据所述第四数据和n进行第二指数运算,得到目标第四数据。

本申请实施例中,第二方可以根据第四数据和n进行第二指数运算,得到目标第四数据。

可选的,上述步骤205,通过所述第二方根据所述第四数据和n进行第二指数运算,得到目标第四数据,可以按照如下方式实施:

按照如下公式确定所述目标第四数据,具体如下:

h1=(EXP(y1)<

其中,h1表示所述目标第四数据,y1表示所述第四数据,EXP表示指数运算,r1表示所述随机数,<<表示左移运算。

其中,h1=(EXP(y1)<

举例说明下,以n为30为例,P1计算h1=(EXP(y1)<<30)/(EXP(r1/30))。

206、通过所述第一方、所述第二方将所述目标第三数据、所述目标第四数据进行秘密分享操作,得到所述第一方的第一分享结果和第二分享结果以及所述第二方的第三分享结果和第四分享结果。

本申请实施例中,第一方、第二方可以将目标第三数据、目标第四数据进行秘密分享操作,得到第一方的第一分享结果和第二分享结果以及第二方的第三分享结果和第四分享结果,其中,第一分享结果、第二分享结果、第三分享结果和第四分享结果可以分别记作:b0,c0,b1,c1。

举例说明下,P0,P1分别对自身拥有的h0,h1进行秘密分享操作,此操作完成后P0拥有b0,c0,P1拥有b1,c1。

再举例说明下,以h0为例,秘密分享操作的流程可以为:选择一个随机数r,P0计算h0-r;将h0-r发送给P1;此时,h0被秘密分享成了两个值r、h0-r。秘密分享主要是为了能多方在不暴露原始数据值的情况下共同计算某个函数。秘密分享是安全多方计算的前置步骤,数据需要进行秘密分享之后多方才能共同计算。

207、通过所述第一方、所述第二方和所述第三方将所述第一分享结果、所述第二分享结果、所述第三分享结果和所述第四分享结果进行安全三方乘法运算,得到所述第一方的第二运算结果和所述第二方的第三运算结果,所述第二运算结果和所述第三运算结果与所述预设值满足指数运算关系。

其中,第二运算结果可以记作w0,第三运算结果可以记作w1。

具体实现中,安全多方计算主要是为了能多方在不暴露原始数据值的情况下共同计算某个函数,安全三方乘法运算则是为了多方能用自己的本地数据共同计算一个安全乘法运算。

本申请实施例中,第一方、第二方和第三方可以将第一分享结果、第二分享结果、第三分享结果和第四分享结果基于安全神经网络(SecureNN)协议进行安全三方乘法运算,得到第一方的第二运算结果和第二方的第三运算结果,第二运算结果和第三运算结果与预设值满足指数运算关系。

举例说明下,P0、P1、P2对数据b0,c0,b1,c1进行安全三方的乘法运算,获得结果w0,w1,此结果为EXP运算秘密分享结果。

可选的,所述指数运算关系包括:

w0+w1=EXP(x)

其中,w0表示所述第二运算结果,w1表示所述第三运算结果;x表示所述预设值。

其中,指数运算关系可以满足w0+w1=EXP(x0+x1)=EXP(x)。

本申请实施例中,仅需两轮简单的数据交互以及两次安全多方秘密分享和一次安全多方乘法运算即可完成全部运算,从而,计算效率高,另外,整体结构清晰,代码可复用,相比于逼近算法以及其他的特殊安全三方EXP算法通信量低(主要原因是采用了较少的安全多方乘法运算,此运算会非常影响计算效率以及通信量),是一种高效的EXP算法。

举例说明下,本申请实施例中,参与方包括3个安全多方计算节点,分别为P0、P1、P2,其中,P0拥有数据x0,P1拥有数据x1,默认数据精度为30比特,即浮点数转定点数时会将原始数据乘2

S1、P0将x0发送给P2,P1选择一个随机数r1,随后计算x2=x1+r1,将x2发送给P2。

S2、P2计算y=(x0+x2)>>30,随后随机选择y0,y1,使得y0+y1=y,将y0发送给P0,y1发送给P1。

S3、P0计算h0=EXP(y0)<<30,P1计算h1=(EXP(y1)<<30)/(EXP(r1/30))。

S4、随后P0,P1分别对自身拥有的h0,h1进行秘密分享操作,此操作完成后P0拥有b0,c0,P1拥有b1,c1。

S5、P0、P1、P2对数据b0,c0,b1,c1进行安全三方的乘法运算,获得结果w0,w1,此结果为EXP运算秘密分享结果,满足w0+w1=EXP(x0+x1)=EXP(x)。

具体实现中,通过利用安全多方计算中P2节点进行数据处理,将带随机数的原始数据部分直接恢复,由于随机数的存在,保证了原始数据不直接暴露给P2节点,随后P2节点重新进行秘密分享,使得数据可以在浮点数的状态下进行计算,保证了后续EXP运算中指数部分为较小的数据规模,另外,将安全多方EXP算子转化为一些简单的数据交互以及一次安全多方乘法算子进行运算,整体计算结构简单,由于只进行一次安全多方乘法计算,因此通讯量小。

本申请实施例中,采用非逼近算法,通过对带随机数的原始数据再次进行秘密分享,减少了指数部分的数据规模,可以直接进行明文EXP运算,因此计算精度高,对数据初值无要求,可以适配更多使用场景,另外,仅需两轮简单的数据交互以及两次安全多方秘密分享和一次安全多方乘法运算即可完成全部运算,整体结构清晰,代码可复用,相比于逼近算法以及其他的特殊安全三方EXP算法通信量低(主要原因是采用了较少的安全多方乘法运算,此运算会非常影响计算效率以及通信量),是一种高效的EXP算法。

可以看出,本申请实施例中所描述的安全三方高精度数据处理方法,应用于三方计算系统,三方计算系统包括第一方、第二方和第三方,第一方、第二方为数据持有节点,第三方为非数据持有节点,第一方拥有第一数据,第二方拥有第二数据,第一数据与第二数据之间的和等于预设值;第一数据、第二数据的数据精度为n比特;n为正整数;通过第一方将第一数据发送给第三方,通过第二方选取随机数,将随机数与第二数据进行运算,得到目标第二数据,将目标第二数据发送给第三方,通过第三方根据第一数据、目标第二数据以及n进行运算,得到第一运算结果;将第一运算结果分为第三数据和第四数据,第三数据、第四数据之和等于第一运算结果;将第三数据发送给第一方;将第四数据发送给第二方,通过第一方根据第三数据和n进行第一指数运算,得到目标第三数据,通过第二方根据第四数据和n进行第二指数运算,得到目标第四数据,通过第一方、第二方将目标第三数据、目标第四数据进行秘密分享操作,得到第一方的第一分享结果和第二分享结果以及第二方的第三分享结果和第四分享结果,通过第一方、第二方和第三方将第一分享结果、第二分享结果、第三分享结果和第四分享结果进行安全三方乘法运算,得到第一方的第二运算结果和第二方的第三运算结果,第二运算结果和第三运算结果与预设值满足指数运算关系,一方面,由于通过预先恢复带随机数的原始数据信息,随后第三方将恢复后的结果秘密分享给第一方、第二方,此时的秘密分片为浮点数的状态,相比于传统的定点数减少了指数的大小,可以直接进行EXP运算,另一方面,采用非逼近算法,通过对带随机数的原始数据再次进行秘密分享,减少了指数部分的数据规模,可以直接进行明文EXP运算,因此计算精度高,对数据初值无要求,可以适配更多使用场景。

与上述实施例一致地,请参阅图3,图3是本申请实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,应用于三方计算系统,所述三方计算系统包括第一方、第二方和第三方,所述第一方、所述第二方为数据持有节点,所述第三方为非数据持有节点,所述第一方拥有第一数据,所述第二方拥有第二数据,所述第一数据与所述第二数据之间的和等于预设值;所述第一数据、所述第二数据的数据精度为n比特;n为正整数;上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,本申请实施例中,上述程序包括用于执行以下步骤的指令:

通过所述第一方将所述第一数据发送给所述第三方;

通过所述第二方选取随机数,将所述随机数与所述第二数据进行运算,得到目标第二数据,将所述目标第二数据发送给所述第三方;

通过所述第三方根据所述第一数据、所述目标第二数据以及n进行运算,得到第一运算结果;将所述第一运算结果分为第三数据和第四数据,所述第三数据、所述第四数据之和等于所述第一运算结果;将所述第三数据发送给所述第一方;将所述第四数据发送给所述第二方;

通过所述第一方根据所述第三数据和n进行第一指数运算,得到目标第三数据;

通过所述第二方根据所述第四数据和n进行第二指数运算,得到目标第四数据;

通过所述第一方、所述第二方将所述目标第三数据、所述目标第四数据进行秘密分享操作,得到所述第一方的第一分享结果和第二分享结果以及所述第二方的第三分享结果和第四分享结果;

通过所述第一方、所述第二方和所述第三方将所述第一分享结果、所述第二分享结果、所述第三分享结果和所述第四分享结果进行安全三方乘法运算,得到所述第一方的第二运算结果和所述第二方的第三运算结果,所述第二运算结果和所述第三运算结果与所述预设值满足指数运算关系。

可选的,在所述通过所述第三方根据所述第一数据、所述目标第二数据以及n进行运算,得到第一运算结果方面,上述程序包括用于执行以下步骤的指令:

按照如下公式确定所述第一运算结果,具体如下:

y=(x0+x2)>>n

其中,y表示所述第一运算结果;x0表示所述第一数据;x2表示所述目标第二数据;>>表示右移操作。

可选的,在所述通过所述第一方根据所述第三数据和n进行第一指数运算,得到目标第三数据方面,上述程序包括用于执行以下步骤的指令:

根据如下公式确定所述目标第三数据,具体如下:

h0=EXP(y0)<

其中,h0表示所述目标第三数据,EXP表示指数运算,y0表示所述第三数据;<<表示左移运算。

可选的,在所述通过所述第二方根据所述第四数据和n进行第二指数运算,得到目标第四数据方面,上述程序包括用于执行以下步骤的指令:

按照如下公式确定所述目标第四数据,具体如下:

h1=(EXP(y1)<

其中,h1表示所述目标第四数据,y1表示所述第四数据,EXP表示指数运算,r1表示所述随机数,<<表示左移运算。

可选的,所述指数运算关系包括:

w0+w1=EXP(x)

其中,w0表示所述第二运算结果,w1表示所述第三运算结果;x表示所述预设值。

本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。

本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种文本分类方法、装置、终端及计算机可读存储介质
  • 一种将文本转化为词嵌入、文本分类方法和装置
  • 一种文本分类方法及装置
  • 一种文本分类方法和装置
  • 一种文本分类方法及装置
  • 一种多价值链问题文本分类方法和装置
  • 一种多价值链问题文本分类方法和装置
技术分类

06120116560928