一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于处理数据的方法、装置、设备以及存储介质与流程

2022-02-21 04:09:19 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,具体涉及安全多方计算、密码学、数据处理领域,尤其涉及用于处理数据的方法、装置、设备以及存储介质。


背景技术:

2.安全多方计算实际上是一种安全协议,作为密码学的一个子领域,其允许多个数据所有者在互不信任的情况下进行协同计算,输出计算结果,并保证任何一方均无法得到除应得的计算结果之外的其他任何信息。换句话说,安全多方计算技术可以获取数据使用价值,却不泄露原始数据内容。
3.安全多方计算协议在设计过程中需要用到相当多的数学和密码学知识,例如加密体制、秘密分享、不经意传输等。在计算过程中会产生大量的参数,如果将这些参数保存下来,势必会占用大量的内存。


技术实现要素:

4.提供了一种用于处理数据的方法、装置、设备以及存储介质。
5.根据第一方面,提供了一种用于处理数据的方法,包括:获取针对目标数据的处理信息;确定处理信息中各参数的目标调用次数;根据处理信息,向至少两个计算节点发送数据处理指令,以供至少两个计算节点对目标数据进行处理;实时从至少两个计算节点处获取数据处理过程中得到的各参数值以及各参数的实际调用次数;根据目标调用次数以及实际调用次数,对各参数值进行处理。
6.根据第二方面,提供了一种用于处理数据的装置,包括:信息获取单元,被配置成获取针对目标数据的处理信息;次数确定单元,被配置成确定处理信息中各参数的目标调用次数;处理指令发送单元,被配置成根据处理信息,向至少两个计算节点发送数据处理指令,以供至少两个计算节点对目标数据进行处理;次数获取单元,被配置成实时从至少两个计算节点处获取数据处理过程中得到的各参数值以及各参数的实际调用次数;参数处理单元,被配置成根据目标调用次数以及实际调用次数,对各参数值进行处理。
7.根据第三方面,提供了一种用于处理数据的电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,所述指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面所描述的方法。
8.根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,上述计算机指令用于使计算机执行如第一方面所描述的方法。
9.根据本技术的技术,可以根据参数的实际调用次数和目标调用次数,判断参数是否仍然会被使用,并根据判断结果对参数值进行处理,在保证计算正确的前提下,有效地减小了内存的占用。
10.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特
征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
11.附图用于更好地理解本方案,不构成对本技术的限定。其中:
12.图1是本技术的一个实施例可以应用于其中的示例性系统架构图;
13.图2是根据本技术的用于处理数据的方法的一个实施例的流程图;
14.图3是根据本技术的用于处理数据的方法的一个应用场景的示意图;
15.图4是根据本技术的用于处理数据的方法的另一个实施例的流程图;
16.图5是根据本技术的用于处理数据的装置的一个实施例的结构示意图;
17.图6是用来实现本技术实施例的用于处理数据的方法的电子设备的框图。
具体实施方式
18.以下结合附图对本技术的示范性实施例做出说明,其中包括本技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
19.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
20.图1示出了可以应用本技术的用于处理数据的方法或用于处理数据的装置的实施例的示例性系统架构100。
21.如图1所示,系统架构100可以包括数据提供节点101、102,管理节点103,计算节点104、105和隐私提供节点106。各节点间可以通过网络进行通信。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
22.数据提供节点101、102可以存储有各种可用于处理的数据给计算节点104、105,以供计算节点104、105对上述数据进行处理。这些数据不能被其它设备获取。数据提供节点101、102可以通过对数据进行加密后输出。
23.计算节点104、105可以是各种可用于处理数据的电子设备,其可以接收管理节点103发送的处理指令,并根据处理指令对从数据提供节点101、102接收到的数据进行各种运算。
24.隐私提供节点106用于在计算节点104、105的计算过程中,提供随机数,以使计算节点104和计算节点105在不能得到原始数据的基础上,得到原始数据的正确处理结果。
25.需要说明的是,数据提供节点101、102,管理节点103,计算节点104、105和隐私提供节点106可以是硬件,也可以是软件。当数据提供节点101、102,管理节点103,计算节点104、105和隐私提供节点106为硬件时,可以实现成多个电子设备组成的分布式集群,也可以实现成单个电子设备。当数据提供节点101、102,管理节点103,计算节点104、105和隐私提供节点106为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
26.需要说明的是,本技术实施例所提供的用于处理数据的方法一般由管理节点103执行。相应地,用于处理数据的装置一般设置于管理节点103中。
27.应该理解,图1中的数据提供节点、管理节点、计算节点和隐私提供节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的数据提供节点、管理节点、计算节点和隐私提供节点。
28.继续参考图2,示出了根据本技术的用于处理数据的方法的一个实施例的流程200。本实施例的用于处理数据的方法,包括以下步骤:
29.步骤201,获取针对目标数据的处理信息。
30.本实施例中,用于处理数据的方法的执行主体(例如图1所示的管理节点)可以获取针对目标数据的处理信息。这里,处理信息可以是对目标数据的处理流程的描述信息,处理信息可以包括代码信息、公式信息和文本等等。技术人员可以通过其所使用的终端编写处理信息,执行主体可以与技术人员所使用的终端连接,并获取技术人员编写的处理信息。这里,目标数据是指计算节点(例如图1所示的计算节点104、105)接收到的数据。根据图1所示的系统架构,计算节点既可以接收数据提供节点提供的数据,也可以接收隐私提供节点提供的数据。
31.在安全多方计算领域,由于除数据提供节点(例如图1所示的数据提供节点101、102)之外,其它电子设备均不能获得原始数据,所以计算节点获取到的数据可以是数据提供节点加密过的数据。举例来说,原始数据包括两个数,分别为x=3,y=5。两个计算节点接收到的数据与原始数据不同,计算节点1接收到的数据可以为x=1,计算节点2接收到的数据可以为x=2。当然,为了区分发往不同计算节点的值,可以利用下标来标注两个值。例如,发送给计算节点1的数据标注为x1,发送给计算节点2的数据标注为x2。同样的,y也可能被分成两个值,分别发送给两个计算节点,例如,y1=4,y2=1。如果针对x和y的计算为z=x*y,即最终得到的z值为15。隐私提供节点需要在计算过程中提供一些随机数,使得计算节点1和计算节点2的最终计算结果等于15。
32.步骤202,确定处理信息中各参数的目标调用次数。
33.执行主体在获取到处理信息后,可以对处理信息进行分析,确定其中的各参数的目标调用次数。这里的分析可以包括分析各函数的调用关系,根据调用关系,确定各参数的目标调用次数。可以理解的是,由于目标数据中包括数据提供方发送给计算节点的数据和隐私提供节点发送给计算节点的数据,因此,计算过程中存在很多参数。执行主体可以对各参数的调用次数进行统计。
34.举例来说,如下代码中参数x的目标调用次数为2。第1次调用是在w.dot(x)中,第2词是在dz.dot(x.transpose())中。
35.sharedentity z=w.dot(x).plus(b);
36.sharedentity a=z.sigmoid();
37.sharedentity dz=a.minus(y);
38.sharedentity dw=dz.dot(x.transpose()).div(samples);
39.sharedentity db=dz.sumh().div(samples);
40.w=w.minus(alpha.multiply(dw));
41.b=b.minus(alpha.multiply(db))。
42.步骤203,根据处理信息,向至少两个计算节点发送数据处理指令,以供至少两个计算节点对目标数据进行处理。
43.执行主体在获取到上述处理信息后,可以向至少两个计算节点发送数据处理指令。各计算节点在接收到数据处理指令后,可以对从数据提供节点和隐私提供节点处接收到的数据进行处理。这里数据处理指令可以是执行主体针对处理信息分析后得到的指令。例如,数据处理指令可以为w.dot(x)。计算节点在接收到该指令后,可以针对w值和x值进行计算。可以理解的是,计算节点在计算完成数据处理指令后,可以向执行主体报告已完成计算,以便执行主体向计算节点发送针对得到的计算结果的新的数据处理指令。
44.步骤204,实时从至少两个计算节点处获取数据处理过程中得到的各参数值以及各参数的实际调用次数。
45.本实施例中,执行主体还可以实时地从各计算节点处获取数据处理过程中得到的各参数值以及各参数的实际调用次数。具体的,执行主体可以接收计算节点的报告,确定数据处理进程。根据数据处理进程,确定计算得到的各参数值以及各参数的实际调用次数。
46.步骤205,根据目标调用次数以及实际调用次数,对各参数值进行处理。
47.执行主体可以将得到的各参数的实际调用次数与目标调用次数进行比较,如果二者相等,则说明参数不会再次被调用。则可以删除一部分参数值,这样可以有效地节省内存空间。相应的,如果实际调用次数小于目标调用次数,则说明参数仍然会被调用,为保证计算的准确性,需要保存该参数值。
48.继续参见图3,其示出了根据本技术的用于处理数据的方法的一个应用场景的示意图。在图3的应用场景中,医院1的数据库301存储有糖尿病人的病历信息,医院2的数据库302也存储有糖尿病人的病历信息。由于现有的隐私数据保护方案,医院1和医院2的糖尿病人的病历信息不能分享给其它电子设备。在安全多方计算中,医院1和医院2可以将糖尿病人的病历信息加密后分别发送给计算节点303和304,同时隐私数据提供器305也可以向计算节点303和304发送随机数以供处理。服务器306可以获取针对上述糖尿病人病历信息的处理信息。经过步骤202~205的处理后,在完成数据处理后,服务器306可以删除计算过程中得到的参数值。
49.本技术的上述实施例提供的用于处理数据的方法,可以根据参数的实际调用次数和目标调用次数,判断参数是否仍然会被使用,并根据判断结果对参数值进行处理,在保证计算正确的前提下,有效地减小了内存的占用。
50.继续参见图4,其示出了根据本技术的用于处理数据的方法的另一个实施例的流程400。如图4所示,本实施例的用于处理数据的方法可以包括以下步骤:
51.步骤401,向隐私提供节点、至少一个数据提供节点发送指令,以使隐私提供节点、至少一个数据提供节点向至少两个计算节点发送目标数据。
52.本实施例中,执行主体可以向隐私提供节点、至少一个数据提供节点发送指令,以通知隐私提供节点、至少一个数据提供节点向至少两个计算节点发送目标数据。在一些具体的应用场景中,隐私提供节点、各数据提供节点以及各计算节点在启动后,需要首先向执行主体注册。注册完成后,执行主体确定各节点处于正常工作状态,则可以向隐私提供节点、至少一个数据提供节点发送指令,以使隐私提供节点、至少一个数据提供节点向至少两个计算节点发送目标数据。计算节点在接收到数据后,可以从执行主体处获取计算逻辑,以对接收到的数据进行计算。
53.步骤402,获取针对目标数据的处理信息。
54.步骤403,根据处理信息,确定函数调用链。
55.本实施例中,执行主体可以根据处理信息,确定函数调用链。具体的,执行主体可以首先对处理信息进行分析,确定代码中函数的调用关系。将各函数的调用关系串联,得到函数调用链。
56.步骤404,根据函数调用链,确定各参数的目标调用次数。
57.在得到函数调用链后,执行主体可以统计各参数在函数调用链中的出现次数,将得到的次数作为目标调用次数。
58.步骤405,根据处理信息,向至少两个计算节点发送数据处理指令,以供至少两个计算节点对目标数据进行处理。
59.步骤406,实时从至少两个计算节点处获取数据处理过程中得到的各参数值以及各参数的实际调用次数。
60.步骤405~406的原理与步骤203~204的原理类似,此处不再赘述。
61.步骤407,响应于确定各参数值的目标调用次数大于实际调用次数,存储各参数值以及向至少两个计算节点发送存储指令以存储各参数值。
62.本实施例中,如果各参数值的目标调用次数大于实际调用次数,说明参数值仍会被调用。这种情况下,执行主体可以从各计算节点处获取计算得到的参数值,并存储各参数值。同时执行主体也可以向至少两个计算节点发送存储指令,即通知各计算节点存储各参数值。
63.步骤408,响应于确定各参数值的目标调用次数等于实际调用次数,确定除函数调用链顶部的参数值之外的参数值为待删除参数值;删除待删除参数值以及向至少两个计算节点发送删除指令以删除待删除参数值。
64.本实施例中,如果各参数值的目标调用次数等于实际调用次数,说明计算逻辑已执行完毕。此时,执行主体可以只保留函数调用链顶部的参数值。这里,函数调用链顶部的参数可以是最终得到的至少一个计算值。执行主体可以只保留这些参数值,以便用于后续的计算。将其余的参数值作为待删除参数值,并将之前存储的待删除参数值删除。同时,执行主体还可以向至少两个计算节点发送删除指令,即通知各计算节点删除待删除参数值。
65.步骤409,根据至少一个数据提供节点提供的数据,向至少一个数据提供节点发送指令,以使至少一个数据提供节点从至少两个计算节点处获取数据处理结果。
66.本实施例中,执行主体在确定各计算节点完成数据处理后,可以将数据处理结果返回给数据提供节点。但存在多个数据提供节点时,由于隐私数据保护方案,不能将a数据提供节点的数据处理结果发送给b数据提供节点。由于各数据提供节点发送给各计算节点的数据具有标识,执行主体可以根据各数据提供节点提供的数据的标识,向各数据提供节点发送指令,以使其从计算节点处获取与数据的标识对应的数据处理结果。这样,既能保证原始数据得到利用,又能保证原始数据的处理结果不会被泄露。
67.本技术的上述实施例提供的用于处理数据的方法,可以根据函数调用链确定各参数的目标调用次数,并根据目标调用次数和实际调用次数判断参数值是否仍然会被使用。在确定不会被使用后,只保存函数调用链顶部的参数值以便后续使用。另外,还可以将数据处理结果返回给提供对应数据的数据提供节点。
68.进一步参考图5,作为对上述各图所示方法的实现,本技术提供了一种用于处理数
据的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
69.如图5所示,本实施例的用于处理数据装置500包括:信息获取单元501、次数确定单元502、处理指令发送单元503、次数获取单元504和参数处理单元505。
70.信息获取单元501,被配置成获取针对目标数据的处理信息。
71.次数确定单元502,被配置成确定处理信息中各参数的目标调用次数。
72.处理指令发送单元503,被配置成根据处理信息,向至少两个计算节点发送数据处理指令,以供至少两个计算节点对目标数据进行处理。
73.次数获取单元504,被配置成实时从至少两个计算节点处获取数据处理过程中得到的各参数值以及各参数的实际调用次数。
74.参数处理单元505,被配置成根据目标调用次数以及实际调用次数,对各参数值进行处理。
75.在本实施例的一些可选的实现方式中,次数确定单元502可以进一步被配置成:根据处理信息,确定函数调用链;根据函数调用链,确定各参数的目标调用次数。
76.在本实施例的一些可选的实现方式中,参数处理单元505可以进一步被配置成:响应于确定各参数值的目标调用次数大于实际调用次数,存储各参数值以及向至少两个计算节点发送存储指令以存储各参数值。
77.在本实施例的一些可选的实现方式中,参数处理单元505可以进一步被配置成:响应于确定各参数值的目标调用次数等于实际调用次数,确定除函数调用链顶部的参数值之外的参数值为待删除参数值;删除待删除参数值以及向至少两个计算节点发送删除指令以删除待删除参数值。
78.在本实施例的一些可选的实现方式中,装置500还可以进一步包括图5中未示出的第一指令发送单元,被配置成向隐私提供节点、至少一个数据提供节点发送指令,以使隐私提供节点、至少一个数据提供节点向至少两个计算节点发送目标数据。
79.在本实施例的一些可选的实现方式中,装置500还可以进一步包括图5中未示出的第二指令发送单元,被配置成根据至少一个数据提供节点提供的数据,向至少一个数据提供节点发送指令,以使至少一个数据提供节点从至少两个计算节点处获取数据处理结果。
80.应当理解,用于处理数据的装置500中记载的单元501至单元505分别与参考图2中描述的方法中的各个步骤相对应。由此,上文针对用于处理数据的方法描述的操作和特征同样适用于装置500及其中包含的单元,在此不再赘述。
81.根据本技术的实施例,本技术还提供了一种电子设备和一种可读存储介质。
82.如图6所示,是根据本技术实施例的执行用于处理数据的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
83.如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安
装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
84.存储器602即为本技术所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本技术所提供的执行用于处理数据的方法。本技术的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本技术所提供的执行用于处理数据的方法。
85.存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本技术实施例中的执行用于处理数据的方法对应的程序指令/模块(例如,附图5所示的信息获取单元501、次数确定单元502、处理指令发送单元503、次数获取单元504和参数处理单元505)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的执行用于处理数据的方法。
86.存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据执行用于处理数据的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至执行用于处理数据的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
87.执行用于处理数据的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
88.输入装置603可接收输入的数字或字符信息,以及产生与执行用于处理数据的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
89.此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
90.这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
91.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
92.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
93.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
94.根据本技术实施例的技术方案,可以根据参数的实际调用次数和目标调用次数,判断参数是否仍然会被使用,并根据判断结果对参数值进行处理,在保证计算正确的前提下,有效地减小了内存的占用。
95.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本技术公开的技术方案所期望的结果,本文在此不进行限制。
96.上述具体实施方式,并不构成对本技术保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本技术的精神和原则之内所作的修改、等同替换和改进等,均应包含在本技术保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献