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

一种安全业务执行方法及装置

文献发布时间:2023-06-19 18:37:28


一种安全业务执行方法及装置

技术领域

本说明书涉及安全多方计算技术领域,尤其涉及一种安全业务执行方法及装置。

背景技术

在安全多方计算领域,秘密数据通常以和共享形式存储在不同方。安全多方计算即多方基于自身持有的秘密数据的部分数据(即,和共享形式下的子数据),共同计算出一个函数的结果,而不泄露这个函数各方输入的子数据。

目前,一些安全多方计算过程涉及对秘密数据的取值范围的计算,以基于取值范围执行业务。本说明书提供一种安全业务执行方法,以执行安全业务。

发明内容

本说明书提供一种安全业务执行方法及装置,以至少部分的解决现有的技术问题。

本说明书采用下述技术方案:

本说明书提供了一种安全业务执行方法,所述方法用于第一方、第二方以及协助计算的第三方进行安全多方计算;秘密数据以和共享形式被拆分为第一秘密数据以及第二秘密数据,所述第一秘密数据由所述第一方持有,所述第二秘密数据由所述第二方持有,所述方法包括:

所述第一方从所述第三方获取第一随机数;

根据所述第一随机数以及所述第一秘密数据,生成第三中间数以及第四中间数,并发送至所述第二方,使所述第二方确定第二进位值以及第二转换参数;并接收所述第二方发送的第一中间数以及第二中间数,所述第一中间数以及所述第二中间数为所述第二方根据所述第二秘密数据以及从所述第三方获取的第二随机数确定的;

根据所述第一秘密数据以及所述第一中间数,确定第一进位值,根据所述第一秘密数据以及所述第二中间数,确定所述秘密数据与目标数据的第一转换参数;

接收所述第二方发送的第五中间数,所述第五中间数为所述第二方根据所述第二进位值、所述第二转换参数以及所述第三方提供的第三随机数确定的;

根据所述第一进位值、所述第一转换参数以及所述第五中间数,确定所述秘密数据对应的目标数据;

根据所述目标数据,确定所述秘密数据在和共享形式下的取值范围,并根据所述取值范围与所述第二方执行安全业务。

可选地,根据所述第一随机数以及所述第一秘密数据,生成第三中间数以及第四中间数,并发送至所述第二方,使所述第二方确定第二进位值以及第二转换参数;并接收所述第二方发送的第一中间数以及第二中间数,具体包括:

根据所述第一秘密数据各位的数值以及所述第一随机数,生成各位对应的第三中间数以及第四中间数,并发送至所述第二方,使所述第二方确定各位的第二进位值以及各位对应的第二转换参数;

接收所述第二方发送的所述秘密数据各位对应的第一中间数及第二中间数;所述秘密数据各位对应的第一中间数为所述第二方根据所述第二秘密数据各位的数值以及从所述第三方获取的第二随机数确定的,所述秘密数据各位对应的第二中间数为所述第二方根据所述第二秘密数据各位的数值以及从所述第三方获取的第二随机数确定的。

可选地,根据所述第一秘密数据各位的数值以及所述第一随机数,生成各位对应的第三中间数以及第四中间数,并发送至所述第二方,使所述第二方确定各位的第二进位值以及各位对应的第二转换参数;接收所述第二方发送的所述秘密数据各位对应的第一中间数及第二中间数,具体包括:

所述第一方通过与所述第二方多轮交互,向所述第二方发送第三中间数以及第四中间数,并接收所述第二方发送的所述秘密数据各位对应的第一中间数及第二中间数;其中,每轮交互采用下述方式进行:

将所述秘密数据对应的已确定第一进位值的最高位作为第一输入位,并将已确定第一转换参数的最低位的低一位作为第二输入位;

根据所述第一秘密数据的所述第一输入位数值以及从所述第三方获取的第一随机数,生成所述第一输入位对应的第三中间数,以及根据所述第一秘密数据的所述第二输入位数值及所述第一随机数,生成所述第二输入位对应的第四中间数,并将所述第三中间数与所述第四中间数发送至所述第二方,使所述第二方根据所述第三中间数确定所述第一输入位的高一位的第二进位值,以及根据所述第四中间数确定所述第二输入位的第二转换参数;

接收所述第二方发送所述第一输入位对应的第一中间数,以及所述第二输入位对应的第二中间数。

可选地,根据所述第一秘密数据以及所述第一中间数,确定第一进位值,根据所述第一秘密数据以及所述第二中间数,确定所述秘密数据与目标数据的第一转换参数,具体包括:

根据所述第一秘密数据各位的数值以及各位对应的第一中间数,分别确定各位对应的第一进位值,根据所述第一秘密数据各位的数值以及各位对应的第二中间数,分别确定各位对应的第一转换参数。

可选地,根据所述第一秘密数据各位的数值以及各位对应的第一中间数,分别确定各位对应的第一进位值,根据所述第一秘密数据各位的数值以及各位对应的第二中间数,分别确定各位对应的第一转换参数,具体包括:

根据所述第一秘密数据的所述第一输入位数值、所述第一输入位的第一进位值以及所述第一输入位对应的第一中间数,确定所述第一输入位的高一位的第一进位值;

根据所述第一秘密数据的所述第二输入位数值以及所述第二输入位对应的第二中间数,确定所述第二输入位的第一转换参数。

可选地,根据所述第一秘密数据的所述第一输入位数值、所述第一输入位的第一进位值以及所述第一输入位对应的第一中间数,确定所述第一输入位的高一位的第一进位值,具体包括:

根据所述第一秘密数据的所述第一输入位数值以及所述第一输入位对应的第一中间数,确定所述第一输入位的第一乘积;

根据所述第一秘密数据的所述第一输入位数值、所述第一输入位对应的第一中间数以及所述第一输入位的第一进位值,确定所述第一输入位的第二乘积;

根据所述第一乘积以及所述第二乘积,确定所述第一输入位的高一位在所述秘密数据上的第一进位值。

可选地,所述第一转换参数包括第三转换参数以及第四转换参数;

