CN112583764B - 一种数据处理方法、装置和用于数据处理的装置 - Google Patents
一种数据处理方法、装置和用于数据处理的装置 Download PDFInfo
- Publication number
- CN112583764B CN112583764B CN201910926822.5A CN201910926822A CN112583764B CN 112583764 B CN112583764 B CN 112583764B CN 201910926822 A CN201910926822 A CN 201910926822A CN 112583764 B CN112583764 B CN 112583764B
- Authority
- CN
- China
- Prior art keywords
- calculation
- magnitude
- ciphertext
- operation object
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
本发明实施例提供一种数据处理方法、装置和用于数据处理的装置。其中的方法包括:确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;根据所述数量级确定所述操作对象执行所述计算操作的预估值;依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。本发明实施例可以在保证信息安全的基础上,提高密文数据的计算效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置和用于数据处理的装置。
背景技术
目前出于信息安全的考虑,对所传输的数据通常会进行加密保护,例如,在各服务器之间、各终端之间、终端与服务器之间传输数据的过程中,将数据加密成密文后对密文进行传输,以防止重要信息泄露,对个人或企业带来损失。
然而目前的加密保护策略通常仅限于数据传输或者数据存储的过程中,在对数据进行计算时,需要对数据的密文进行解密得到数据的明文,再对明文执行相应的计算操作。这样会带来信息泄露的隐患,无法保证信息安全。
发明内容
本发明实施例提供一种数据处理方法、装置和用于数据处理的装置,可以在密文数据基础上,对数据进行计算,在保证信息安全的基础上,可以提高密文数据的计算效率。
为了解决上述问题,本发明实施例公开了一种数据处理方法,所述方法包括:
确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
根据所述数量级确定所述操作对象执行所述计算操作的预估值;
依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
另一方面,本发明实施例公开了一种数据处理装置,所述装置包括:
数量级确定模块,用于确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
预估值确定模块,用于根据所述数量级确定所述操作对象执行所述计算操作的预估值;
数据计算模块,用于依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
再一方面,本发明实施例公开了一种用于数据处理的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
根据所述数量级确定所述操作对象执行所述计算操作的预估值;
依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的数据处理方法。
本发明实施例包括以下优点:
通过本发明实施例,针对不同的操作对象,可以确定不同操作操作对象对应的不同数量级,进而可以根据该数量级确定符合当前操作对象的预估值,可以避免对不同操作对象均采用统一的较小的预估值,导致计算执行过程中迭代次数较高的问题,可以减少计算过程中的迭代次数,进而可以提高计算效率。
此外,本发明实施例中的计算操作均为基于密文的计算操作,在基于密文的计算过程中,不会暴露数据明文,可以保证信息的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种数据处理方法实施例的步骤流程图;
图2是本发明的一种数据处理装置实施例的结构框图;
图3是本发明的一种用于数据处理的装置800的框图;及
图4是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,用于执行所述数据处理方法的设备可以提供多方安全计算服务,多方安全计算可以抽象的理解为:两方分别有各自的私有数据,在不泄漏各自私有数据的情况下,能够计算出关于公共函数的结果;整个计算完成时,只有计算结果对双方可知,且双方均不知对应的数据以及计算过程的中间数据。其中,所述公共函数可以实现多种计算功能如加、减、乘和除等等;且两方的私有数据中至少有一个是密文,即可以进行密文与密文之间的计算,也可以进行密文与明文之间的计算。本发明的方案是在能够实现基于密文的计算基础上实现的,基于密文的计算方法可参见本申请人的,申请号为201910252632.X中介绍的实现方案,在此不做赘述。
方法实施例
参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101、确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
步骤102、根据所述数量级确定所述操作对象执行所述计算操作的预估值;
步骤103、依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
在本发明实施例中,所述计算操作指基于密文的计算操作,在基于密文的计算过程中,参与计算的对象包含密文数据,本发明实施例将所述中间结果以及计算结果称为隐私计算结果,在基于密文的计算过程中,不会暴露数据明文,可以保证信息的安全性。
在本发明的一种可选实施例中,所述基于密文的计算操作可以由至少两个计算节点执行,例如,可以由四个计算节点或更多计算节点完成。所述对所述操作对象执行基于密文的计算操作,具体可以包括:基于多方安全计算协议与参与密文计算的其他计算节点通信,针对操作对象执行密文计算。
其中,所述多方安全计算协议可以利用参与协同计算的四个计算节点执行密文计算。在本发明实施例中,一个多方安全计算任务,一般会分配四个计算节点协作完成,这四个计算节点分别称为S1、S2、Sa、Sb,其中S1和S2可以为实体服务器,Sa和Sb可以为S1和S2上的虚拟服务器。对于部分多方安全计算任务只需要两个计算节点协作完成,则仅需要S1和S2两个计算节点参与即可,例如,加法计算只需要两个计算节点执行计算。
所述计算操作用于对密文数据进行数据处理。在一些示例中,所述密文数据为一种私有数据,技术人员预先将包含处理私有数据的业务逻辑的程序存储在任务管理平台中,所述业务逻辑是藉由计算机程序语言来描述对私有数据的处理过程,该处理过程可包含一个或多个计算任务。所述业务逻辑是指技术人员利用一个或多个计算任务对包含私有数据进行数据处理、且依据自然规律而得到的流程。例如,一种业务逻辑包括:利用银行B1和B2中用户A的银行存款数量、银行贷款数量、银行还款历史记录等确认用户A的还款能力的评价流程。又如,一种业务逻辑包括:利用用户P1和P2当前的位置信息向用户P1所持终端设备提供P1与P2之间相距距离和相距路线信息的路程提示流程。本发明的方案适用于基于密文进行计算的任何场景。包括对隐私数据进行融合计算等场景。
在本发明实施例中,所述待执行计算操作的操作对象,可以指待执行多方安全计算任务的操作对象,所述操作对象可以包含至少一个密文数据。例如,所述操作对象可以为一个密文数据,或者所述操作对象还可以为包含多个密文数据的数组、链表、队列等。
在本发明的一种可选实施例中,所述密文数据为对明文数据进行分散处理所得到。
在本发明实施例中,为了保证信息的安全性,参与多方安全计算任务的操作对象包含密文数据,该密文数据为对明文数据进行加密处理所得到。例如,对于明文数据x,经过加密处理得到密文数据x’,如果密文数据x’被泄露,则x’有可能被解密恢复得到明文数据x,进而导致明文数据x被泄露。
为了避免上述情况发生,本发明实施例可以对明文数据进行分散处理。所述分散处理用于对数据进行加密并分散存储,以降低将所有密文数据存储在同一个计算节点中导致数据被泄露的风险。
在本发明的一种可选实施例中,所述分散处理具体可以包括:对所述明文数据进行分片处理得到至少两个密文分片。
本发明实施例可以利用加密算法对明文数据进行分片处理得到至少两个密文分片。例如,对于明文数据x,可以利用加密算法对明文数据x进行分片处理,得到两个密文分片x1和x2,只有同时获取x1和x2,才可以解密得到明文数据x,本发明实施例将密文分片x1和x2存储在不同的存储节点中,可以降低密文分片x1和x2同时被泄露的风险,进而可以降低明文数据x被泄露的风险。
在本发明的一种可选实施例中,在向待执行多方安全计算任务的计算节点输入待计算的密文数据之前,还可以对所述密文数据进行随机的分散处理,所述随机的分散处理是指将输入数据随机生成多个私密数据[xj],其中,私密数据[xj]通过可恢复的数学计算可得到相应的输入数据。
例如,计算任务中的加法计算被配置成利用两个计算节点执行,相应输入数据被分散成由随机生成的第一私密数据,以及基于第一私密数据得到的第二私密数据,其中,第一私密数据和第二私密数据可恢复成所述输入数据,该两个私密数据被分配给不同计算节点进行计算。
本发明的核心思想为先确定待处理的密文数据的数量级,基于该数量级进一步执行后续的计算操作,可有效提升密文计算的效率。本发明实施例的数据处理方法可适用于各种密文计算场景,例如基于密文的牛顿迭代法的计算场景。牛顿迭代法(Newton'smethod)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。为描述方便,本发明以下实施例仅以牛顿迭代法为例对本发明的技术方案做进一步详细介绍。
具体地,牛顿迭代法为根据给定的预估值对待计算数据执行相应迭代次数的计算。常见的使用牛顿迭代法进行的计算包括求倒数计算和求平方根计算。以求倒数计算为例,计算表达式可以为:
reciprocal(x,appro,time) (1)
其中appro为预估值,x为待计算数据,time为迭代次数。上述计算表达式(1)的计算过程就是根据预估值appro进行time次迭代的过程。该预估值需要满足小于1/x,且预估值与1/x越接近,迭代次数越少,计算效率越高。
然而,对于密文数据,由于无法直观获知其数量级,因此无法直接获取密文数据合理的预估值,因此需要对每一个密文数据均设置一个较小的预估值,那么为了满足计算结果的精度要求,就需要设置一个较高的迭代次数,这样便存在计算效率较低的问题。
为了提高基于密文的牛顿迭代法的计算效率,在使用牛顿迭代法进行计算之前,本发明实施例首先确定待执行牛顿迭代法计算的操作对象的数量级,再根据所述数量级确定所述操作对象执行所述牛顿迭代法计算操作的预估值,最后依据该预估值对所述操作对象执行基于密文的牛顿迭代法计算操作,得到隐私计算结果。
在具体应用中,基于密文计算的系统不同,可能对应不同的数量级范围,计算精度也会有不同要求,当计算值和真实值误差满足系统的精度要求时,此时的迭代次数即为所需的迭代次数。
本发明实施例在确定预估值之前,可以根据系统所支持的数量级范围,确定待执行牛顿迭代法计算的操作对象的数量级,以使所确定的数量级在系统所支持的数量级范围内,再根据确定的数量级得到预估值,以减少迭代次数。
在本发明的一种可选实施例中,所述确定待执行计算操作的操作对象的数量级的步骤,具体可以包括:
步骤S11、根据预置数量级范围,构建第一计算单元;其中,所述第一计算单元中包括将所述预置数量级范围分割为不同区间的分割点;
步骤S12、对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果;
步骤S13、将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文,得到由所述第一密文和所述第二密文组成的第二计算单元;
步骤S14、将所述第二计算单元中的前一项元素与相邻的后一项元素执行减法计算,得到包含每个减法计算差值的第三计算单元;
步骤S15、对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级。
在本发明实施例中,所述操作对象可以包含至少一个密文数据。针对所述操作对象包含一个密文数据或者至少两个密文数据的两种情况,本发明实施例可以提供两种确定操作对象对应数量级的方案。
具体地,在方案一中,操作对象包含一个密文数据,也即仅需要确定该一个密文数据对应的数量级。在方案二中,操作对象包含至少两个密文数据,例如,操作对象可以为一个包含多个密文数据的数组,则需要确定该操作对象中每一个密文数据对应的数量级。在这两种方案中,上述步骤S11至S15对应不同的执行过程,下面对这两种方案分别进行说明。
方案一
在本发明的一种可选实施例中,所述操作对象包含一个密文数据,所述第一计算单元为第一数组,所述第二计算单元为第二数组。
步骤S11中所述预置数量级范围指基于密文计算的系统所支持的数量级范围,例如,系统支持的数量级范围是10-9~109,则可以根据该预置数量级范围,构建第一计算单元,所述第一计算单元中包括将所述预置数量级范围分割为不同区间的分割点。具体地,可以从该预置数量级范围内的每个数量级中分别取一个数量级,组成第一计算单元。
对于方案一,所述第一计算单元为第一数组,例如所述第一数组可以为:array1=[a0,a1,a2…an],以预置数量级范围10-9~109为例,则array1=[10-9,10-8,10-7…108,109]。需要说明的是,在本发明实施例中,所述系统支持的数量级范围是明文数据。
然后执行步骤S12,也即对所述第一数组与所述操作对象执行乘法计算,得到第一结果。在方案一中,操作对象包含一个密文数据,假设操作对象为密文数据x,则将第一数组array1与密文数据x执行乘法计算,也即,将第一数组array1中的每一个元素与密文数据x执行基于密文的乘法计算,得到第一结果。
接下来执行步骤S13,也即将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文,得到由所述第一密文和所述第二密文组成的第二数组。
具体地,将第一数组array1中的每一个元素与密文数据x执行基于密文的乘法计算,对每一个乘积分别与1进行隐私比较,如果当前乘积小于1,则将当前乘积转换为数值1对应的第一密文,如果当前乘积大于1,则将当前乘积转换为数值0对应的第二密文,最终可以得到由所述第一密文和所述第二密文组成的第二数组。
在本发明的一种可选实施例中,步骤S13将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文之前,所述方法还可以包括:
对所述第一结果中的结果数值与数值1进行隐私比较,得到隐私比较结果。
其中,所述隐私比较指对两个密文数据的大小进行比较,并且在比较过程中不用将密文数据恢复成明文数据。
在本发明的一种可选实施例中,所述对所述第一结果中的结果数值与数值1进行隐私比较,得到隐私比较结果,具体可以包括:
步骤S21、对所述结果数值与数值1执行减法计算,得到减法计算结果;
步骤S22、对所述减法计算结果执行位提取计算,得到位提取计算结果;
步骤S23、根据所述位提取计算结果,确定所述结果数值与数值1的隐私比较结果。
本发明实施例中的计算节点可用于根据输入数据执行计算任务,所述计算任务包括但不限于:加、减、乘、除等数字计算处理,以及与、或、非等逻辑计算等。所述输入数据可以为从各存储节点获取的密文分片。
在本发明实施例中,两个输入数据A1和A3的比较计算任务可以被转换成(A1-A3)的减法计算任务以及提取二进制表示(A1-A3)的计算结果中最高位值的位提取计算任务。
例如,可以利用四个计算节点中的部分计算节点执行减法计算任务,得到所述部分计算节点各自持有的减法计算结果,再将各自持有的减法计算结果作为位提取计算任务的输入数据,利用一次(k=1)比特位置换的数据交互执行最高位提取,得到位提取的计算结果。该位提取的计算结果可作为A1和A3的隐私比较结果。
其中,位提取计算过程具体可以如下:四个计算节点利用k轮次1比特置换数据的数据交互得到各自持有的计算结果,其中,所述计算结果用于提取输入数据X中二进制位;k为对应所述计算任务中输入数据X的待提取的二进制位数。在此,四个计算节点通过本地进行位计算生成包含有可抵消1比特随机数的中间数据(1比特),并通过k轮次的中间数据的数据交互得到计算结果。
需要说明的是,上述减法计算以及位提取计算均是在密文数据的基础上执行的,得到的减法计算结果和位提取计算结果均是密文数据,在隐私比较过程中,不会出现任何明文数据,可以保证信息的安全。上述提供的隐私比较的方法仅为本发明提供的一种实施方式,采用其他隐私比较方法实现本发明的方案仍在本发明保护范围内。
所述第二数组由数值为1的第一密文和数值为0的第二密文所组成,由于预估值appro需要满足如下条件,appro<1/x,因此,密文数据x与appro相乘的结果需要满足小于1,由此可以得知,在第二数组中,与数值0相邻的数值1的密文对应位置在array1中的元素即为所要确定的预估值,因为该数值是与1/x是最接近的。
为了进一步确定第二数组(第二计算单元)中的元素哪一个为与数值0相邻的数值1的密文,可以执行步骤S14和步骤S15。
在本发明的一种可选实施例中,在所述操作对象包含一个密文数据的情况下,所述步骤S14将所述第二计算单元中的前一项元素与相邻的后一项元素执行减法计算,得到包含每个减法计算差值的第三计算单元,具体可以包括:将所述第二数组中的前一个元素与相邻的后一个元素执行隐私减法计算,得到包含每个减法计算差值的第三数组。
第二数组array2的元素只包含数值0或数值1,且第二数组array2的前半部分均为1,后半部分均为0。为了得到第二数组array2中最后一个数值1的位置,也就是与数值0相邻的数值1的位置,可以将第二数组array2中的前一个元素与相邻的后一个元素执行减法计算,得到第三数组array3。第三数组array3只包含一个数值为1的元素,其余元素的数值均为0。
所述步骤S15对所述第三计算单元与所述第一计算单元执行隐私内积计算,得到所述操作对象对应的数量级,具体可以包括:
步骤S31、对所述第三数组与所述第一数组执行内积计算,得到内积计算结果;
步骤S32、将所述内积计算结果作为所述操作对象对应的数量级。
在得到第三数组array3之后,可以对所述第三数组array3与所述第一数组array1执行内积计算,得到内积计算结果。由于两个数组的内积运算就是将两个数组对应位置的数值相乘之后再求和,而第三数组array3中只有一个位置的数值是1,其他位置的数值均为0,因此第一数组array1与第三数组array3执行内积计算后得到的内积计算结果就是第三数组array3中数值1对应位置在第一数值array1中的元素,也就是所需要确定的数量级。
在本发明的一种应用示例中,需要对操作对象执行倒数计算,该操作对象包含一个密文数据x,该密文数据x对应的明文数据为2,假设系统支持的数量级范围是:10-3~103。执行步骤S11可以得到第一数组为:array1=[10-3,10-2,10-1,100,101,102,103]。执行步骤S12和S13,可以得到第二数组为:array2=[1,1,1,0,0,0,0]。执行步骤S14,可以得到第三数组为:array3=[0,0,1,0,0,0,0]。执行步骤S15,可以得到内积计算结果为:array3·array1=10-1。因此,可以确定操作对象x执行基于密文的倒数计算操作的数量级为10-1。
方案二
在本发明的一种可选实施例中,所述操作对象包含至少两个密文数据,首先执行步骤S11,构建第一计算单元,在方案二中,所述第一计算单元为第一向量。
具体地,根据预置数量级范围,构建第一向量,该第一向量可以为n行1列的向量,该第一向量包含n个对预置数量级范围分割为不同区间的分割点。
然后执行步骤S12,以得到第一结果。可选地,所述步骤S12对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果,具体可以包括:对所述第一向量与所述操作对象对应的第二向量执行乘法计算,得到第一结果;其中,所述第二向量为对所述操作对象进行隐私转换所得到。
对于方案二,由于操作对象包含至少两个密文数据,因此,为了使得操作对象可以和第一向量执行乘法计算,本发明实施例将该操作对象进行转换,得到第二向量。
以所述操作对象为一个包含m个密文数据的数组为例,本发明实施例可以利用numpy中的flatten()方法,将该操作对象转换为第二向量,该第二向量可以为m行1列的向量。
由此,可以将上述n行1列的第一向量和m行1列的第二向量执行乘法计算,得到第一结果,所述第一结果为m行n列的矩阵。
接下来执行步骤S13,将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文,得到由所述第一密文和所述第二密文组成的第二计算单元。在方案二中,所述第二计算单元为第一矩阵,该第一矩阵为m行n列的矩阵。
可选地,所述步骤S14将所述第二计算单元中的前一项元素与相邻的后一项元素执行隐私减法计算,得到包含每个减法计算差值的第三计算单元,具体可以包括:将所述第一矩阵中的前一列元素与相邻的后一列元素执行隐私减法计算,得到包含每个减法计算差值的第二矩阵。
与方案一类似,第一矩阵中的元素只包含数值0或数值1,且第一矩阵的前半部分元素的数值均为1,后半部分元素的数值均为0。为了得到第一矩阵中最后一个数值1的位置,也就是与数值0相邻的数值1的位置,可以将第一矩阵中的前一列元素与相邻的后一列元素执行减法计算得到第二矩阵。第二矩阵中每行只包含一个数值为1的元素,其余元素的数值均为0。
可选地,所述步骤S15对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级,具体可以包括:
步骤S41、对所述第二矩阵与所述第一向量执行内积计算,得到第三向量;
步骤S42、将所述第三向量中的每一行元素的数量级作为所述操作对象中至少两个密文数据分别对应的数量级。
具体地,将所述第二矩阵与所述第一向量执行内积计算,可以得到第三向量,该第三向量为m行1列的向量,进而可以将第三向量中的每一行元素的数量级作为所述操作对象中每一个密文数据分别对应的数量级。
在确定所述操作对象的数量级之后,可以根据所述数量级确定所述操作对象执行所述计算操作的预估值,进而可以依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。在本发明的一种可选实施例中,所述根据所述数量级确定所述操作对象执行所述计算操作的预估值,具体可以包括:
将所述数量级确定为所述预估值的数量级;
根据所述预估值的数量级确定所述预估值。
具体地,本发明实施例可以将确定的所述操作对象的数量级,作为所述操作对象执行所述计算操作的预估值的数量级。再根据所述确定的预估值的数量级确定预估值,例如,可以将所确定的预估值所在的数量级范围内任一数值确定为所述预估值,假设所确定的数量级为10-1,则根据该数量级确定的预估值优选为10-1,或者2*10-1,3*10-1等等。
在本发明的一种可选实施例中,所述依据所述预估值对所述操作对象执行基于密文的计算操作的步骤,具体可以包括:依据所述预估值按照预置的迭代次数,对所述操作对象执行基于密文的牛顿迭代计算操作。
在确定所述操作对象执行所述计算操作的预估值之后,即可依据所述预估值按照预置的迭代次数,对所述操作对象执行基于密文的牛顿迭代计算操作,得到隐私结算结果。
例如,在上述示例中,需要对操作对象执行倒数计算,该操作对象包含一个密文数据x,x对应的明文数据为2,假设系统支持的数量级范围是10-3~103,在确定操作对象x执行基于密文的倒数计算操作的预估值为:appro=10-1之后,可以依据该预估值按照预置的迭代次数,对密文数据x执行基于密文的牛顿迭代计算操作,得到对密文数据x执行倒数计算的隐私结算结果。
可以理解,本发明实施例可适用于需要使用预估值进行计算的所有计算操作,例如,除了牛顿迭代计算操作之外,本发明实施例还可以适用于基于密文的泰勒展开法计算操作。
综上,本发明实施例首先确定待执行计算操作的操作对象的数量级,其中,所述操作对象包含至少一个密文数据;然后,根据所述数量级确定所述操作对象执行所述计算操作的预估值;最后,依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
通过本发明实施例,针对不同的操作对象,可以确定不同操作操作对象对应的不同数量级,进而可以根据该数量级确定符合当前操作对象的预估值,可以避免对不同操作对象均采用统一的较小的预估值,导致计算执行过程中迭代次数较高的问题,可以减少计算过程中的迭代次数,进而可以提高计算效率。
此外,本发明实施例中的计算操作均为基于密文的计算操作,在基于密文的计算过程中,不会暴露数据明文,可以保证信息的安全性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图2,示出了本发明的一种数据处理装置实施例的结构框图,所述装置具体可以包括:
数量级确定模块201,用于确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
预估值确定模块202,用于根据所述数量级确定所述操作对象执行所述计算操作的预估值;
数据计算模块203,用于依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
可选地,所述数量级确定模块201,包括:
构建子模块,用于根据预置数量级范围,构建第一计算单元;其中,所述第一计算单元中包括将所述预置数量级范围分割为不同区间的分割点;
乘法计算子模块,用于对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果;
第一转换子模块,用于将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文,得到由所述第一密文和所述第二密文组成的第二计算单元;
第二转换子模块,用于将所述第二计算单元中的前一项元素与相邻的后一项元素执行减法计算,得到包含每个减法计算差值的第三计算单元;
结果获取子模块,用于对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级。
可选地,所述操作对象包含一个密文数据,所述第一计算单元为第一数组,所述第二计算单元为第二数组,所述第二转换子模块,具体用于:
将所述第二数组中的前一个元素与相邻的后一个元素执行隐私减法计算,得到包含每个减法计算差值的第三数组;
所述结果获取子模块,包括:
第一内积计算单元,用于对所述第三数组与所述第一数组执行内积计算,得到内积计算结果;
第一确定单元,用于将所述内积计算结果的数量级作为所述操作对象对应的数量级。
可选地,所述操作对象包含至少两个密文数据,所述第一计算单元为第一向量,所述第二计算单元为第一矩阵,所述乘法计算子模块,具体用于:
对所述第一向量与所述操作对象对应的第二向量执行乘法计算,得到第一结果;其中,所述第二向量为对所述操作对象进行隐私转换所得到;
所述第二转换子模块,具体用于:
将所述第一矩阵中的前一列元素与相邻的后一列元素执行隐私减法计算,得到包含每个减法计算差值的第二矩阵;
所述结果获取子模块,包括:
第二内积计算单元,用于对所述第二矩阵与所述第一向量执行内积计算,得到第三向量;
第二确定单元,用于将所述第三向量中的每一行元素的数量级作为所述操作对象中至少两个密文数据分别对应的数量级。
可选地,所述预估值确定模块202,包括:
数量级确定子模块,用于将所述数量级确定为所述预估值的数量级;
预估值确定子模块,用于根据所述预估值的数量级确定预估值。
可选地,所述数据计算模块203,具体用于:
依据所述预估值按照预置的迭代次数,对所述操作对象执行基于密文的牛顿迭代计算操作。
可选地,所述密文数据为对明文数据进行分散处理所得到。
可选地,所述分散处理包括:对所述明文数据进行分片处理得到至少两个密文分片。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于数据处理的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;根据所述数量级确定所述操作对象执行所述计算操作的预估值;依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
图3是根据一示例性实施例示出的一种用于数据处理的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图3,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图4是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的数据处理方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种数据处理方法,所述方法包括:确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;根据所述数量级确定所述操作对象执行所述计算操作的预估值;依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
本发明实施例公开了A1、一种数据处理方法,包括:
确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
根据所述数量级确定所述操作对象执行所述计算操作的预估值;
依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
A2、根据A1所述的方法,所述确定待执行计算操作的操作对象的数量级的步骤,包括:
根据预置数量级范围,构建第一计算单元;其中,所述第一计算单元中包括将所述预置数量级范围分割为不同区间的分割点;
对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果;
将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文,得到由所述第一密文和所述第二密文组成的第二计算单元;
将所述第二计算单元中的前一项元素与相邻的后一项元素执行减法计算,得到包含每个减法计算差值的第三计算单元;
对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级。
A3、根据A2所述的方法,所述操作对象包含一个密文数据,所述第一计算单元为第一数组,所述第二计算单元为第二数组,所述将所述第二计算单元中的前一项元素与相邻的后一项元素执行隐私减法计算,得到包含每个减法计算差值的第三计算单元,包括:
将所述第二数组中的前一个元素与相邻的后一个元素执行隐私减法计算,得到包含每个减法计算差值的第三数组;
所述对所述第三计算单元与所述第一计算单元执行隐私内积计算,得到所述操作对象对应的数量级,包括:
对所述第三数组与所述第一数组执行内积计算,得到内积计算结果;
将所述内积计算结果的数量级作为所述操作对象对应的数量级。
A4、根据A2所述的方法,所述操作对象包含至少两个密文数据,所述第一计算单元为第一向量,所述第二计算单元为第一矩阵,所述对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果,包括:
对所述第一向量与所述操作对象对应的第二向量执行乘法计算,得到第一结果;其中,所述第二向量为对所述操作对象进行隐私转换所得到;
所述将所述第二计算单元中的前一项元素与相邻的后一项元素执行隐私减法计算,得到包含每个减法计算差值的第三计算单元,包括:
将所述第一矩阵中的前一列元素与相邻的后一列元素执行隐私减法计算,得到包含每个减法计算差值的第二矩阵;
所述对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级,包括:
对所述第二矩阵与所述第一向量执行内积计算,得到第三向量;
将所述第三向量中的每一行元素的数量级作为所述操作对象中至少两个密文数据分别对应的数量级。
A5、根据A1至A4任一项所述的方法,所述根据所述数量级确定所述操作对象执行所述计算操作的预估值包括:
将所述数量级确定为所述预估值的数量级;
根据所述预估值的数量级确定预估值。
A6、根据A5所述的方法,所述依据所述预估值对所述操作对象执行基于密文的计算操作的步骤,包括:
依据所述预估值按照预置的迭代次数,对所述操作对象执行基于密文的牛顿迭代计算操作。
A7、根据A1所述的方法,所述密文数据为对明文数据进行分散处理所得到。
A8、根据A7所述的方法,所述分散处理包括:对所述明文数据进行分片处理得到至少两个密文分片。
本发明实施例公开了B9、一种数据处理装置,包括:
数量级确定模块,用于确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
预估值确定模块,用于根据所述数量级确定所述操作对象执行所述计算操作的预估值;
数据计算模块,用于依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
B10、根据B9所述的装置,所述数量级确定模块,包括:
构建子模块,用于根据预置数量级范围,构建第一计算单元;其中,所述第一计算单元中包括将所述预置数量级范围分割为不同区间的分割点;
乘法计算子模块,用于对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果;
第一转换子模块,用于将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文,得到由所述第一密文和所述第二密文组成的第二计算单元;
第二转换子模块,用于将所述第二计算单元中的前一项元素与相邻的后一项元素执行减法计算,得到包含每个减法计算差值的第三计算单元;
结果获取子模块,用于对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级。
B11、根据B10所述的装置,所述操作对象包含一个密文数据,所述第一计算单元为第一数组,所述第二计算单元为第二数组,所述第二转换子模块,具体用于:
将所述第二数组中的前一个元素与相邻的后一个元素执行隐私减法计算,得到包含每个减法计算差值的第三数组;
所述结果获取子模块,包括:
第一内积计算单元,用于对所述第三数组与所述第一数组执行内积计算,得到内积计算结果;
第一确定单元,用于将所述内积计算结果的数量级作为所述操作对象对应的数量级。
B12、根据B10所述的装置,所述操作对象包含至少两个密文数据,所述第一计算单元为第一向量,所述第二计算单元为第一矩阵,所述乘法计算子模块,具体用于:
对所述第一向量与所述操作对象对应的第二向量执行乘法计算,得到第一结果;其中,所述第二向量为对所述操作对象进行隐私转换所得到;
所述第二转换子模块,具体用于:
将所述第一矩阵中的前一列元素与相邻的后一列元素执行隐私减法计算,得到包含每个减法计算差值的第二矩阵;
所述结果获取子模块,包括:
第二内积计算单元,用于对所述第二矩阵与所述第一向量执行内积计算,得到第三向量;
第二确定单元,用于将所述第三向量中的每一行元素的数量级作为所述操作对象中至少两个密文数据分别对应的数量级。
B13、根据B9至B12任一项所述的装置,所述预估值确定模块包括:
数量级确定子模块,用于将所述数量级确定为所述预估值的数量级;
预估值确定子模块,用于根据所述预估值的数量级确定预估值。
B14、根据B13所述的装置,所述数据计算模块,具体用于:
依据所述预估值按照预置的迭代次数,对所述操作对象执行基于密文的牛顿迭代计算操作。
B15、根据B9所述的装置,所述密文数据为对明文数据进行分散处理所得到。
B16、根据B15所述的装置,所述分散处理包括:对所述明文数据进行分片处理得到至少两个密文分片。
本发明实施例公开了C17、一种用于数据处理的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
根据所述数量级确定所述操作对象执行所述计算操作的预估值;
依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果。
C18、根据C17所述的装置,所述确定待执行计算操作的操作对象的数量级的步骤,包括:
根据预置数量级范围,构建第一计算单元;其中,所述第一计算单元中包括将所述预置数量级范围分割为不同区间的分割点;
对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果;
将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文,得到由所述第一密文和所述第二密文组成的第二计算单元;
将所述第二计算单元中的前一项元素与相邻的后一项元素执行减法计算,得到包含每个减法计算差值的第三计算单元;
对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级。
C19、根据C18所述的装置,所述操作对象包含一个密文数据,所述第一计算单元为第一数组,所述第二计算单元为第二数组,所述将所述第二计算单元中的前一项元素与相邻的后一项元素执行隐私减法计算,得到包含每个减法计算差值的第三计算单元,包括:
将所述第二数组中的前一个元素与相邻的后一个元素执行隐私减法计算,得到包含每个减法计算差值的第三数组;
所述对所述第三计算单元与所述第一计算单元执行隐私内积计算,得到所述操作对象对应的数量级,包括:
对所述第三数组与所述第一数组执行内积计算,得到内积计算结果;
将所述内积计算结果的数量级作为所述操作对象对应的数量级。
C20、根据C18所述的装置,所述操作对象包含至少两个密文数据,所述第一计算单元为第一向量,所述第二计算单元为第一矩阵,所述对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果,包括:
对所述第一向量与所述操作对象对应的第二向量执行乘法计算,得到第一结果;其中,所述第二向量为对所述操作对象进行隐私转换所得到;
所述将所述第二计算单元中的前一项元素与相邻的后一项元素执行隐私减法计算,得到包含每个减法计算差值的第三计算单元,包括:
将所述第一矩阵中的前一列元素与相邻的后一列元素执行隐私减法计算,得到包含每个减法计算差值的第二矩阵;
所述对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级,包括:
对所述第二矩阵与所述第一向量执行内积计算,得到第三向量;
将所述第三向量中的每一行元素的数量级作为所述操作对象中至少两个密文数据分别对应的数量级。
C21、根据C17至C20任一项所述的装置,所述根据所述数量级确定所述操作对象执行所述计算操作的预估值包括:
将所述数量级确定为所述预估值的数量级;
根据所述预估值的数量级确定预估值。
C22、根据C21所述的装置,所述依据所述预估值对所述操作对象执行基于密文的计算操作的步骤,包括:
依据所述预估值按照预置的迭代次数,对所述操作对象执行基于密文的牛顿迭代计算操作。
C23、根据C17所述的装置,所述密文数据为对明文数据进行分散处理所得到。
C24、根据C23所述的装置,所述分散处理包括:对所述明文数据进行分片处理得到至少两个密文分片。
本发明实施例公开了D25、一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如A1至A8中一个或多个所述的数据处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种数据处理方法、一种数据处理装置和一种用于数据处理的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (22)
1.一种数据处理方法,其特征在于,所述方法包括:
确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
根据所述数量级确定所述操作对象执行所述计算操作的预估值;
依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果;
所述确定待执行计算操作的操作对象的数量级的步骤,包括:
根据预置数量级范围,构建第一计算单元;其中,所述第一计算单元中包括将所述预置数量级范围分割为不同区间的分割点;
对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果;
将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文,得到由所述第一密文和所述第二密文组成的第二计算单元;
将所述第二计算单元中的前一项元素与相邻的后一项元素执行减法计算,得到包含每个减法计算差值的第三计算单元;
对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级。
2.根据权利要求1所述的方法,其特征在于,所述操作对象包含一个密文数据,所述第一计算单元为第一数组,所述第二计算单元为第二数组,所述将所述第二计算单元中的前一项元素与相邻的后一项元素执行隐私减法计算,得到包含每个减法计算差值的第三计算单元,包括:
将所述第二数组中的前一个元素与相邻的后一个元素执行隐私减法计算,得到包含每个减法计算差值的第三数组;
所述对所述第三计算单元与所述第一计算单元执行隐私内积计算,得到所述操作对象对应的数量级,包括:
对所述第三数组与所述第一数组执行内积计算,得到内积计算结果;
将所述内积计算结果的数量级作为所述操作对象对应的数量级。
3.根据权利要求1所述的方法,其特征在于,所述操作对象包含至少两个密文数据,所述第一计算单元为第一向量,所述第二计算单元为第一矩阵,所述对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果,包括:
对所述第一向量与所述操作对象对应的第二向量执行乘法计算,得到第一结果;其中,所述第二向量为对所述操作对象进行隐私转换所得到;
所述将所述第二计算单元中的前一项元素与相邻的后一项元素执行隐私减法计算,得到包含每个减法计算差值的第三计算单元,包括:
将所述第一矩阵中的前一列元素与相邻的后一列元素执行隐私减法计算,得到包含每个减法计算差值的第二矩阵;
所述对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级,包括:
对所述第二矩阵与所述第一向量执行内积计算,得到第三向量;
将所述第三向量中的每一行元素的数量级作为所述操作对象中至少两个密文数据分别对应的数量级。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述数量级确定所述操作对象执行所述计算操作的预估值包括:
将所述数量级确定为所述预估值的数量级;
根据所述预估值的数量级确定预估值。
5.根据权利要求4所述的方法,其特征在于,所述依据所述预估值对所述操作对象执行基于密文的计算操作的步骤,包括:
依据所述预估值按照预置的迭代次数,对所述操作对象执行基于密文的牛顿迭代计算操作。
6.根据权利要求1所述的方法,其特征在于,所述密文数据为对明文数据进行分散处理所得到。
7.根据权利要求6所述的方法,其特征在于,所述分散处理包括:对所述明文数据进行分片处理得到至少两个密文分片。
8.一种数据处理装置,其特征在于,所述装置包括:
数量级确定模块,用于确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
预估值确定模块,用于根据所述数量级确定所述操作对象执行所述计算操作的预估值;
数据计算模块,用于依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果;
所述数量级确定模块,包括:
构建子模块,用于根据预置数量级范围,构建第一计算单元;其中,所述第一计算单元中包括将所述预置数量级范围分割为不同区间的分割点;
乘法计算子模块,用于对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果;
第一转换子模块,用于将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文,得到由所述第一密文和所述第二密文组成的第二计算单元;
第二转换子模块,用于将所述第二计算单元中的前一项元素与相邻的后一项元素执行减法计算,得到包含每个减法计算差值的第三计算单元;
结果获取子模块,用于对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级。
9.根据权利要求8所述的装置,其特征在于,所述操作对象包含一个密文数据,所述第一计算单元为第一数组,所述第二计算单元为第二数组,所述第二转换子模块,具体用于:
将所述第二数组中的前一个元素与相邻的后一个元素执行隐私减法计算,得到包含每个减法计算差值的第三数组;
所述结果获取子模块,包括:
第一内积计算单元,用于对所述第三数组与所述第一数组执行内积计算,得到内积计算结果;
第一确定单元,用于将所述内积计算结果的数量级作为所述操作对象对应的数量级。
10.根据权利要求8所述的装置,其特征在于,所述操作对象包含至少两个密文数据,所述第一计算单元为第一向量,所述第二计算单元为第一矩阵,所述乘法计算子模块,具体用于:
对所述第一向量与所述操作对象对应的第二向量执行乘法计算,得到第一结果;其中,所述第二向量为对所述操作对象进行隐私转换所得到;
所述第二转换子模块,具体用于:
将所述第一矩阵中的前一列元素与相邻的后一列元素执行隐私减法计算,得到包含每个减法计算差值的第二矩阵;
所述结果获取子模块,包括:
第二内积计算单元,用于对所述第二矩阵与所述第一向量执行内积计算,得到第三向量;
第二确定单元,用于将所述第三向量中的每一行元素的数量级作为所述操作对象中至少两个密文数据分别对应的数量级。
11.根据权利要求8至10任一项所述的装置,其特征在于,所述预估值确定模块包括:
数量级确定子模块,用于将所述数量级确定为所述预估值的数量级;
预估值确定子模块,用于根据所述预估值的数量级确定预估值。
12.根据权利要求11所述的装置,其特征在于,所述数据计算模块,具体用于:
依据所述预估值按照预置的迭代次数,对所述操作对象执行基于密文的牛顿迭代计算操作。
13.根据权利要求8所述的装置,其特征在于,所述密文数据为对明文数据进行分散处理所得到。
14.根据权利要求13所述的装置,其特征在于,所述分散处理包括:对所述明文数据进行分片处理得到至少两个密文分片。
15.一种用于数据处理的装置,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
确定待执行计算操作的操作对象的数量级;其中,所述操作对象包含至少一个密文数据;
根据所述数量级确定所述操作对象执行所述计算操作的预估值;
依据所述预估值对所述操作对象执行基于密文的计算操作,得到隐私计算结果;
所述确定待执行计算操作的操作对象的数量级的步骤,包括:
根据预置数量级范围,构建第一计算单元;其中,所述第一计算单元中包括将所述预置数量级范围分割为不同区间的分割点;
对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果;
将所述第一结果中小于1的结果转换为数值1对应的第一密文,以及将所述第一结果中大于1的结果转换为数值0对应的第二密文,得到由所述第一密文和所述第二密文组成的第二计算单元;
将所述第二计算单元中的前一项元素与相邻的后一项元素执行减法计算,得到包含每个减法计算差值的第三计算单元;
对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级。
16.根据权利要求15所述的装置,其特征在于,所述操作对象包含一个密文数据,所述第一计算单元为第一数组,所述第二计算单元为第二数组,所述将所述第二计算单元中的前一项元素与相邻的后一项元素执行隐私减法计算,得到包含每个减法计算差值的第三计算单元,包括:
将所述第二数组中的前一个元素与相邻的后一个元素执行隐私减法计算,得到包含每个减法计算差值的第三数组;
所述对所述第三计算单元与所述第一计算单元执行隐私内积计算,得到所述操作对象对应的数量级,包括:
对所述第三数组与所述第一数组执行内积计算,得到内积计算结果;
将所述内积计算结果的数量级作为所述操作对象对应的数量级。
17.根据权利要求15所述的装置,其特征在于,所述操作对象包含至少两个密文数据,所述第一计算单元为第一向量,所述第二计算单元为第一矩阵,所述对所述第一计算单元与所述操作对象执行乘法计算,得到第一结果,包括:
对所述第一向量与所述操作对象对应的第二向量执行乘法计算,得到第一结果;其中,所述第二向量为对所述操作对象进行隐私转换所得到;
所述将所述第二计算单元中的前一项元素与相邻的后一项元素执行隐私减法计算,得到包含每个减法计算差值的第三计算单元,包括:
将所述第一矩阵中的前一列元素与相邻的后一列元素执行隐私减法计算,得到包含每个减法计算差值的第二矩阵;
所述对所述第三计算单元与所述第一计算单元执行内积计算,得到所述操作对象对应的数量级,包括:
对所述第二矩阵与所述第一向量执行内积计算,得到第三向量;
将所述第三向量中的每一行元素的数量级作为所述操作对象中至少两个密文数据分别对应的数量级。
18.根据权利要求15至17任一项所述的装置,其特征在于,所述根据所述数量级确定所述操作对象执行所述计算操作的预估值包括:
将所述数量级确定为所述预估值的数量级;
根据所述预估值的数量级确定预估值。
19.根据权利要求18所述的装置,其特征在于,所述依据所述预估值对所述操作对象执行基于密文的计算操作的步骤,包括:
依据所述预估值按照预置的迭代次数,对所述操作对象执行基于密文的牛顿迭代计算操作。
20.根据权利要求15所述的装置,其特征在于,所述密文数据为对明文数据进行分散处理所得到。
21.根据权利要求20所述的装置,其特征在于,所述分散处理包括:对所述明文数据进行分片处理得到至少两个密文分片。
22.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至7中一个或多个所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910926822.5A CN112583764B (zh) | 2019-09-27 | 2019-09-27 | 一种数据处理方法、装置和用于数据处理的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910926822.5A CN112583764B (zh) | 2019-09-27 | 2019-09-27 | 一种数据处理方法、装置和用于数据处理的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112583764A CN112583764A (zh) | 2021-03-30 |
CN112583764B true CN112583764B (zh) | 2022-12-20 |
Family
ID=75110051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910926822.5A Active CN112583764B (zh) | 2019-09-27 | 2019-09-27 | 一种数据处理方法、装置和用于数据处理的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112583764B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113779500B (zh) * | 2021-08-23 | 2024-01-30 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103986574A (zh) * | 2014-05-16 | 2014-08-13 | 北京航空航天大学 | 一种基于身份的分层广播加密方法 |
CN107317666A (zh) * | 2017-05-25 | 2017-11-03 | 南京邮电大学 | 一种支持浮点运算的并行全同态加解密方法 |
CN109241016A (zh) * | 2018-08-14 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2717999T3 (es) * | 2014-12-03 | 2019-06-26 | Nagravision Sa | Método criptográfico por bloques para cifrar/descifrar mensajes y dispositivos criptográficos para implementar este método |
-
2019
- 2019-09-27 CN CN201910926822.5A patent/CN112583764B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103986574A (zh) * | 2014-05-16 | 2014-08-13 | 北京航空航天大学 | 一种基于身份的分层广播加密方法 |
CN107317666A (zh) * | 2017-05-25 | 2017-11-03 | 南京邮电大学 | 一种支持浮点运算的并行全同态加解密方法 |
CN109241016A (zh) * | 2018-08-14 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112583764A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113315631B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113449325B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN115396101B (zh) | 一种基于秘密分享的不经意打乱方法和系统 | |
CN115396100B (zh) | 一种基于秘密分享的不经意随机打乱方法和系统 | |
CN112667674B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112688779B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN111859035A (zh) | 数据处理方法及装置 | |
CN113254956A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113094744A (zh) | 信息处理方法、服务平台、用于信息处理的装置和多方安全计算系统 | |
CN112307056B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN111711645A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114884645A (zh) | 一种隐私计算方法、装置和可读存储介质 | |
CN112583764B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112464257B (zh) | 一种数据检测方法、装置和用于数据检测的装置 | |
CN112487415B (zh) | 计算任务的安全性检测方法及装置 | |
CN112580064B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114885038B (zh) | 一种加密协议转换方法、结果获取节点和隐私计算节点 | |
CN115617897B (zh) | 一种数据类型转换方法和多方安全计算系统 | |
CN116305206A (zh) | 一种安全多方计算方法、装置、电子设备及存储介质 | |
CN114448631B (zh) | 一种多方安全计算方法、系统和用于多方安全计算的装置 | |
CN112468290B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113139205B (zh) | 一种安全计算方法、通用计算引擎、用于安全计算的装置和安全计算系统 | |
CN112685747B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112580063B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112668015B (zh) | 一种数据处理方法、装置和用于数据处理的装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |