数据处理方法、装置和电子设备
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法、装置和电子设备。
背景技术
大数据时代,存在非常多的数据孤岛。数据通常分散存于不同的企业中,企业与企业之间由于竞争关系和隐私保护的考虑,并不是完全的互相信任。在一些业务场景下,需要对位于不同企业的数据之间的大小关系进行比较。如何在保护数据隐私的条件下,快速地确定出比较结果,是当前亟需解决的技术问题。
发明内容
本说明书实施例提供一种数据处理方法、装置和电子设备,以在保护数据隐私的前提下,快速地确定出比较结果。
本说明书中一个或多个实施例提供的技术方案如下。
根据本说明书一个或多个实施例的第一方面,提供了一种数据处理方法,用于确定符号整数的最高比特位的取值,所述最高比特位的取值用于表示比较结果,该方法包括:第一方将符号整数的第一份额拆分为多个二进制串;第二方将符号整数的第二份额拆分为多个二进制串;第一方根据符号整数第一份额的二进制串,第二方根据符号整数第二份额的二进制串,并行秘密分享多个第一标志值,第一方得到多个第一标志值的第一份额,第二方得到多个第一标志值的第二份额;每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数第二份额的一个相应二进制串相加后的进位情况;第一方根据多个第一标志值的第一份额、以及多个第一取值集合,确定最高比特位的多个可能取值;每个第一取值集合包括多个第一标志值第二份额的一个可能取值;第一方根据最高比特位的多个可能取值,第二方根据第一特定集合在所述多个第一取值集合中的位置,进行不经意传输,第二方得到最高比特位的取值;所述第一特定集合为由第二方持有的多个第一标志值的第二份额构成的集合。
根据本说明书一个或多个实施例的第二方面,提供了一种数据处理方法,用于确定符号整数的最高比特位的取值,所述最高比特位的取值用于表示比较结果,该方法应用于第一方,包括:将符号整数的第一份额拆分为多个二进制串;根据符号整数第一份额的二进制串,与第二方并行秘密分享多个第一标志值,得到多个第一标志值的第一份额;每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数第二份额的一个相应二进制串相加后的进位情况;根据多个第一标志值的第一份额、以及多个第一取值集合,确定最高比特位的多个可能取值;每个第一取值集合包括多个第一标志值第二份额的一个可能取值;根据最高比特位的多个可能取值,与第二方进行不经意传输。
根据本说明书一个或多个实施例的第三方面,提供了一种数据处理方法,用于确定符号整数最高比特位的取值,所述最高比特位的取值用于表示比较结果,该方法应用于第二方,包括:将符号整数的第二份额拆分为多个二进制串;根据符号整数第二份额的二进制串,与第一方并行秘密分享多个第一标志值,得到多个第一标志值的第二份额;每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数第二份额的一个相应二进制串相加后的进位情况;根据第一特定集合在多个第一取值集合中的位置,与第一方进行不经意传输,得到最高比特位的取值;每个第一取值集合包括多个第一标志值第二份额的一个可能取值,所述第一特定集合为由第二方持有的多个第一标志值的第二份额构成的集合。
根据本说明书一个或多个实施例的第四方面,提供了一种数据处理装置,用于确定符号整数最高比特位的取值,所述最高比特位的取值用于表示比较结果,该装置设置于第一方,包括:拆分单元,用于将符号整数的第一份额拆分为多个二进制串;秘密分享单元,用于根据符号整数第一份额的二进制串,与第二方并行秘密分享多个第一标志值,得到多个第一标志值的第一份额;每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数第二份额的一个相应二进制串相加后的进位情况;确定单元,用于根据多个第一标志值的第一份额、以及多个第一取值集合,确定最高比特位的多个可能取值;每个第一取值集合包括多个第一标志值第二份额的一个可能取值;不经意传输单元,用于根据最高比特位的多个可能取值,与第二方进行不经意传输。
根据本说明书一个或多个实施例的第五方面,提供了一种数据处理装置,用于确定符号整数最高比特位的取值,所述最高比特位的取值用于表示比较结果,该装置应用于第二方,包括:拆分单元,用于将符号整数的第二份额拆分为多个二进制串;秘密分享单元,用于根据符号整数第二份额的二进制串,与第一方并行秘密分享多个第一标志值,得到多个第一标志值的第二份额;每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数第二份额的一个相应二进制串相加后的进位情况;不经意传输单元,用于根据第一特定集合在多个第一取值集合中的位置,与第一方进行不经意传输,得到最高比特位的取值;每个第一取值集合包括多个第一标志值第二份额的一个可能取值,所述第一特定集合为由第二方持有的多个第一标志值的第二份额构成的集合。
根据本说明书一个或多个实施例的第六方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第二方面所述的方法步骤。
根据本说明书一个或多个实施例的第七方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第三方面所述的方法步骤。
由以上本说明书一些实施例提供的技术方案可见,第一方可以将符号整数的第一份额拆分为多个二进制串,第二方可以将符号整数的第二份额拆分为多个二进制串。这样第一方和第二方可以采用并行的方式秘密分享多个第一标志值,每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数第二份额的一个相应二进制串相加后的进位情况。进而,第一方和第二方可以通过不经意传输,确定出符号整数最高比特位的取值。本说明书的一个或多个实施例通过采用并行的方式,可以在保护数据隐私的条件下,快速地确定出符号整数最高比特位的取值,从而可以快速地得到比较结果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一实施例的数据处理方法的流程图;
图2为本说明书一实施例的数据处理方法的示意图;
图3为本说明书一实施例的数据处理方法的流程图;
图4为本说明书一实施例的数据处理方法的流程图;
图5为本说明书一实施例的数据处理装置的功能结构图;
图6为本说明书一实施例的数据处理装置的功能结构图;
图7为本说明书一实施例的电子设备的功能结构图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
不经意传输(Oblivious Transfer,OT),又称为茫然传输,是一种可以保护隐私的双方通信协议,能够使通信双方以一种选择模糊化的方式传递数据。发送方可以具有多个数据。经由不经意传输接收方能够得到所述多个数据中的一个或多个数据。在此过程中,发送方不知晓接收方接收的是哪些数据;而接收方不能够得到其所接收数据之外的其它任何数据。
比特位,指二进制位。每个二进制位可以称为一个比特位。
比特数,指二进制位的位数。
符号整数,又称为有符号整数,指利用最高比特位来表示正负的整数。当一个符号整数最高比特位的取值为1时,表示该符号整数为负数。当一个符号整数最高比特位的取值为0时,表示该符号整数为正数。
两个比较对象之间大小关系的比较可以转换为符号整数与0之间大小关系的比较,所述比较对象可以包括数值、字符串、数据集合等等。例如,判断a>b是否成立可以转换为判断0>x=a-b是否成立,判断a≥b是否成立可以转换为判断0>x=a-b-1是否成立,a和b表示两个比较对象,x表示所述符号数据。考虑到符号整数最高比特位的取值可以用于表示符号整数的正负,则两个比较对象之间大小关系的比较可以转换为确定符号整数最高比特位的取值为0或1。
本说明书提供数据处理系统的一个实施例。所述数据处理系统可以包括第一方和第二方。所述第一方和所述第二方可以分别为服务器、手机、平板电脑、或个人电脑等设备;或者,也可以分别为由多台设备组成的系统,例如由多个服务器组成的服务器集群。
在一些实施例中,所述第一方和所述第二方可以分别持有符号整数的一份份额,所述符号整数最高比特位的取值可以用于表示两个比较对象的比较结果。为了便于描述,可以将所述第一方持有的一份份额作为所述符号整数的第一份额,可以将所述第二方持有的一份份额作为所述符号整数的第二份额。
所述符号整数的比特数可以为n1。所述符号整数第一份额的比特数和所述符号整数第二份额的比特数也可以均为n1。或者,所述符号整数第一份额的比特数和所述符号整数第二份额的比特数还可以均为n2,n2大于n1。
所述符号整数第一份额和所述符号整数第二份额的和与2n1进行取模运算后的运算结果,可以与所述符号整数相等。2n1可以理解为所述符号整数绝对值的可能取值数量。由于有可能产生进位,因而所述符号整数第一份额和所述符号整数第二份额的和的比特数为n1+1。通过与2n1进行取模运算,可以将所述符号整数第一份额和所述符号整数第二份额的和的最高比特位(即第n1+1比特位)置0。值得说明的是,由于所述符号整数第一份额和所述符号整数第二份额的和的比特数为n1+1;因而所述符号整数第一份额和所述符号整数第二份额的和的次高比特位,即为所述符号整数的最高比特位。这样确定所述符号整数最高比特位的取值,可以转换为确定所述符号整数第一份额和所述符号整数第二份额的和的次高比特位的取值。
在一个场景示例中,符号整数x的比特数、符号整数x第一份额<x>0比特数、以及符号整数x第二份额<x>1比特数均为n1。那么,(<x>0+<x>1)%2n1=x,%表示取模运算。
在一些实施例中,所述第一方和所述第二方可以分别持有第一比较对象的一份份额,并且还可以分别持有第二比较对象的一份份额。为了便于描述,可以将所述第一方持有的所述第一比较对象的一份份额作为所述第一比较对象的第一份额,可以将所述第二方持有的所述第一比较对象的一份份额作为所述第一比较对象的第二份额,可以将所述第一方持有的所述第二比较对象的一份份额作为所述第二比较对象的第一份额,可以将所述第二方持有的所述第二比较对象的一份份额作为所述第二比较对象的第二份额。所述第一方可以根据第一比较对象的第一份额和第二比较对象的第一份额,计算所述符号整数的第一份额。所述第二方可以根据第一比较对象的第二份额和第二比较对象的第二份额,计算所述符号整数的第二份额。
延续前面场景示例,所述第一方可以持有<a>0和<b>0,所述第二方可以持有<a>1和<b>1,a表示第一比较对象,<a>0表示第一比较对象的第一份额,<a>1表示第一比较对象的第二份额,b表示第二比较对象,<b>0表示第二比较对象的第一份额,<b>1表示第二比较对象的第二份额。那么,所述第一方可以计算<x>0=(<a>0-<b>0)%2n1,所述第二方可以计算<x>1=(<a>1-<b>1)%2n1,2n1可以理解为<x>0(或<x>1)的可能取值数量。
或者,所述第一方可以持有第一比较对象,所述第二方可以持有第二比较对象。如此所述第一方可以将所述第一比较对象作为所述符号整数的第一份额,所述第二方可以将所述第二比较对象的相反数作为所述符号整数的第二份额。或者,所述第一方还可以将所述第一比较对象的相反数作为所述符号整数的第一份额,所述第二方还可以将所述第二比较对象作为所述符号整数的第二份额。
延续前面场景示例,所述第一方可以持有a,所述第二方可以持有b。那么,<x>0=a,<x>1=-b。
在一些实施例中,所述第一方可以根据所述符号整数的第一份额,所述第二方可以根据所述符号整数的第二份额,进行不经意传输。所述第一方可以得到所述符号整数最高比特位的取值。具体过程可以参见后面的数据处理方法实施例。
请参阅图1。本说明书提供数据处理方法的一个实施例,该实施例可以包括以下步骤。
步骤S11:第一方将符号整数的第一份额拆分为多个二进制串。
在一些实施例中,所述第一方可以持有所述符号整数的第一份额;可以对所述第一份额的二进制形式进行拆分,得到多个二进制串。所述第一方具体可以按照比特位由低至高的顺序对所述第一份额的二进制形式进行拆分,或者,也可以按照比特位由高至低的顺序对所述第一份额的二进制形式进行拆分。拆分得到的各个二进制串的比特数可以相同或不同。
每个二进制串在所述第一份额的二进制形式中可以具有一个位置。二进制串的位置可以与二进制串中比特位的权重正相关。二进制串的位置越高,该二进制串中比特位的权重越大;二进制串的位置越低,该二进制串中比特位的权重越小。当然,二进制串的位置也可以与二进制串中比特位的权重反相关,这里不做具体限定。
如图2所示。在一个场景示例中,符号整数x的比特数、符号整数x的第一份额<x>
0比特数、以及符号整数x的第二份额<x>
1比特数均为n1。所述第一方可以按照比特位由低至高的顺序对<x>
0的二进制形式进行拆分,得到<x>
0[1]、...、<x>
0[i]、...、<x>
0[k]等k个二进制串。每个二进制串的比特数可以为
为正整数。<x>
0[1]在<x>
0的二进制形式中的位置为1,<x>
0[i]在<x>
0的二进制形式中的位置为i,<x>
0[k]在<x>
0的二进制形式中的位置为k。
步骤S13:第二方将符号整数的第二份额拆分为多个二进制串。
在一些实施例中,所述第二方可以持有所述符号整数的第二份额;可以对所述第二份额的二进制形式进行拆分,得到多个二进制串。所述第二方具体可以按照比特位由低至高的顺序对所述第二份额的二进制形式进行拆分,或者,也可以按照比特位由高至低的顺序对所述第二份额的二进制形式进行拆分。拆分得到的各个二进制串的比特数可以相同或不同。值得说明的是,对所述符号整数的第一份额进行拆分后所得到的二进制串的数量,可以与对所述符号整数的第二份额进行拆分后所得到的二进制串的数量相同。
每个二进制串在所述第二份额的二进制形式中可以具有一个位置。二进制串的位置可以与二进制串中比特位的权重正相关。二进制串的位置越高,该二进制串中比特位的权重越大;二进制串的位置越低,该二进制串中比特位的权重越小。当然,二进制串的位置也可以与二进制串中比特位的权重反相关,这里不做具体限定。
延续前面场景示例,所述第二方可以按照比特位由低至高的顺序对<x>
1进行拆分,得到<x>
1[1]、...、<x>
1[i]、...、<x>
1[k]等k个二进制串。每个二进制串的比特数可以为
<x>
1[1]在<x>
1的二进制形式中的位置为1,<x>
1[i]在<x>
1的二进制形式中的位置为i,<x>
1[k]在<x>
1的二进制形式中的位置为k。
步骤S15:第一方根据符号整数第一份额的二进制串,第二方根据符号整数第二份额的二进制串,并行秘密分享多个第一标志值,第一方得到多个第一标志值的第一份额,第二方得到多个第一标志值的第二份额。
在一些实施例中,所述符号整数第一份额的每个二进制串可以与所述符号整数第二份额的一个相应二进制串具有对应关系。相应二进制串可以理解为:具有相同位置的二进制串。
延续前面场景示例,<x>0[1]在<x>0的二进制形式中的位置为1,<x>1[1]在<x>1的二进制形式中的位置为1,则<x>0[1]与<x>1[1]具有关系。<x>0[i]在<x>0的二进制形式中的位置为i,<x>1[i]在<x>1的二进制形式中的位置为i,则<x>0[i]与<x>1[i]具有关系。<x>0[k]在<x>0的二进制形式中的位置为k,<x>1[k]在<x>1的二进制形式中的位置为k,则<x>0[k]与<x>1[k]具有关系。
在一些实施例中,考虑到若采用并行的方式,将多对具有对应关系的二进制串相加,则可以提高将所述符号整数的第一份额与所述符号整数的第二份额进行相加计算的计算效率。所述第一方可以根据所述符号整数第一份额的二进制串,所述第二方可以根据所述符号整数第二份额的二进制串,并行秘密分享多个第一标志值。所述第一方可以得到多个第一标志值的一份份额,所述第二方可以得到多个第一标志值的另一份份额。为了便于描述,可以将所述第一方得到的份额作为第一标志值的第一份额,可以将所述第二方得到的份额作为第一标志值的第二份额。
其中,所述第一方可以根据所述符号整数第一份额的每个二进制串,所述第二方可以根据所述符号整数第二份额的一个相应二进制串,秘密分享一个第一标志值。所述第一方可以得到该第一标志值的第一份额,所述第二方可以得到该第一标志值的第二份额。第一标志值第一份额和第一标志值第二份额的和与q1进行取模运算后的运算结果,可以与第一标志值相等。q1表示第一标志值的可能取值数量。不同第一标志值的可能取值数量可以相同或不同。关于q1的取值在后文中有详细介绍。
在一些实施例中,第一标志值的数量可以与对所述符号整数的第一份额进行拆分后所得到的二进制串的数量(或对所述符号整数的第二份额进行拆分后所得到的二进制串的数量)相同。每个第一标志值可以用于表示所述符号整数第一份额的一个二进制串与所述符号整数第二份额的一个相应二进制串相加后的进位情况。相加的两个二进制串具有相同的位置。
以下以二进制串的位置与二进制串中比特位的权重正相关为例,介绍第一标志值的取值规则。值得说明的是,二进制串的位置与二进制串中比特位的权重反相关时,第一标志值的取值规则与此相类似。另外,在下文中“更低位置”可以理解为“位置相邻且更低”。由下文中第一标志值的取值规则可知,若给定一组第一标志值,便可以确定出符号整数的最高比特位的取值。一组第一标志值可以包括多个第一标志值的一个取值。
情况A:第一类二进制串,第一类第一标志值。
第一类二进制串可以包括:所述符号整数的第一份额中位置最低的二进制串、以及所述符号整数的第二份额中位置最低的二进制串。第一类第一标志值可以用于表示两个第一类二进制串相加后的进位情况。由于不存在更低位置的二进制串,无需考虑更低位置的两个二进制串相加后的进位情况,因而两个第一类二进制串相加后的进位情况仅依赖于该两个第一类二进制串本身。第一类第一标志值的取值可以包括以下两种情况(q1=2)。
子情况A1:两个第一类二进制串相加后不产生进位(两个第一类二进制串相加结果的最高比特位的取值为0)。则第一类第一标志值的取值为0。两个第一类二进制串相加结果的最高比特位的取值与第一类第一标志值的取值相等。
子情况A2:两个第一类二进制串相加后产生进位(两个第一类二进制串相加结果的最高比特位的取值为1)。则第一类第一标志值的取值为1。两个第一类二进制串相加结果的最高比特位的取值与第一类第一标志值的取值相等。
情况B:第二类二进制串,第二类第一标志值。
第二类二进制串可以包括:所述符号整数的第一份额中位于最低位置和最高位置之间的二进制串、以及所述符号整数的第二份额中位于最低位置和最高位置之间的二进制串。第二类第一标志值可以用于表示两个第二类二进制串相加后的进位情况。由于存在更低位置的二进制串,因而两个第二类二进制串相加后的进位情况,不仅依赖于该两个第二类二进制串本身,还依赖于更低位置的两个二进制串相加后的进位情况。第二类第一标志值的取值可以包括以下三种情况(q1=3)。
子情况B1:无论更低位置的两个二进制串相加后是否产生进位,两个第二类二进制串相加后一定不产生进位(两个第二类二进制串相加结果的最高比特位的取值一定为0)。则第二类第一标志值的取值为0。两个第二类二进制串相加结果的最高比特位的取值与第二类第一标志值的取值相等。
子情况B2:无论更低位置的两个二进制串相加后是否产生进位,两个第二类二进制串相加后一定产生进位(两个第二类二进制串相加结果的最高比特位的取值一定为1)。则第二类第一标志值的取值为1。两个第二类二进制串相加结果的最高比特位的取值与第二类第一标志值的取值相等。
子情况B3:两个第二类二进制串相加后是否产生进位,完全依赖于更低位置的两个二进制串相加后是否产生进位。若更低位置的两个二进制串相加后产生进位,则两个第二类二进制串相加后也产生进位。若更低位置的两个二进制串相加后不产生进位,则两个第二类二进制串相加后也不产生进位。则第二类第一标志值的取值等于第一特定值,所述第一特定值例如可以为2。两个第二类二进制串相加结果的最高比特位的取值,可以与更低位置两个二进制串相加结果的最高比特位的取值相等。
情况C:第三类二进制串,第三类第一标志值。
第三类二进制串可以包括:所述符号整数的第一份额中位置最高的二进制串、以及所述符号整数的第二份额中位置最高的二进制串。第三类第一标志值可以用于表示两个第三类二进制串相加后的进位情况。由于存在更低位置的二进制串,因而两个第三类二进制串相加后是否产生进位,不仅依赖于该两个第三类二进制串本身,还依赖于更低位置的两个二进制串相加后的进位情况。另外,两个第三类二进制串相加结果的次高比特位,即为所述符号整数的第一份额和所述符号整数第二份额的和的次高比特位,也即为所述符号整数的最高比特位。因此确定所述符号整数最高比特位的取值,可以转换为确定两个第三类二进制串相加结果的次高比特位的取值。第三类第一标志值的取值可以包括以下四种情况(q1=4)。
子情况C1:两个第三类二进制串相加后是否产生进位,完全依赖于更低位置的两个二进制串相加后是否产生进位。若更低位置的两个二进制串相加后产生进位,则两个第三类二进制串相加后也产生进位。若更低位置的两个二进制串相加后不产生进位,则两个第三类二进制串相加后也不产生进位。则第三类第一标志值的取值等于第一特定值,所述第一特定值例如可以为2。两个第三类二进制串相加结果的次高比特位的取值,可以与更低位置两个二进制串相加结果的最高比特位的取值相等。
子情况C2:无论更低位置的两个二进制串相加后是否产生进位,两个第三类二进制串相加后一定不产生进位(两个第三类二进制串相加结果的最高比特位的取值一定为0)。则第三类第一标志值的取值等于第二特定值,所述第二特定值例如可以为3。两个第三类二进制串相加结果的次高比特位的取值,可以与更低位置两个二进制串相加结果的最高比特位的取值不同。具体地,若更低位置两个二进制串相加结果的最高比特位的取值为1,则两个第三类二进制串相加结果的次高比特位的取值为0。若更低位置两个二进制串相加结果的最高比特位的取值为0,则两个第三类二进制串相加结果的次高比特位的取值为1。
子情况C3:无论更低位置的两个二进制串相加后是否产生进位,两个第三类二进制串相加后一定不产生进位(两个第三类二进制串相加结果的最高比特位的取值一定为0)。则第三类第一标志值的取值为0。两个第三类二进制串相加结果的次高比特位的取值与第三类第一标志值的取值相等。
子情况C4:无论更低位置的两个二进制串相加后是否产生进位,两个第三类二进制串相加后一定产生进位(两个第三类二进制串相加结果的最高比特位的取值一定为1)。则第三类第一标志值的取值为1。两个第三类二进制串相加结果的次高比特位的取值与第三类第一标志值的取值相等。
延续前面场景示例,第一类二进制串可以包括<x>0[1]和<x>1[1]。第一类第一标志值可以包括d[1],d[1]用于表示<x>0[1]和<x>1[1]相加后的进位情况。对于子情况A1和A2,d[1]=c[1],c[1]表示<x>0[1]和<x>1[1]相加结果的最高比特位。d[1]=c[1]可以理解为:d[1]的取值等于c[1]的取值。
第二类二进制串可以包括<x>0[i]和<x>1[i],2≤i≤k-1。第二类第一标志值可以包括d[i],d[i]用于表示<x>0[i]和<x>1[i]相加后的进位情况。对于子情况B1和B2,d[i]=c[i],c[i]表示<x>0[i]和<x>1[i]相加结果的最高比特位。d[i]=c[i]可以理解为:d[i]的取值等于c[i]的取值。对于子情况B3,d[i]=2,c[i]=c[i-1],c[i-1]表示<x>0[i-1]和<x>1[i-1]相加结果的最高比特位。c[i]=c[i-1]可以理解为:c[i]的取值等于c[i-1]的取值。
第三类二进制串可以包括<x>0[k]和<x>1[k]。第三类第一标志值可以包括d[k],d[k]用于表示<x>0[k]和<x>1[k]相加后的进位情况。对于子情况C1,d[k]=2,c[k]=c[k-1],c[k]表示<x>0[k]和<x>1[k]相加结果的次高比特位,c[k-1]表示<x>0[k-1]和<x>1[k-1]相加结果的最高比特位,c[k]=c[k-1]可以理解为:c[k]的取值等于c[k-1]的取值。对于子情况C2,d[k]=3,c[k]=1-c[k-1]。对于子情况C3和C4,d[k]=c[k]。
在一些实施例中,所述第一方和所述第二方可以通过不经意传输秘密分享多个第一标志值。在一些实施方式中,可以将所述第一方作为不经意传输的发送方,将所述第二方作为不经意传输的接收方。具体地,针对所述符号整数第一份额的每个二进制串,所述第一方可以确定所述符号整数第二份额的一个相应二进制串的多个可能取值;可以根据所述符号整数第一份额的该二进制串、所述符号整数第二份额的该相应二进制串的多个可能取值、以及第一标志值的取值规则,确定一个第一标志值的多个可能取值。所述第一方可以生成随机数作为该第一标志值的第一份额;可以根据该第一标志值的第一份额、以及该第一标志值的多个可能取值,计算该第一标志值第二份额的多个可能取值。如此所述第一方可以根据该第一标志值第二份额的多个可能取值,所述第二方可以根据所述符号整数第二份额的该相应二进制串在自身可能取值中的位置,进行不经意传输。所述第二方可以得到该第一标志值第二份额的一个取值,这样便得到了该第一标志值的第二份额。其中,所述第二方得到的取值,可以为第一标志值第二份额的多个可能取值中位于所述位置处的取值。
其中,针对该第一标志值的每个可能取值,所述第一方可以计算该可能取值与该第一标志值第一份额的差值;可以对该差值和q1进行取模运算;可以将取模运算的运算结果作为该第一标志值第二份额的一个可能取值。q1表示该第一标志值的可能取值数量。
当然,在另一些实施方式中,也可以将所述第一方作为不经意传输的接收方,将所述第二方作为不经意传输的发送方。此处的不经意传输过程不再赘述。或者,在另一些实施方式中,为了均衡第一方和第二方之间的流量,针对部分第一标志值,可以将所述第一方作为不经意传输的发送方,将所述第二方作为不经意传输的接收方。针对另一部分第一标志值,可以将所述第一方作为不经意传输的接收方,将所述第二方作为不经意传输的发送方。
延续前面场景示例,所述第一方持有<x>
0[j]。<x>
0[j]与<x>
1[j]相对应,1≤j≤k。所述第一方可以确定<x>
1[j]的
个可能取值;可以根据<x>
0[j]、<x>
1[j]的
个可能取值、以及第一标志值的取值规则,确定第一标志值d[j]的
个可能取值;可以生成随机数作为d[j]的第一份额<d[j]>
0;可以根据d[j]的
个可能取值,利用公式<d[j]>
1=(d[j]-<d[j]>
0)%q1计算得到<d[j]>
1的
个可能取值。所述第一方可以根据<d[j]>
1的
个可能取值,所述第二方可以根据位置P1,进行不经意传输。所述第二方可以得到<d[j]>
1的
个可能取值中位于第P1处的取值。P1为<x>
1[j]在其
个可能取值中的位置。其中,当j=1时,q1=2;当2≤j≤k-1时,q1=3;当j=k时,q1=4。
步骤S17:第一方根据多个第一标志值的第一份额、以及多个第一取值集合,确定最高比特位的多个可能取值;每个第一取值集合包括多个第一标志值第二份额的一个可能取值。
在一些实施例中,第一标志值的数量为多个,每个第一标志值的第二份额具有多个可能取值,因而多个第一标志值第二份额的可能取值可以构成多个第一取值集合。每个第一取值集合可以包括多个第一标志值第二份额的一个可能取值。所述第一方可以根据多个第一标志值的第一份额、以及多个第一取值集合,确定符号整数最高比特位的多个可能取值。
其中,所述第一方可以根据多个第一标志值的第一份额、以及每个第一取值集合,计算得到一组第一标志值。该组第一标志值可以包括多个第一标志值的一个可能取值。所述第一方可以根据该组第一标志值,确定最高比特位的一个可能取值。其中,所述第一方可以将每个第一标志值的第一份额与第一取值集合中该第一标志值第二份额的一个可能取值相加;可以将相加结果与q1进行取模运算,得到该第一标志值的一个可能取值。多个第一标志值的一个可能取值便构成了一组第一标志值。q1表示该第一标志值的可能取值数量。
延续前面场景示例,如前面所述,当j=1时,q1=2;当2j≤k-1时,q1=3;当j=k时,q1=4。因而所述k个第一标志值第二份额的可能取值可以构成2×4×3k-2个第一取值集合,每个第一取值集合可以包括所述k个第一标志值第二份额的一个可能取值。所述第一方可以根据所述k个第一标志值的第一份额、以及2×4×3k-2个第一取值集合,计算得到2×4×3k-2组第一标志值;可以根据2×4×3k-2组第一标志值,确定符号整数最高比特位的2×4×3k-2个可能取值。
步骤S19:第一方根据最高比特位的多个可能取值,第二方根据第一特定集合在所述多个第一取值集合中的位置,进行不经意传输,第二方得到符号整数最高比特位的取值;所述第一特定集合包括第二方持有的多个第一标志值的第二份额。
在一些实施例中,所述第二方持有的多个第一标志值的第二份额可以构成第一特定集合。所述第二方可以确定第一特定集合在所述多个第一取值集合中的位置。所述第一方可以根据符号整数最高比特位的多个可能取值,所述第二方可以根据第一特定集合在所述多个第一取值集合中的位置,进行不经意传输。所述第二方可以得到符号整数最高比特位的取值。所述第二方得到的取值,可以为符号整数最高比特位的多个可能取值中位于所述位置处的取值。
延续前面场景示例,所述第一方可以根据最高比特位的2×4×3k-2个可能取值,所述第二方可以根据位置P2,进行不经意传输。所述第二方可以得到最高比特位的2×4×3k-2个可能取值中位于P2处的取值。P2为第一特定集合在所述多个第一取值集合中的位置。
在一些实施例中,还可以将所述多个第一标志值划分为多个标志值集合,每个标志值集合可以包括多个第一标志值。各个标志值集合中第一标志值的数量可以相同或不同。
延续前面场景示例,可以将所述k个第一标志值划分为
等m个标志值集合,每个标志值集合可以包括
个第一标志值,这里
为正整数。
在一些实施例中,所述第一方可以根据多个标志值集合中第一标志值的第一份额,所述第二方可以根据多个标志值集合中第一标志值的第二份额,并行秘密分享多个第二标志值,所述第一方可以得到多个第二标志值的一份份额,所述第二方可以得到多个第二标志值的另一份份额。为了便于描述,可以将所述第一方得到的份额作为第二标志值的第一份额,可以将所述第二方得到的份额作为第二标志值的第二份额。
其中,所述第一方可以根据每个标志值集合中第一标志值的第一份额,所述第二方可以根据该标志值集合中第一标志值的第二份额,秘密分享一个第二标志值。所述第一方可以得到该第二标志值的第一份额,所述第二方可以得到该第二标志值的第二份额。第二标志值第一份额和第二标志值第二份额的和与q2进行取模运算后的运算结果,可以与第二标志值相等。q2表示第二标志值的可能取值数量。不同第二标志值的可能取值数量可以相同或不同。关于q2的取值在后文中会以一个场景示例进行详细介绍。
在一些实施例中,第二标志值的数量可以与划分得到的标志值集合的数量相同。每个第二标志值可以对应一个标志值集合,并且可以用于表示符号整数第一份额的多个二进制串与符号整数第二份额的多个相应二进制串相加后的进位情况。符号整数第一份额的多个二进制串可以包括:标志值集合中的第一标志值在符号整数第一份额中所对应的二进制串;符号整数第二份额的多个二进制串可以包括:标志值集合中的第一标志值在符号整数第二份额中所对应的二进制串。
以下介绍第二标志值取值规则的一个场景示例。
延续前面场景示例,标志值集合
对应的第二标志值可以为e[1]。
表示
和
相加结果的最高比特位。
可以理解为:e[1]的取值等于
的取值。
标志值集合
对应的第二标志值可以为e[l],2≤l≤m-1。若
内各个第一标志值的取值均为第一特定值(例如2),则e[l]的取值为第一特定值,
否则,
表示
和
相加结果的最高比特位,
表示
和
相加结果的最高比特位。
可以理解为:
的取值等于
的取值。
可以理解为:e[l]的取值等于
的取值。
标志值集合
对应的第二标志值可以为e[m]。若
内各个第一标志值的取值均为第一特定值(例如2),则e[m]的取值为第一特定值,
若
内各个第一标志值的取值均为第二特定值(例如3),则e[m]的取值为第二特定值,
否则,e[m]=c[k]。c[k]表示<x>
0[k]和<x>
1[k]相加结果的次高比特位;
表示
和
相加结果的最高比特位。
在一些实施例中,为了便于描述,可以将标志值集合中第一标志值的第一份额构成的整体简称为标志值集合的第一份额,可以将标志值集合中第一标志值的第二份额构成的整体简称为标志值集合的第二份额。所述第一方和所述第二方可以通过不经意传输秘密分享多个第二标志值。在一些实施方式中,可以将所述第一方作为不经意传输的发送方,将所述第二方作为不经意传输的接收方。具体地,所述第一方可以根据每个标志值集合的第一份额、该标志值集合的多个第二份额、以及第二标志值的取值规则,确定一个第二标志值的多个可能取值。标志值集合的每个第二份额可以包括该标志值集合中第一标志值第二份额的一个可能取值。所述第一方可以生成随机数作为该第二标志值的第一份额;可以根据该第二标志值的第一份额、以及该第二标志值的多个可能取值,计算该第二标志值第二份额的多个可能取值。如此所述第一方可以根据该第二标志值第二份额的多个可能取值,所述第二方可以根据该标志值集合的特定第二份额在所述多个第二份额中的位置,进行不经意传输。所述第二方可以得到该第二标志值第二份额的一个可能取值,这样便得到了该第二标志值的第二份额。其中,所述特定第二份额可以为由第二方持有的标志值集合的第二份额(由第二方持有的标志值集合中第一标志值的第二份额构成的整体)。
当然,在另一些实施方式中,也可以将所述第一方作为不经意传输的接收方,将所述第二方作为不经意传输的发送方。此处的不经意传输过程不再赘述。或者,在另一些实施方式中,为了均衡第一方和第二方之间的流量,针对部分第二标志值,可以将所述第一方作为不经意传输的发送方,将所述第二方作为不经意传输的接收方。针对另一部分第二标志值,可以将所述第一方作为不经意传输的接收方,将所述第二方作为不经意传输的发送方。
延续前面场景示例,可以将标志值集合
中第一标志值的第一份额构成的整体简称为该标志值集合的第一份额,可以将标志值集合
中第一标志值的第二份额构成的整体简称为该标志值集合的第二份额,1≤r≤m。
所述第一方可以根据该标志值集合的第一份额、该标志值集合的多个第二份额、以及第二标志值的取值规则,确定第二标志值e[r]的q2个可能取值。所述第一方可以生成随机数作为e[r]的第一份额<e[r]>
0;可以根据<e[r]>
0、以及e[r]的q2个可能取值,计算e[r]的第二份额<e[r]>
1的q2个可能取值。如此所述第一方可以根据<e[r]>
1的q2个可能取值,所述第二方可以根据该标志值集合的特定第二份额在所述多个第二份额中的位置,进行不经意传输。所述第二方可以得到<e[r]>
1的一个可能取值,这样便得到了<e[r]>
1。所述特定第二份额可以为由第二方持有的该标志值集合的第二份额。其中,当r=1时,
当2≤r≤m-1时,
当r=m时,
在一些实施例中,第二标志值的数量为多个,每个第二标志值的第二份额具有多个可能取值,因而多个第二标志值第二份额的可能取值可以构成多个第二取值集合。每个第二取值集合可以包括多个第二标志值第二份额的一个可能取值。所述第一方可以根据多个第二标志值的第一份额、以及多个第二取值集合,确定符号整数最高比特位的多个可能取值。
在一些实施例中,所述第二方持有的多个第二标志值的第二份额可以构成第二特定集合。所述第二方可以确定所述第二特定集合在所述多个第二取值集合中的位置。所述第一方可以根据符号整数最高比特位的多个可能取值,所述第二方可以根据第二特定集合在所述多个第二取值集合中的位置,进行不经意传输。所述第二方可以得到符号整数最高比特位的取值。
在一些实施例中,通过将多个第一标志值划分为多个标志值集合,可以减少需要进行秘密分享的第二标志值的数量,从而可以提高符号整数最高比特位的取值的确定效率。当然,为了进一步提高符号整数最高比特位的取值的确定效率,还可以进一步对多个第二标志值进行划分,在此不再赘述。
在一些实施例中,所述符号整数的比特数、所述符号整数第一份额的比特数和所述符号整数第二份额的比特数均为n1。如此在步骤S11中,所述第一方可以将符号整数第一份额的全部比特数拆分为多个二进制串。相应地,在步骤S13中,所述第二方可以将符号整数第二份额的全部比特数拆分为多个二进制串。
在一些实施例中,所述符号整数的比特数、所述符号整数第一份额的比特数和所述符号整数第二份额的比特数均为n1。在一些场景下,对比较结果的精度要求不高,即对符号整数与0之间的差别要求不高。例如,在-1≤x=a-b≤1时,均可以认为a≥b成立,a和b表示两个比较对象。如此在步骤S11中,所述第一方可以将符号整数第一份额的第s+1至n1个比特位拆分为多个二进制串。相应地,在步骤S13中,所述第二方可以将符号整数第二份额的第s+1至n1个比特位拆分为多个二进制串。s表示截断比特数。s的取值可以根据实际需要灵活设定。当精度要求较高时,s的取值可以小一些;当精度要求较低时,s的取值可以大一些。这样可以减少需要进行秘密分享的第一标志值的数量,从而可以提高符号整数最高比特位的取值的确定效率。
在一些实施例中,所述符号整数的比特数为n1。所述符号整数第一份额的比特数和所述符号整数第二份额的比特数均为n2。n2>n1。如此在步骤S11中,所述第一方可以将符号整数第一份额的最低n1个比特位拆分为多个二进制串。相应地,在步骤S13中,所述第二方可以将符号整数第二份额的最低n1个比特位拆分为多个二进制串。最低n1个比特位包括第1至n1个比特位。这样可以减少需要进行秘密分享的第一标志值的数量,从而可以提高符号整数最高比特位的取值的确定效率。
在一些实施例中,第一方可以将符号整数的第一份额拆分为多个二进制串,第二方可以将符号整数的第二份额拆分为多个二进制串。这样第一方和第二方可以采用并行的方式秘密分享多个第一标志值,每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数第二份额的一个相应二进制串相加后的进位情况。进而,第一方和第二方可以通过不经意传输,确定符号整数最高比特位的取值。本说明书的一个或多个实施例通过采用并行的方式,可以在保护数据隐私的条件下,快速地确定出符号整数最高比特位的取值,从而可以快速地得到比较结果。
本说明书还提供数据处理方法的另一个实施例。该实施例以第一方为执行主体。所述第一方可以持有符号整数的第一份额。请参阅图3,该实施例可以包括以下步骤。
步骤S21:将符号整数的第一份额拆分为多个二进制串。
在一些实施例中,所述第一方可以按照比特位由低至高的顺序对所述第一份额的二进制形式进行拆分,或者,也可以按照比特位由高至低的顺序对所述第一份额的二进制形式进行拆分。拆分得到的各个二进制串的比特数可以相同或不同。
步骤S23:根据符号整数第一份额的二进制串,与第二方并行秘密分享多个第一标志值,得到多个第一标志值的第一份额。
在一些实施例中,所述符号整数第一份额的每个二进制串可以与所述符号整数的第二份额的一个相应二进制串具有对应关系。每个第一标志值可以用于表示符号整数第一份额的一个二进制串与符号整数的第二份额的一个相应二进制串相加后的进位情况。
在一些实施例中,考虑到若采用并行的方式,将多对具有对应关系的二进制串相加,则可以提高将所述符号整数的第一份额与所述符号整数的第二份额进行相加计算的计算效率。所述第一方可以根据所述符号整数第一份额的二进制串,所述第二方可以根据所述符号整数第二份额的二进制串,并行秘密分享多个第一标志值。所述第一方可以得到多个第一标志值的一份份额,所述第二方可以得到多个第一标志值的另一份份额。为了便于描述,可以将所述第一方得到的份额作为第一标志值的第一份额,可以将所述第二方得到的份额作为第一标志值的第二份额。
步骤S25:根据多个第一标志值的第一份额、以及多个第一取值集合,确定最高比特位的多个可能取值。
在一些实施例中,第一标志值的数量为多个,每个第一标志值的第二份额具有多个可能取值,因而多个第一标志值第二份额的可能取值可以构成多个第一取值集合。每个第一取值集合可以包括多个第一标志值第二份额的一个可能取值。所述第一方可以根据多个第一标志值的第一份额、以及多个第一取值集合,确定符号整数最高比特位的多个可能取值。
步骤S27:根据最高比特位的多个可能取值,与第二方进行不经意传输。
在一些实施例中,所述第二方持有的多个第一标志值的第二份额可以构成第一特定集合。所述第二方可以确定所述第一特定集合在所述多个第一取值集合中的位置。所述第一方可以根据符号整数最高比特位的多个可能取值,所述第二方可以根据第一特定集合在所述多个第一取值集合中的位置,进行不经意传输。所述第二方可以得到符号整数最高比特位的取值。
在一些实施例中,第一方可以将符号整数的第一份额拆分为多个二进制串,第二方可以将符号整数的第二份额拆分为多个二进制串。这样第一方和第二方可以采用并行的方式秘密分享多个第一标志值,每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数的第二份额的一个相应二进制串相加后的进位情况。进而,第一方和第二方可以通过不经意传输,确定出符号整数最高比特位的取值。本说明书的一个或多个实施例通过采用并行的方式,可以在保护数据隐私的条件下,快速地确定出符号整数最高比特位的取值,从而可以快速地得到比较结果。
本说明书还提供数据处理方法的另一个实施例。该实施例以第二方为执行主体。所述第二方可以持有符号整数的第二份额。请参阅图4,该实施例可以包括以下步骤。
步骤S31:将符号整数的第二份额拆分为多个二进制串。
在一些实施例中,所述第二方可以按照比特位由低至高的顺序对所述第二份额的二进制形式进行拆分,或者,也可以按照比特位由高至低的顺序对所述第二份额的二进制形式进行拆分。拆分得到的各个二进制串的比特数可以相同或不同。
步骤S33:根据符号整数第二份额的二进制串,与第一方并行秘密分享多个第一标志值,得到多个第一标志值的第二份额。
在一些实施例中,所述符号整数第一份额的每个二进制串可以与所述符号整数的第二份额的一个相应二进制串具有对应关系。每个第一标志值可以用于表示符号整数第一份额的一个二进制串与符号整数的第二份额的一个相应二进制串相加后的进位情况。
在一些实施例中,考虑到若采用并行的方式,将多对具有对应关系的二进制串相加,则可以提高将所述符号整数的第一份额与所述符号整数的第二份额进行相加计算的计算效率。所述第一方可以根据所述符号整数第一份额的二进制串,所述第二方可以根据所述符号整数第二份额的二进制串,并行秘密分享多个第一标志值。所述第一方可以得到多个第一标志值的一份份额,所述第二方可以得到多个第一标志值的另一份份额。为了便于描述,可以将所述第一方得到的份额作为第一标志值的第一份额,可以将所述第二方得到的份额作为第一标志值的第二份额。
步骤S35:根据第一特定集合在多个第一取值集合中的位置,与第一方进行不经意传输,得到所述最高比特位的取值;每个第一取值集合包括多个第一标志值第二份额的一个可能取值,所述第一特定集合包括第二方持有的多个第一标志值的第二份额。
在一些实施例中,所述第二方持有的多个第一标志值的第二份额可以构成第一特定集合。所述第二方可以确定所述第一特定集合在所述多个第一取值集合中的位置。所述第一方可以根据符号整数最高比特位的多个可能取值,所述第二方可以根据第一特定集合在所述多个第一取值集合中的位置,进行不经意传输。所述第二方可以得到符号整数最高比特位的取值。
在一些实施例中,第一方可以将符号整数的第一份额拆分为多个二进制串,第二方可以将符号整数的第二份额拆分为多个二进制串。这样第一方和第二方可以采用并行的方式秘密分享多个第一标志值,每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数的第二份额的一个相应二进制串相加后的进位情况。进而,第一方和第二方可以通过不经意传输,确定出符号整数最高比特位的取值。本说明书的一个或多个实施例通过采用并行的方式,可以在保护数据隐私的条件下,快速地确定出符号整数最高比特位的取值,从而可以快速地得到比较结果。
本说明书还提供数据处理装置的一个实施例,用于确定符号整数最高比特位的取值,所述最高比特位的取值用于表示比较结果。该装置应用于第一方。所述第一方可以持有符号整数的第一份额。请参阅图5,该装置可以包括以下单元。
拆分单元41,用于将符号整数的第一份额拆分为多个二进制串;
秘密分享单元43,用于根据符号整数第一份额的二进制串,与第二方并行秘密分享多个第一标志值,得到多个第一标志值的第一份额;每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数的第二份额的一个相应二进制串相加后的进位情况;
确定单元45,用于根据多个第一标志值的第一份额、以及多个第一取值集合,确定最高比特位的多个可能取值;每个第一取值集合包括多个第一标志值第二份额的一个可能取值;
不经意传输单元47,用于根据最高比特位的多个可能取值,与第二方进行不经意传输。
本说明书还提供数据处理装置的一个实施例,用于确定符号整数最高比特位的取值,所述最高比特位的取值用于表示比较结果。该装置应用于第二方。所述第二方可以持有符号整数的第二份额。请参阅图6,该装置可以包括以下单元。
拆分单元51,用于将符号整数的第二份额拆分为多个二进制串;
秘密分享单元53,用于根据符号整数第二份额的二进制串,与第一方并行秘密分享多个第一标志值,得到多个第一标志值的第二份额;每个第一标志值用于表示符号整数第一份额的一个二进制串与符号整数的第二份额的一个相应二进制串相加后的进位情况;
不经意传输单元55,用于根据第一特定集合在多个第一取值集合中的位置,与第一方进行不经意传输,得到最高比特位的取值;每个第一取值集合包括多个第一标志值第二份额的一个可能取值,所述第一特定集合为由第二方持有的多个第一标志值的第二份额构成的集合。
下面介绍本说明书电子设备的一个实施例。图7是该实施例中一种电子设备的硬件结构示意图。如图7所示,所述电子设备可以包括一个或多个(图中仅示出一个)处理器、存储器和传输模块。当然,本领域普通技术人员可以理解,图7所示的硬件结构仅为示意,其并不对上述电子设备的硬件结构造成限定。在实际中所述电子设备还可以包括比图7所示更多或者更少的组件单元;或者,具有与图7所示不同的配置。
所述存储器可以包括高速随机存储器;或者,还可以包括非易失性存储器,例如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。当然,所述存储器还可以包括远程设置的网络存储器。所述远程设置的网络存储器可以通过诸如互联网、企业内部网、局域网、移动通信网等网络连接至所述电子设备。所述存储器可以用于存储应用软件的程序指令或模块,例如本说明书图3所对应实施例的程序指令或模块;和/或,本说明书图4所对应实施例的程序指令或模块。
所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以读取并执行所述存储器中的程序指令或模块。
所述传输模块可以用于经由网络进行数据传输,例如经由诸如互联网、企业内部网、局域网、移动通信网等网络进行数据传输。
本说明书还提供计算机存储介质的一个实施例。所述计算机存储介质包括但不限于随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard Disk Drive,HDD)、存储卡(Memory Card)等等。所述计算机存储介质存储有计算机程序指令。在所述计算机程序指令被执行时实现:本说明书图3所对应实施例的程序指令或模块;和/或,本说明书图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)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。