根据所述第一秘密数据的所述第二输入位数值以及所述第二输入位对应的第二中间数,确定所述第二输入位的第一转换参数,具体包括:

根据所述第一秘密数据的所述第二输入位的数值、所述第二输入位对应的第二中间数、所述第二输入位的高一位对应的第三转换参数及第四转换参数,确定所述第二输入位对应的所述秘密数据与目标数据的第三转换参数;

根据所述第一秘密数据的所述第二输入位的数值、所述第二输入位对应的第二中间数,以及所述第二输入位的高一位对应的第四转换参数,确定所述第二输入位对应的所述秘密数据与所述目标数据的第四转换参数。

可选地,所述秘密数据与所述目标数据位数相同;所述第一转换参数包括第三转换参数以及第四转换参数;

根据所述第一进位值、所述第一转换参数以及所述第五中间数,确定所述秘密数据对应的目标数据,具体包括:

针对所述秘密数据的每一位,根据该位对应的第五中间数、该位的第一进位值以及该位的第三转换参数,确定该位的第三转换参数的和数据与该位的第一进位值的和数据对应的第三乘积;

根据确定出的第三乘积以及该位的第四转换参数,确定所述秘密数据对应的目标数据的该位数据;

根据所述目标数据的各位数据,确定所述目标数据。

可选地,根据所述目标数据,确定所述秘密数据在和共享形式下的取值范围,具体包括:

以所述目标数据的低位到高位的顺序,通过逐位差分,确定所述目标数据的独热编码;

将所述独热编码,作为所述秘密数据在和共享形式下的取值范围。

本说明书提供了一种安全业务执行装置,所述装置用于第一方、第二方以及协助计算的第三方进行安全多方计算;秘密数据以和共享形式被拆分为第一秘密数据以及第二秘密数据,所述第一秘密数据由所述第一方持有,所述第二秘密数据由所述第二方持有,所述装置包括:

获取模块,用于从所述第三方获取第一随机数;

第一交互模块,用于根据所述第一随机数以及所述第一秘密数据,生成第三中间数以及第四中间数,并发送至所述第二方,使所述第二方确定第二进位值以及第二转换参数;并接收所述第二方发送的第一中间数以及第二中间数,所述第一中间数以及所述第二中间数为所述第二方根据所述第二秘密数据以及从所述第三方获取的第二随机数确定的;

计算模块,用于根据所述第一秘密数据以及所述第一中间数,确定第一进位值,根据所述第一秘密数据以及所述第二中间数,确定所述秘密数据与目标数据的第一转换参数;

第二交互模块,用于接收所述第二方发送的第五中间数,所述第五中间数为所述第二方根据所述第二进位值、所述第二转换参数以及所述第三方提供的第三随机数确定的;

转换模块,用于根据所述第一进位值、所述第一转换参数以及所述第五中间数,确定所述秘密数据对应的目标数据;

执行模块,用于根据所述目标数据,确定所述秘密数据在和共享形式下的取值范围,并根据所述取值范围与所述第二方执行安全业务。

本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述安全业务执行方法。

本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述安全业务执行方法。

本说明书采用的上述至少一个技术方案能够达到以下有益效果:

在上述安全业务执行方法中,作为私有信息的秘密数据以和共享形式被拆为第一方持有的第一秘密数据及第二方持有的第二秘密数据,参与安全多方计算的第一方通过根据第一秘密数据及从第三获取的第一随机数,生成第三中间数及第四中间数并发至第二方,使第二方确定第二进位值及第二转换参数,并接收第二方发的第一中间数及第二中间数,以确定秘密数据的第一进位值以及第一转换参数,并接收第二方发送的第五中间数,根据第一进位值、第一转换参数及第五中间数,确定秘密数据对应的目标数据,以确定秘密数据在和共享形式下的取值范围,与第二方执行安全业务。

从上述内容中可以看出,本说明书中提供的安全业务执行方法能够使第一方通过与第二方的少次交互,基于从第二方接收到的中间数计算秘密数据对应的第一进位值以及秘密数据与目标数据的第一转换参数,以确定目标数据,并进一步确定秘密数据的取值范围,以执行安全业务,同时不泄露秘密数据本身。并且,第一进位值的计算与第一转换参数的计算互不干扰,可同时进行,交互效率与计算效率高。

附图说明

此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:

图1为本说明书中一种安全业务执行方法的流程示意图;

图2为本说明书提供的一种交互计算示意图;

图3为本说明书提供的一种安全业务执行装置示意图;

图4为本说明书提供的一种对应于图1的电子设备的示意图。

具体实施方式

为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。

本说明书以计算出能够表示秘密数据的取值范围,且不泄露秘密数据本身的计算结果为目的,进行安全多方计算,计算得到取值范围后,基于取值范围执行安全业务。得到的该计算结果,即求得的用于表示秘密数据的取值范围的数据。

为了安全计算出秘密数据的取值范围,其中一种方法是:

步骤1:参与安全多方计算的第一方基于安全计算协议,通过与第二方交互,根据A2B(Arithmetic to Bool)协议,协同实现将算数共享(Arithmetic Sharing)的秘密数据转换为布尔共享(Bool Sharing)的秘密数据。

其中,算数共享与布尔共享是不同的和共享形式。当数据Q被多方算数共享时,各方持有的共享子数据相加后,可得到数据Q。当数据Q被多方布尔共享时,各方持有的共享子数据异或后,可得到数据Q。

将算数共享(Arithmetic Sharing)的秘密数据转换为布尔共享(Bool Sharing)的秘密数据,即,将双方以算数共享形式存储的秘密数据的共享子数据,转换为布尔共享形式的共享子数据。而之所以基于A2B协议进行转换,是因为基于算数共享下的共享子数据无法实现对和共享形式下的秘密数据进行逐位累积或。而后续步骤中,需要通过对秘密数据进行逐位累积或,得到中间序列。

步骤2:第一方通过与第二方交互,协同实现对秘密数据的累积或,得到在双方布尔共享的中间序列。

第一方与第二方分别持有布尔共享形式下的中间序列的一个共享子数据。

其中,对秘密数据进行累积或,即从秘密数据的高位到低位(从左向右),逐位进行或操作。通过累计或得到的中间序列与秘密数据位数相同。

步骤3:对中间序列进行逐位差分,得到在双方布尔共享的最终序列。

对中间序列的差分从低位到高位(从右向左)进行,差分后的最终序列为仅有一位为1,其余位皆为0的序列,即最终序列为一个独热编码(one-hot)。并且,最终序列的唯一非零位与秘密数据的首个非零位相同,最终序列的唯一非零位,即秘密数据的首个非零位,同样是表示秘密数据的取值范围的区间指数。

第一方与第二方可分别基于自己持有的中间序列的共享子数据逐位进行差分,得到最终序列的共享子数据。基于第一方与第二方的共享子数据可还原最终序列。

其中,首个非零位即从左到右第一个非零位,即最高非零位。区间指数即首个非零位对应的二进制权值的指数。

例如,假设秘密数据=01001,其十进制数为0×2

最终序列的唯一非零位为第3位(最低位为第零位)因此,3即区间指数k,秘密数据的取值范围为[2

当然,由于中间序列已经为能够表示秘密数据的取值范围(最高非零位即区间指数),且不泄露秘密数据本身的数据,因此,在本说明书一个或多个实施例中,也可将中间序列作为对秘密数据的取值范围的计算结果。但最终序列与秘密数据的相似性更低,更不易于还原或泄露秘密数据本身,因此,也可将最终序列作为对秘密数据取值范围的计算结果。具体采用哪种作为计算结果,可根据需要设置。

上述方法能够安全计算得到秘密数据的取值范围,但是,步骤1与步骤2皆需要第一方针对秘密数据的每一位,与第二方进行交互。由于进行A2B得到布尔共享的秘密数据的过程与得到中间序列的过程这两个步骤是具有递进关系的,步骤1与步骤2需要依次执行,第一方需要先通过与第二方交互协同得到布尔共享的秘密数据,才能进一步与第二方交互,以计算出中间序列的共享子数据。步骤3则无需交互。

这使得基于该方法确定秘密数据的取值范围需经第一方、第二方双方进行多次交互,交互次数为2n,n表示秘密数据包含的位数,则交互次数为秘密数据位数的2倍。且,1、2两个步骤的交互需消耗大量的时间,因而确定秘密数据的取值范围的效率较低。

为了减少参与安全计算的双方的交互次数,提升交互效率,本说明书提供了一种安全业务执行方法,需要说明的是,本说明书后续所提及的“该方法”,指该安全业务执行方法。

在本说明书提供的安全业务执行方法中,与上述基于A2B的方法对比,本说明书的安全业务执行方法对秘密数据取值范围的安全计算可视为包含计算进位值、计算秘密数据与秘密数据的转化数据间的转换参数、确定转化数据的目标数据以得到和共享形式下的取值范围三个过程。该方法中的转化数据与上述基于A2B的方法中的中间序列类似,皆为由秘密数据转换得到的,能够体现秘密数据的取值范围但不泄露秘密数据本身的数据。但该方法用于确定转化数据的目标数据的过程1(计算进位值)与过程2(计算转换参数)可以同时执行,可视为一个步骤,并且,一次交互可同时传输用于确定秘密数据的一位对应的进位值的中间数,以及用于确定目标数据一位对应的转换参数的中间数,对于n位的秘密数据则需n次交互,而确定目标数据以得到取值范围的计算结果的过程中仅需一次交互。

因此,该方法交互次数更少,为n+1次,即交互次数为秘密数据的位数加一。因而,通过该方法确定秘密数据取值范围的效率更高。

其中,目标数据为第一方计算得到的转化数据的一个共享子数据。转化数据的另一个共享子数据由第二方计算得到。在第一方与第二方皆计算得到各自对应的转化数据共享子数据后,则计算得到转化数据。

以下对本说明书涉及的一些概念进行说明:

和共享形式:在双方安全计算中,需要把一个位数从低到高为从0~n-1位的整数x(即,占n位的整数x),以x=x0+x1的共享形式分布式储存在P0、P1双方,使得双方均不知道对方的共享子数据。其中“+”表示阿贝尔群中的加法。x、x0、x1皆为阿贝尔群中的元素。0位即二进制权值为2

和共享形式的安全计算:保持和共享形式进行计算,计算结果仍以和共享形式分别存储在参与安全计算的各方。在计算过程中,参与安全计算的各方均不知道其他方持有的共享子数据。

布尔共享:将n比特数字的每一比特表示为mod 2的共享的表示方法。

算术共享:将n比特数字表示成mod 2

在本说明书中,对秘密数据的取值范围的安全计算为和共享形式下的安全计算,计算得到的结果仍以和共享形式存储于参与安全计算的各方。

群:在数学中,“群”表示一个满足封闭性、满足结合律、有单位元、有逆元的二元运算的代数结构。其中,通常可以使用乘法符号“*”(在无歧义时可省略)或加法符号“+”作为该二元运算的符号,但需要注意的是,该二元运算不一定等同于四则运算中的乘法或加法。若干元素通过一次或多次二元运算产生的结果可称为合值。

满足交换律的群称为阿贝尔群,阿贝尔群由自身的集合G和二元运算*构成。

本说明书涉及一种阿贝尔群,为模(mod)2

本说明书中的秘密数据S=x+y,S∈G。存在唯一的区间指数k∈{0,1,……,n-1}使得秘密数据S∈[2

其中,秘密数据S以和共享形式存储于参与安全计算的第一方、第二方双方。即,双方分别存储秘密数据的一部分,第一方持有x,第二方持有y(第二秘密数据)。其中,x为第一秘密数据,y为第二秘密数据,皆为秘密数据的共享子数据。秘密数据为第一秘密数据与第二秘密数据的和数据。

在本说明书中,当一个数据在和共享形式下被分为被第一方与第二方分别持有的两部分时,第一方与第二方各自持有的部分为该数据的共享子数据。该数据则为自身的共享子数据的和数据。

例如,秘密数据S为十进制数4,且是模4下的数,二进制即为00。S0(S的第0位数据)为0,S1(S的第1位数据)也为0。第一秘密数据x与第二秘密数据y为S算数共享的共享子数据。假设二进制x是01,即十进制的1,二进制y是11,即十进制的3。x0表示x的第0位数据,为1,x1表示x的第1位数据,为0。y0表示y的第0位数据,为1,y1表示y的第1位数据,也为1。x0与y0即秘密数据S的第0位数据的各共享子数据。x1与y1即秘密数据的第1位数据的各共享子数据。

其中,S0=x0+y0 mod 2。S0=x0异或y0。但S1不等于x1+y1模2。即S1不等于x1异或y1。因为x0+y0有向第1位的进位。第0位向第1位的进位值为1。

在本说明书中,通过计算与秘密数据存在转换关系的转化数据的目标数据,并基于目标数据得到秘密数据在和共享形式下的取值范围,以执行安全业务。并且,得到的取值范围可以以布尔共享的形式存储于第一方、第二方双方。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

图1为本说明书中一种安全业务执行方法的流程示意图,具体包括以下步骤:

S100:所述第一方从所述第三方获取第一随机数。

在本说明书中,该安全业务执行方法用于第一方、第二方以及协助计算的第三方进行安全多方计算。该方法可由参与安全计算的第一方执行,具体可由第一方服务器执行。当然,本说明书仅以第一方的角度,对通过执行该方法得到秘密数据在和共享形式下的取值范围,以执行业务的过程进行说明。从第二方角度,第二方得到秘密数据在和共享形式下的取值范围的过程与该第一方执行该安全业务执行方法的过程类似。

如上所述,秘密数据以和共享形式被拆分为第一秘密数据以及第二秘密数据,第一秘密数据由参与安全多方计算的第一方持有,第二秘密数据由参与安全多方计算的第二方持有。第一秘密数据与第二秘密数据为秘密数据的共享子数据。

为了通过安全计算得到秘密数据在和共享形式下的取值范围,而参与安全多方计算的双方不向对方泄露自身存储的第一秘密数据或第二秘密数据,第一方与第二方双方需要基于安全计算协议进行中间数的交互以基于中间数进行计算。并且,中间数的生成可基于从第三方获取的随机数确定。

首先,该第一方可从第三方获取第一随机数。

S102:根据所述第一随机数以及所述第一秘密数据,生成第三中间数以及第四中间数,并发送至所述第二方,使所述第二方确定第二进位值以及第二转换参数;并接收所述第二方发送的第一中间数以及第二中间数,所述第一中间数以及所述第二中间数为所述第二方根据所述第二秘密数据以及从所述第三方获取的第二随机数确定的。

在本说明书中,基于该方法,第一方通过与第第二方交互,计算得到秘密数据的取值范围的一个共享子数据。通过与第一方交互,第二方则计算得到取值范围的另一个共享子数据。

第一方在与第二方交互时,可向第二方发送中间数,以协助第二方计算秘密数据的取值范围的一个共享子数据,并接收第二方发送的中间数,以便于在后续步骤中基于接收到的中间数计算第一进位值以及第一转换参数,以进一步计算出秘密数据的取值范围的另一个共享子数据。

因此,在获取到第一随机数后,该第一方可根据该第一随机数以及第一秘密数据,生成第三中间数以及第四中间数,并发送至第二方,使第二方确定第二进位值以及第二转换参数。并接收第二方发送的第一中间数以及第二中间数。

该第一中间数以及该第二中间数为第二方根据第二秘密数据以及从第三方获取的第二随机数确定的。

S104:根据所述第一秘密数据以及所述第一中间数,确定第一进位值,根据所述第一秘密数据以及所述第二中间数,确定所述秘密数据与目标数据的第一转换参数。

在本说明书一个或多个实施例中,在接收到第二方发送的第一中间数以及第二中间数后,该第一方可根据第一秘密数据以及第一中间数,确定第一进位值,根据第一秘密数据以及第二中间数,确定秘密数据与目标数据的第一转换参数。

其中,第一进位值为第一方计算得到的进位值的一个共享子数据。第二进位值为第二方计算得到的进位值的另一个共享子数据。第一转换参数为第一方计算得到的转换参数的一个共享子数据,第二转换参数为第二方计算得到的转换参数的另一个共享子数据。

该转换参数为秘密数据与秘密数据对应的转化数据间的转换关系的转换参数。

S106:接收所述第二方发送的第五中间数,所述第五中间数为所述第二方根据所述第二进位值、所述第二转换参数以及所述第三方提供的第三随机数确定的。

在本说明书一个或多个实施例中,在第二方计算出第二进位值以及第二转换参数之后,第二方则可根据第二进位值、第二转换参数以及第三方提供的第三随机数,确定第五中间数,并发送至该第一方。

该第一方则可接收第二方发送的第五中间数。该第五中间数用于确定秘密数据对应的目标数据。

当然,在第一方计算出第一进位值以及第一转换参数之后,也可根据第一进位值、第一转换参数以及从第三方获取的第四随机数,确定第六中间数,并发送至第二方,使第二方根据第六中间数确定秘密数据对应的转化数据的另一个共享子数据。为了方便区分,将该目标数据作为第一目标数据,将第二方确定出的转化数据的另一个共享子数据,作为第二目标数据。则,第一目标数据与第二目标数据为转化数据的两个共享子数据。

S108:根据所述第一进位值、所述第一转换参数以及所述第五中间数,确定所述秘密数据对应的目标数据。

在本说明书一个或多个实施例中,该第一方在接收到第五中间数后,则可根据计算出的第一进位值、第一转换参数以及接收到的第五中间数,确定秘密数据对应的转化数据的目标数据。

S110:根据所述目标数据,确定所述秘密数据在和共享形式下的取值范围,并根据所述取值范围与所述第二方执行安全业务。

在确定出目标数据后,该第一方可根据目标数据,确定秘密数据在和共享形式下的取值范围,即,确定取值范围的其中一个共享子数据。该第一方可协同第二方,根据第一方计算得到的取值范围的共享子数据与第二方计算得到的共享子数据,执行安全业务。

在本说明书一个或多个实施例中,该第一方可将确定出的目标数据,作为秘密数据在和共享形式下的取值范围,即取值范围的共享子数据。

或者,在确定出目标数据后,该第一方还可以以目标数据的低位到高位的顺序,通过逐位差分,确定目标数据的独热编码,并将该独热编码,作为秘密数据在和共享形式下的取值范围。

需要说明的是,根据第一方计算得到的目标数据的独热编码,以及第二方计算得到的第二目标数据的独热编码,还原得到的独热编码的和数据与将转化数据自低位到高位逐位差分的结果相同。

其中,该安全业务至少可以是对机器学习中的特征进行归一化的业务、进行T检验的业务中的一种,当然也可以是其他需要计算秘密数据的取值范围的业务。例如,秘密数据可以是资产量,在计算出不同机构对应的取值范围后,可基于各取值范围进行机构间资产量的比对。

以机器学习的归一化业务为例,该第一方可从第三方获取第五随机数,基于自身计算得到的取值范围的共享子数据以及第五随机数,确定第七中间数,将第七随机数发送至第二方,使第二方根据第七随机数以及该第二方计算得到的取值范围的共享子数据,确定用于归一化的初值的共享子数据,作为第二初值,并接收第二方发送的第八中间数。该第一方可基于第八中间数与自身的取值范围的共享子数据,确定初值的另一个共享子数据,作为第一初值。之后,第一方与第二方即可基于该初值进行牛顿迭代,并基于牛顿迭代结果进行归一化。

在本说明书一个或多个实施例中,转化数据的最高非零位为秘密数据的取值范围的区间指数。例如,假设转化数据的最高非零位为第3位,则区间指数为3。

其中,独热编码的和数据的唯一非零位也可为秘密数据的取值范围的区间指数。并且,转化数据的最高非零位、独热编码的唯一非零位以及秘密数据的最高非零位相同。

例如,独热编码的和数据的唯一非零位为第4位,则秘密数据的区间指数为4,秘密数据的取值范围为[2

需要说明的是,除非特别说明顺序,本说明书中的第几位皆为从低位到高位计数的,且为从第零位开始进行计数的。例如,对于十进制数8对应的二进制数,即1000,从低位到高位(从右向左),第零位(2的0次方对应的位)、第1位(2的1次方对应的位)、第2位(2的2次方对应的位)皆为0,第3位(2的3次方对应的位)为1。但当提及首个非零位,所指的是从高位到低位的首个非零位,即最高非零位。

基于图1所示的安全业务执行方法,作为私有信息的秘密数据以和共享形式被拆为第一方持有的第一秘密数据及第二方持有的第二秘密数据,参与安全多方计算的第一方通过根据第一秘密数据及从第三获取的第一随机数,生成第三中间数及第四中间数并发至第二方,使第二方确定第二进位值及第二转换参数,并接收第二方发的第一中间数及第二中间数,以确定秘密数据的第一进位值以及第一转换参数,并接收第二方发送的第五中间数,根据第一进位值、第一转换参数及第五中间数,确定秘密数据对应的目标数据,以确定秘密数据在和共享形式下的取值范围,与第二方执行安全业务。

从上述方法中可以看出,基于本方法,能够使得第一方通过与第二方的少次交互,基于从第二方接收到的中间数计算秘密数据对应的第一进位值以及秘密数据与目标数据的第一转换参数,以确定目标数据,并进一步确定秘密数据的取值范围,以执行安全业务,同时不泄露秘密数据本身。并且,第一进位值的计算与第一转换参数的计算互不干扰,可同时进行,交互效率与计算效率高。

另外,在本说明书中,秘密数据与转化数据位数、第一秘密数据的位数、第二秘密数据的位数、转化数据对应的第一目标数据、第二目标数据的位数皆相同。针对转化数据的每一位,该位数据与秘密数据的该位数据对应的进位值满足转换关系。

在本说明书一个或多个实施例中,对进位值的计算,即第一方对进位值的第一进位值的计算,以及第二方对进位值的第二进位值的计算。对转换参数的计算,即第一方对转换参数的第一转换参数的计算,以及第二方对转换参数的第二转换参数的计算。

在本说明书中,秘密数据不同位对应的进位值可能不同,不同位对应的转换关系的转换参数也可不同。则不同位对应的第一进位值可能不同,不同位对应的第一转换参数也可能不同。

在本说明书步骤S102中,根据第一随机数以及第一秘密数据,生成第三中间数以及第四中间数,并发送至第二方,使第二方确定第二进位值以及第二转换参数;并接收第二方发送的第一中间数以及第二中间数时,具体的,该第一方可根据第一秘密数据各位的数值以及第一随机数,生成各位对应的第三中间数以及第四中间数,并发送至第二方,使第二方确定各位的第二进位值以及各位的第二转换参数。

并且,该第一方接收第二方发送的秘密数据各位对应的第一中间数及第二中间数。

其中,该秘密数据各位对应的第一中间数为第二方根据第二秘密数据各位的数值以及从第三方获取的第二随机数确定的。秘密数据各位对应的第二中间数为第二方根据第二秘密数据各位的数值以及从第三方获取的第二随机数确定的。

在本说明书一个或多个实施例中,用于确定不同位对应的中间数的随机数可不同也可相同。则用于第一方确定不同位对应的第三中间数的第一随机数、用于确定不同位对应的第四中间数的第一随机数可相同,也可不同。同样的,第二方确定不同位对应的第一中间数的第二随机数、确定不同位对应的第二中间数的第二随机数可相同,也可不同。

并且,第二随机数可以包含一组随机数。且在第二随机数中,用于确定第一中间数的随机数与用于确定第二中间数的随机数可不同。

进一步地,在本说明书一个或多个实施例中,在本说明书步骤S104中,在根据第一秘密数据以及第一中间数,确定第一进位值,根据第一秘密数据以及第二中间数,确定秘密数据与目标数据的第一转换参数时,具体的,该第一方可根据第一秘密数据各位的数值以及各位对应的第一中间数,分别确定各位对应的第一进位值,根据第一秘密数据各位的数值以及各位对应的第二中间数,分别确定各位对应的第一转换参数。

在本说明书一个或多个实施例中,秘密数据各位的进位值对应的第一进位值与各转换参数对应的第一转换参数可通过逐位计算得到。

由于秘密数据所有位中最低位对应的第一进位值已知,因此第一进位值的计算按照以低位到高位的顺序进行。该第一方可以低位到高位的顺序,依次针对秘密数据的每一位,接收第二方基于第二秘密数据确定的该位的第一中间数,以根据该第一中间数以及该位对应的第一进位值,确定秘密数据在该位的高一位对应的第一进位值。

对于第一转换参数,秘密数据所有位中最高位的高一位对应的第一转换参数已知,因此,对第一转换参数的计算按照以高位到低位的顺序进行。该第一方可以高位到低位的顺序,依次针对秘密数据的每一位,接收第二方基于第二秘密数据确定的该位的第二中间数,以根据该第二中间数以及该位的高一位对应的第一转换参数,确定秘密数据与转化数据的目标数据在该位对应的第一转换参数。后续为了方便描述,将秘密数据与转化数据的目标数据的第一转换参数,称为秘密数据与目标数据的第一转换参数。

如上所述,对第一进位值的逐位计算与对第一转换参数的逐位计算由于互不干扰,可同时进行,则,第一方可针对待生成的秘密数据的目标数据,同时以依次从高位到低位及依次从低位到高位的顺序,逐位与第二方交互,接收第一中间数及第二中间数,以确定各位的第一进位值及秘密数据与目标数据在各位的第一转换参数。

在本说明书一个或多个实施例中,针对秘密数据的每一位,该位在秘密数据上的进位值为该位的低一位向该位的进位值。

其中,已确定第一进位值的最高位即,已确定出第一进位值的各位中,最高的一位。第一中间数为该最高位对应的,用于确定第一进位值的中间数。已确定第一转换参数的最低位即,已确定出第一转换参数的各位中,最低的一位。第二中间数即该最低位的低一位对应的,用于确定第一转换参数的中间数。

为了将秘密数据、目标数据等数据所有位中的最高位(绝对的最高位)与已确定第一进位值的最高位进行区分,将秘密数据、目标数据等数据所有位中最低位(绝对的最低位)与已确定第一转换参数的最低位进行区分,后续将已确定第一进位值的最高位称为当前最高位,将已确定第一转换参数的最低位称为当前最低位。当仅提及最高位时,则指绝对的最高位,当仅提及最低位时,则指绝对的最低位。

对于秘密数据所有位中的最低位(第零位),由于不存在比该最低位更低的位,因此该最低位对应的进位值为0。该位的第一进位值也为零。因此,当已确定第一进位值的当前最高位为第零位时,该当前最高位的第一进位值是已知的,可基于该第零位的第一进位值,确定该第零位的高一位对应的第一进位值。以逐位得到第一进位值。

对于转化数据W的最高位(同样是秘密数据的最高位),即,第n-1位,由于不存在比该最高位更高的位,即实际不存在第n位。因此W

在本说明书一个或多个实施例中,该第一方可持续与第二方交互直至依次确定出各位对应的进位值的共享子数据与转换参数的共享子数据为止。

因此,在本说明书一个或多个实施例中,该第一方可通过与第二方多轮交互,向第二方发送第三中间数以及第四中间数,并接收第二方发送的秘密数据各位对应的第一中间数及第二中间数。

其中,每轮交互采用下述方式进行:

该第一方将秘密数据对应的已确定第一进位值的最高位作为第一输入位,并将已确定第一转换参数的最低位的低一位作为第二输入位。以根据第一秘密数据的第一输入位数值以及从第三方获取的第一随机数,生成第一输入位对应的第三中间数,以及根据第一秘密数据的第二输入位数值及第一随机数,生成第二输入位对应的第四中间数,并将第三中间数与第四中间数发送至第二方,使第二方根据第三中间数确定第一输入位的高一位的第二进位值,以及根据第四中间数确定第二输入位的第二转换参数。

并且,第一方接收第二方发送的第一输入位对应的第一中间数,以及第二输入位对应的第二中间数。

进一步地,在接收到第一输入位对应的第一中间数,以及第二输入位对应的第二中间数后,该第一方则可根据第一秘密数据的第一输入位数值、第一输入位的第一进位值以及第一输入位对应的第一中间数,确定第一输入位的高一位的第一进位值。并根据第一秘密数据的第二输入位数值以及第二输入位对应的第二中间数,确定第二输入位的第一转换参数。

可见,进行一轮交互,第一方则可确定出秘密数据的其中一位对应的第一进位值以及其中一位对应的第一转换参数。当然,由于确定第一进位值时对秘密数据各位进行遍历的顺序与确定第一转换参数时相反,因此,一轮交互确定出的第一进位值对应的数据位与第一转换参数可能不同。

具体的,在确定第一输入位对应的第一进位值时,该第一方可根据第一秘密数据的第一输入位数值以及第一输入位对应的第一中间数,确定第一输入位的第一乘积。

该第一乘积为第一秘密数据中第一输入位的数值与第二秘密数据中第一输入位的数值的乘积的共享子数据。

并且,该第一方可根据第一秘密数据的第一输入位数值、第一输入位对应的第一中间数以及第一输入位的第一进位值,确定第一输入位的第二乘积。

该第二乘积为第一秘密数据中第一输入位的数值,和第二秘密数据中第一输入位的数值之和与第一输入位的第一进位值的和数据的乘积的共享子数据。第一输入位的第一进位值的和数据即第一输入位的进位值。

最后,该第一方可根据第一乘积以及第二乘积,确定第一输入位的高一位在秘密数据上的第一进位值。

在本说明书一个或多个实施例中,转换参数可包括一类转换参数以及二类转换参数。第一转换参数可包括第三转换参数以及第四转换参数。第三转换参数为第一方对应的一类转换参数的一个共享子数据,第四转换参数为第一方对应的二类转换参数的一个共享子数据。

在确定第二输入位的第一转换参数时,具体的,该第一方可根据第一秘密数据的第二输入位的数值、第二输入位对应的第二中间数、第二输入位的高一位对应的第三转换参数及第四转换参数,确定第二输入位对应的秘密数据与目标数据的第三转换参数。

并且,根据第一秘密数据的第二输入位的数值、第二输入位对应的第二中间数,以及第二输入位的高一位对应的第四转换参数,确定第二输入位对应的秘密数据与目标数据的第四转换参数。

在本说明书一个或多个实施例中,如上所述,秘密数据与目标数据位数相同。

在本说明书一个或多个实施例中,在确定出各位对应的第一进位值,以及各位对应的第一转换参数后,该第一方即可基于自身持有的第一进位值及第一转换参数,确定目标数据。在确定目标数据的过程中,无需逐位求取,该第一方可与第二方仅进行一次交互。

在步骤S108中确定秘密数据对应的目标数据时,具体的,该第一方可针对秘密数据的每一位,根据该位对应的第五中间数、该位的第一进位值以及该位的第三转换参数,确定该位的第三转换参数的和数据与该位的第一进位值的和数据对应的第三乘积。

其中,第三乘积即,该位的第三转换参数的和数据与该位的第一进位值的和数据的乘积的其中一个共享子数据。

之后,该第一方可根据确定出的第三乘积以及该位的第四转换参数,确定秘密数据对应的目标数据的该位数据。以根据目标数据的各位数据,确定目标数据。

在本说明书一个或多个实施例中,秘密数据与转化数据目标数据的转换关系可具体如下:

w

其中,w

可见,不同位对应的转换关系的转换参数可不同。可基于转换关系、各位的进位值的第一进位值以及各位转换参数的第一转换参数,确定转化数据的目标数据的每一位数据,在得到目标数据的每一位数据后,则可得到完整的目标数据。

当然,第一方并非计算出完整的a

在本说明书步骤S100~S104中,第一方与第二方共进行n次交互,在步骤S106中,第一方与第二方共进行1次交互,该1次交互用于在计算目标数据的过程中,计算各位的第三转换参数的和数据与对应的第一进位值的和数据的第三乘积,即,a

在本说明书一个或多个实施例中,c

矩阵形式为:

其中,i∈[0,n-1]。c

在本说明书一个或多个实施例中,转换参数基于以下公式确定:

(a

其中,i∈[0,n-1]。a

需要说明的是,在本说明书一个或多个实施例中,本说明书中所有的乘法计算皆可基于安全乘法协议进行。本说明书中通过基于转换关系将秘密数据转换为目标数据的过程,也为对秘密数据从高位到低位逐位进行累计或得到目标数据的过程。

本说明书还提供了转换关系的正确性证明:

w

假设第i+1位正确,即w

w

=(a

=(a

=[a

-1=(a

其中,S

因此,w

即i时正确。

需要说明的是之所以w

而w

其中,w

另外,在步骤S106该第一方与第二方进行最后一次交互,在第一方确定第六中间数时,该第一方可针对秘密数据每一位,从第三方获取该位对应的第四随机数,并根据该位对应的第一进位值、第一转换参数以及第四随机数,确定该位对应的第六中间数,并将确定出的第六中间数发送至第二方,使第二方根据第六中间数确定第二目标数据的该位数据。

需要说明的是,在本说明书确定取值范围的过程中,第一方与第二方在进行交互时,并非直接对第一秘密数据、第二秘密数据或第一秘密数据某几位数据、第二秘密数据某几位数据进行交互,而是对中间数的交互,交互以不泄露各方持有的共享子数据的形式进行。但基于交互的中间数进行计算,仍能达到基于第一秘密数据的数值与第二秘密数据的数值或第一秘密数据某几位数据的数值与第二秘密数据某几位数据的数值进行计算得到的结果。除中间数外,第一方所计算得到每个数据(如某一位第一进位值、某一位的第一转换参数),皆为不可泄露的“秘密”数据。

例如,假设需要计算第一秘密数据的第i位与第二秘密数据的第i位的乘积时,双方无需对第一秘密数据、第二秘密数据或第一秘密数据第i位、第二秘密数据第i位进行交互,双方可基于安全乘法协议,通过交互中间数并基于中间数进行安全计算,在不向对方泄露自己持有的第一秘密数据或第二秘密数据的情况下,计算出第一秘密数据的第i位与第二秘密数据的第i位的乘积。如图2所示。

图2为本说明书提供的一种交互计算示意图。如图,第一方与第二方基于第三方发送的随机数,生成中间数,并交互,以计算各自对应的共享子数据。其中,x、y为两个“秘密”数据。第一方与第二方通过交互,计算各自分别对应的xy这一乘积的共享子数据。第一方对应共享子数据F0,第二方对应共享子数据F1。并且,第一方持有x的共享子数据x0,第一方持有y的共享子数据y0。第二方持有x的共享子数据x1,第二方持有y的共享子数据y1。

图2中u0、u1、v0、v1、d0、d1皆为随机数,数字后缀为0的为第一方对应的随机数,数字后缀为1的是第二方对应的随机数。可见,第三方生成u0、u1、v0、v1、d0后,基于公式d1=(u0+u1)(v0+v1)-d0求得d1,并将u0、v0、d0发送至第一方,将u1、v1、d1发送至第二方。第一方基于公式dx0=x0-u0与dy0=y0-v0求得dx0、dy0后发送至第二方,第二方基于公式dx1=x1-u1与dy1=y1-v1求得dx1与dy1后,发送至第一方。之后,第一方根据公式dx=dx0+dx1与dy=dy0+dy1,求得dx、dy,并基于公式F0=dx*y0+u0*dy+d0,确定F0。第二方则根据公式dx=dx0+dx1与dy=dy0+dy1求得dx、dy,并基于公式F1=dx*y1+u1*dy+d1,确定F1。

可见,第一方在计算F0时,未向第二方泄露自身存储的x0与y0,第二方在计算F1时,也未向第一方泄露自身存储的x1与y1。其中,x0与x1为x的共享子数据,y0与y1为y的共享子数据,如上所述,后缀为0的共享子数据由第一方存储,后缀为1的共享子数据由第二方存储。

并且,(x0+x1)×(y0+y1)=(x0+x1-u0-u1)×(y0+y1)+(u0+u1)×(y0+y1-v0-v1)+(u0+u1)×(v0+v1)。

以上为本说明书的一个或多个实施例提供的安全业务执行方法,基于同样的思路,本说明书还提供了安全业务执行装置,如图3所示。

图3为本说明书提供的一种安全业务执行装置示意图,所述装置用于第一方、第二方以及协助计算的第三方进行安全多方计算;秘密数据以和共享形式被拆分为第一秘密数据以及第二秘密数据,所述第一秘密数据由所述第一方持有,所述第二秘密数据由所述第二方持有,所述装置包括:

获取模块200,用于从所述第三方获取第一随机数;

第一交互模块201,用于根据所述第一随机数以及所述第一秘密数据,生成第三中间数以及第四中间数,并发送至所述第二方,使所述第二方确定第二进位值以及第二转换参数;并接收所述第二方发送的第一中间数以及第二中间数,所述第一中间数以及所述第二中间数为所述第二方根据所述第二秘密数据以及从所述第三方获取的第二随机数确定的;

计算模块202,用于根据所述第一秘密数据以及所述第一中间数,确定第一进位值,根据所述第一秘密数据以及所述第二中间数,确定所述秘密数据与目标数据的第一转换参数;

第二交互模块203,用于接收所述第二方发送的第五中间数,所述第五中间数为所述第二方根据所述第二进位值、所述第二转换参数以及所述第三方提供的第三随机数确定的;

转换模块204,用于根据所述第一进位值、所述第一转换参数以及所述第五中间数,确定所述秘密数据对应的目标数据;

执行模块205,用于根据所述目标数据,确定所述秘密数据在和共享形式下的取值范围,并根据所述取值范围与所述第二方执行安全业务。

可选地,所述第一交互模块201,还用于根据所述第一秘密数据各位的数值以及所述第一随机数,生成各位对应的第三中间数以及第四中间数,并发送至所述第二方,使所述第二方确定各位的第二进位值以及各位对应的第二转换参数,接收所述第二方发送的所述秘密数据各位对应的第一中间数及第二中间数,所述秘密数据各位对应的第一中间数为所述第二方根据所述第二秘密数据各位的数值以及从所述第三方获取的第二随机数确定的,所述秘密数据各位对应的第二中间数为所述第二方根据所述第二秘密数据各位的数值以及从所述第三方获取的第二随机数确定的。

可选地,所述第一交互模块201,还用于所述第一方通过与所述第二方多轮交互,向所述第二方发送第三中间数以及第四中间数,并接收所述第二方发送的所述秘密数据各位对应的第一中间数及第二中间数,其中,每轮交互采用下述方式进行:将所述秘密数据对应的已确定第一进位值的最高位作为第一输入位,并将已确定第一转换参数的最低位的低一位作为第二输入位,根据所述第一秘密数据的所述第一输入位数值以及从所述第三方获取的第一随机数,生成所述第一输入位对应的第三中间数,以及根据所述第一秘密数据的所述第二输入位数值及所述第一随机数,生成所述第二输入位对应的第四中间数,并将所述第三中间数与所述第四中间数发送至所述第二方,使所述第二方根据所述第三中间数确定所述第一输入位的高一位的第二进位值,以及根据所述第四中间数确定所述第二输入位的第二转换参数,接收所述第二方发送所述第一输入位对应的第一中间数,以及所述第二输入位对应的第二中间数。

可选地,所述计算模块202,还用于根据所述第一秘密数据各位的数值以及各位对应的第一中间数,分别确定各位对应的第一进位值,根据所述第一秘密数据各位的数值以及各位对应的第二中间数,分别确定各位对应的第一转换参数。

可选地,所述计算模块202,还用于根据所述第一秘密数据的所述第一输入位数值、所述第一输入位的第一进位值以及所述第一输入位对应的第一中间数,确定所述第一输入位的高一位的第一进位值,根据所述第一秘密数据的所述第二输入位数值以及所述第二输入位对应的第二中间数,确定所述第二输入位的第一转换参数。

可选地,所述计算模块202,还用于根据所述第一秘密数据的所述第一输入位数值以及所述第一输入位对应的第一中间数,确定所述第一输入位的第一乘积,根据所述第一秘密数据的所述第一输入位数值、所述第一输入位对应的第一中间数以及所述第一输入位的第一进位值,确定所述第一输入位的第二乘积,根据所述第一乘积以及所述第二乘积,确定所述第一输入位的高一位在所述秘密数据上的第一进位值。

可选地,所述第一转换参数包括第三转换参数以及第四转换参数,所述计算模块202,还用于根据所述第一秘密数据的所述第二输入位的数值、所述第二输入位对应的第二中间数、所述第二输入位的高一位对应的第三转换参数及第四转换参数,确定所述第二输入位对应的所述秘密数据与目标数据的第三转换参数,根据所述第一秘密数据的所述第二输入位的数值、所述第二输入位对应的第二中间数,以及所述第二输入位的高一位对应的第四转换参数,确定所述第二输入位对应的所述秘密数据与所述目标数据的第四转换参数。

可选地,所述秘密数据与所述目标数据位数相同,所述第一转换参数包括第三转换参数以及第四转换参数,所述转换模块204,还用于针对所述秘密数据的每一位,根据该位对应的第五中间数、该位的第一进位值以及该位的第三转换参数,确定该位的第三转换参数的和数据与该位的第一进位值的和数据对应的第三乘积,根据确定出的第三乘积以及该位的第四转换参数,确定所述秘密数据对应的目标数据的该位数据,根据所述目标数据的各位数据,确定所述目标数据。

可选地,执行模块205,还用于以所述目标数据的低位到高位的顺序,通过逐位差分,确定所述目标数据的独热编码,将所述独热编码,作为所述秘密数据在和共享形式下的取值范围。

本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述安全业务执行方法。

本说明书还提供了图4所示的对应于图1的电子设备的结构示意图。如图4所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述安全业务执行方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

技术分类

06120115636505