CN116070282B - 一种隐私计算中的数据处理方法、装置及电子设备 - Google Patents

一种隐私计算中的数据处理方法、装置及电子设备 Download PDF

Info

Publication number
CN116070282B
CN116070282B CN202310357067.XA CN202310357067A CN116070282B CN 116070282 B CN116070282 B CN 116070282B CN 202310357067 A CN202310357067 A CN 202310357067A CN 116070282 B CN116070282 B CN 116070282B
Authority
CN
China
Prior art keywords
data
bit
fragments
cooperation
calculation
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
Application number
CN202310357067.XA
Other languages
English (en)
Other versions
CN116070282A (zh
Inventor
蒋武轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN202310357067.XA priority Critical patent/CN116070282B/zh
Publication of CN116070282A publication Critical patent/CN116070282A/zh
Application granted granted Critical
Publication of CN116070282B publication Critical patent/CN116070282B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

本申请公开了一种隐私计算中的数据处理方法、装置及电子设备,涉及隐私计算技术领域,包括:基于持有的数据分片,通过与其他计算节点之间的协同,按照预设变换方式,对待处理数据进行变换,得到待处理数据的变换后数据的变换后数据分片,变换后数据位于执行预设近似计算需要满足的数值范围内,预设近似计算与预设非线性函数相对应;针对变换后数据执行预设近似计算,得到近似计算结果的近似计算结果分片;按照与预设变换方式对应的预设还原方式,对近似计算结果进行还原计算,得到还原结果的还原结果分片,作为采用预设非线性函数对待处理数据进行非线性计算的非线性计算结果的数据分片。从而完成对该待处理数据的隐私计算中的非线性计算。

Description

一种隐私计算中的数据处理方法、装置及电子设备
技术领域
本申请涉及隐私计算技术领域,尤其涉及一种隐私计算中的数据处理方法、装置及电子设备。
背景技术
在隐私计算中的多方安全计算应用场景中,经常需要执行一些非线性函数的计算,例如除法、指数、对数、开方等,基本的多方安全协议主要支持加法、乘法和比较操作,并不直接支持这些相对复杂的非线性函数,因此需要设计一些有效的算法来进行非线性函数的计算。
发明内容
本申请实施例提供一种隐私计算中的数据处理方法、装置及电子设备,用以实现在隐私计算中的非线性函数的计算。
本申请实施例提供一种隐私计算中的数据处理方法,应用于参与隐私计算的多个计算节点中的每个计算节点,所述多个计算节点分别持有待处理数据的多个数据分片之一,所述方法,包括:
基于持有的数据分片,通过与其他计算节点之间的协同,按照预设变换方式,对所述待处理数据进行变换,得到所述待处理数据的变换后数据的变换后数据分片,所述变换后数据位于执行预设近似计算需要满足的数值范围内,所述预设近似计算与预设非线性函数相对应;
基于持有的变换后数据分片,通过与其他计算节点之间的协同,针对所述变换后数据执行所述预设近似计算,得到近似计算结果的近似计算结果分片;
基于持有的近似计算结果分片,通过与其他计算节点之间的协同,按照与所述预设变换方式对应的预设还原方式,对所述近似计算结果进行还原计算,得到还原结果的还原结果分片,作为采用所述预设非线性函数对所述待处理数据进行非线性计算的非线性计算结果的数据分片。
本申请实施例还提供一种隐私计算中的数据处理装置,应用于参与隐私计算的多个计算节点中的每个计算节点,所述多个计算节点分别持有待处理数据的多个数据分片之一,所述装置,包括:
数据变换模块,用于基于持有的数据分片,通过与其他计算节点之间的协同,按照预设变换方式,对所述待处理数据进行变换,得到所述待处理数据的变换后数据的变换后数据分片,所述变换后数据位于执行预设近似计算需要满足的数值范围内,所述预设近似计算与预设非线性函数相对应;
近似计算模块,用于基于持有的变换后数据分片,通过与其他计算节点之间的协同,针对所述变换后数据执行所述预设近似计算,得到近似计算结果的近似计算结果分片;
结果还原模块,用于基于持有的近似计算结果分片,通过与其他计算节点之间的协同,按照与所述预设变换方式对应的预设还原方式,对所述近似计算结果进行还原计算,得到还原结果的还原结果分片,作为采用所述预设非线性函数对所述待处理数据进行非线性计算的非线性计算结果的数据分片。
本申请实施例还提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一隐私计算中的数据处理方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一隐私计算中的数据处理方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一隐私计算中的数据处理方法。
本申请有益效果包括:
本申请实施例提供的方法中,针对非线性计算所采用的预设非线性函数对应有预设近似计算,在数据处理过程中,针对需要进行非线性计算的待处理数据,先将其变换为预设近似计算需要满足的数值范围内的变换后数据,然后对该变换后数据执行该预设近似计算,得到近似计算结果,再按照对应的预设还原方式,对该近似计算结果进行还原计算,得到的还原结果,作为采用预设非线性函数对待处理数据进行非线性计算的非线性计算结果,从而完成对该待处理数据的非线性计算,并且,上述计算过程均是多个计算节点基于各自持有的待处理数据的数据分片,通过协同完成的,即对于原始的待处理数据,以及计算过程中得到的一些中间结果,各计算节点均只能获知其分片,而无法获知其本身,从而达到隐私计算的目的。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中:
图1为本申请实施例提供的隐私计算中的数据处理方法的流程图;
图2为本申请实施例提供的针对非线性函数为倒数的数据处理方法的流程图;
图3为本申请实施例提供的针对非线性函数为对数的数据处理方法的流程图;
图4为本申请实施例提供的针对非线性函数为逆平方根的数据处理方法的流程图;
图5为本申请实施例提供的针对非线性函数为指数的数据处理方法的流程图;
图6为本申请实施例提供的隐私计算中的数据处理装置的结构示意图;
图7为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了给出在隐私计算中的非线性函数的计算的实现方案,本申请实施例提供了一种隐私计算中的数据处理方法、装置及电子设备,以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请实施例提供一种隐私计算中的数据处理方法,应用于参与隐私计算的多个计算节点中的每个计算节点,多个计算节点分别持有待处理数据的多个数据分片之一,如图1所示,包括:
步骤11、基于持有的数据分片,通过与其他计算节点之间的协同,按照预设变换方式,对待处理数据进行变换,得到待处理数据的变换后数据的变换后数据分片,变换后数据位于执行预设近似计算需要满足的数值范围内,预设近似计算与预设非线性函数相对应;
步骤12、基于持有的变换后数据分片,通过与其他计算节点之间的协同,针对变换后数据执行预设近似计算,得到近似计算结果的近似计算结果分片;
步骤13、基于持有的近似计算结果分片,通过与其他计算节点之间的协同,按照与预设变换方式对应的预设还原方式,对近似计算结果进行还原计算,得到还原结果的还原结果分片,作为采用预设非线性函数对待处理数据进行非线性计算的非线性计算结果的数据分片。
采用本申请实施例提供的上述方法,能够完成对该待处理数据的非线性计算,并且,上述计算过程均是多个计算节点基于各自持有的待处理数据的数据分片,通过协同完成的,即对于原始的待处理数据,以及计算过程中得到的一些中间结果,各计算节点均只能获知其分片,而无法获知其本身,从而达到隐私计算的目的。
本申请实施例中,对待处理数据进行变换,使得变换后数据位于执行预设近似计算需要满足的数值范围内,通常情况下,可以是可以变换到一个较小数值范围内,即变换后数据所属的数值范围,小于待处理数据所属的数值范围,从而可以减少计算量,并提高后续近似计算的准确性,从而提高对待处理数据的非线性计算的准确性,即提高计算精度。
本申请实施例中,针对上述步骤12中对待处理数据进行变换,具体可以包括:
基于持有的数据分片,通过与其他计算节点之间的协同,按照基于位分解操作的预设变换方式,对待处理数据进行变换,得到待处理数据的变换后数据的变换后数据分片。
采用位分解操作,可以将加法分享的密文分解为二进制分享,参与方从保存数据值的分享转为保存每个二进制比特的分享。
假设数值为x,定点数长度为k,定点数精度为d,最高位为符号位,负数补码表示,将x位分解后的第i位是x[i],i的取值为0至k-1的整数,根据定点数的规则有如下的关系式:
x= (1-2x[k-1]) ×(2^(-d) ×x[0]+2^(-d+1) × x[1]+…+2^(k-d-2) × x[k-2]);
最低位为第0位,第k-1位为符号位,除此之外第i位的比特表示为2^(i-d)。
下面,针对几种具体的非线性函数,对本申请实施例提供的上述方法进行详细描述。
针对非线性函数为倒数(相当于除法计算)的非线性计算,本申请实施例提供一种隐私计算中的数据处理方法,应用于参与隐私计算的多个计算节点中的每个计算节点,多个计算节点分别持有待处理数据的多个数据分片之一,如图2所示,该方法,包括:
步骤21、基于持有的数据分片,通过与其他计算节点之间的协同,对待处理数据进行位分解操作,得到待处理数据的位分解数据的位分解数据分片。
本步骤中,首先对待处理数据x进行位分解操作,得到长度为k(定点数长度)的比特串,作为待处理数据x的位分解数据,每个计算节点得到的是该位分解数据的位分解数据分片。
本步骤具体可以采用如下方式进行位分解操作:
方式一:基于持有的数据分片,通过与其他计算节点之间的协同,对待处理数据进行位分解操作,得到位分解比特串的位分解比特串分片,作为待处理数据的位分解数据的位分解数据分片。
当已知待处理数据x为正数时,可以采用上述方式一进行位分解操作,如果待处理数据x可能为负数,则可以采用下述方式二和方式三进行位分解操作,目的是得到待处理数据x的绝对值的位分解结果。
方式二:
基于持有的数据分片,通过与其他计算节点之间的协同,对待处理数据进行位分解操作,得到位分解比特串的位分解比特串分片;
按照位分解比特串分片的符号位,通过与其他计算节点之间的协同,采用不经意选择算法,获得位分解比特串分片的补码表示或原码表示,结果作为待处理数据的位分解数据的位分解数据分片,符号位表示负数时,得到补码表示,符号位表示正数时,得到原码表示,即符号位如果为1,表示负数,如果为0,表示正数。
本申请实施例中,各计算节点之间通过协同执行不经意选择算法,可以实现按照预设规则从两个选项中选择其中一个,作为选择结果,并且,各计算节点仅能得到选择结果的分片,而无法获知选择结果本身,从而实现隐私计算。
上述方式二中,如果符号位表示正数,则应将原码表示作为选择结果,即位分解比特串不变,但是各计算节点持有的位分解比特串分片将发生改变,也就是说,无论不经意选择结果是补码表示,还是原码表示,在执行不经意选择算法之后,各计算节点持有的位分解比特串分片都将发生改变,使得各计算节点均无法获知不经意选择结果是补码表示还是原码表示。
本申请实施例中,各计算节点之间通过协同执行不经意选择算法的具体流程,可以采用各种可行的算法流程,在此不再进行详细描述。
方式三:
基于持有的数据分片,通过与其他计算节点之间的协同,对待处理数据进行位分解操作,得到位分解比特串的位分解比特串分片;
将位分解比特串分片的符号位,分别与位分解比特串分片的其他每一位做异或计算,并使用得到的计算结果替换该位,得到待处理数据的位分解数据的位分解数据分片。
采用上述方式三,不需要按照符号位执行不经意选择算法,同样可以待处理数据x的绝对值的位分解结果,相比执行不经意选择算法,减少了计算量,提高了计算效率。
步骤22、基于持有的位分解数据分片,通过与其他计算节点之间的协同,获取位分解数据的MSB(Most Significant Bit,最高有效位)比特串的MSB比特串分片。
本申请实施例中,针对一个二进制表示的正数,MSB为从高位开始第一个为比特为1的位置,MSB比特串为该位置为1其他位置均为0的比特串,例如,对于比特串00010101,MSB比特串为00010000。
本步骤中,具体可以采用如下方式获取MSB比特串的MSB比特串分片:
基于持有的位分解数据分片,通过与其他计算节点之间的协同,从位分解数据的除符号位外的最高位开始,向低位执行前缀或运算,得到位分解数据的前缀或比特串的分片,为后续描述方便,将该分片称作前缀或比特串分片;
将前缀或比特串分片的每一位与低一位执行异或运算,得到位分解数据的MSB比特串的MSB比特串分片。
例如,对于比特串00010101,执行前缀或运算后变成00011111,然后每一位与低一位执行异或运算,得到00010000,即MSB比特串。
提取出的MSB比特串表示的数值是x以下最接近的2的整数幂,或者可以认为是对log2(x)取整,将这个值记为2^m,必然存在此关系:2^m<= |x|<2^(m+1),其中,最低位从0开始,m为MSB,对于上述示例中的比特串00010101,m的值为4。
步骤23、将MSB比特串分片沿着待处理数据的精度对折,得到对折后比特串的对折后比特串分片。
本步骤中,将MSB比特串分片沿精度对折,也就是交换2^t表示的位置的比特和2^(-t-1)表示的位置的比特,其中,精度是d,经度线是2的0次方,t从0至d-1,没有对称的,都记为0,相当于与0交换,这样操作后MSB比特串表示的数值就变成了2^(-m-1)。
通过本步骤,可以强制清空2d位到k-1位的数值,因为如果MSB在这些位置,表示|x|>2^d,这样计算出来的结果将小于2^-d,超出定点数表达范围,算法会返回0作为异常值处理。
步骤24、基于持有的对折后比特串分片,通过与其他计算节点之间的协同,计算对折后比特串表示的数值与待处理数据的乘积,得到乘积的乘积数据分片。
通过本步骤,如果x一定为正数,得到的是对折后比特串表示的数值s与待处理数据x的乘积sx,如果x可能为负数,得到的是对折后比特串表示的数值s与待处理数据x的绝对值的乘积s|x|,并且,得到的乘积的取值范围为[0.5,1)。
步骤25、采用牛顿迭代法,计算乘积数据分片的倒数的近似值,得到近似值的近似值分片。
本步骤中,可以采用如下公式计算乘积数据分片的倒数的近似值,得到近似值的近似值分片:
令p=1-s|x|,计算z=(1+p)(1+p^2)(1+p^4)(1+p^8);
其中,z表示乘积数据分片的倒数的近似值,s为对折后比特串表示的数值,x为待处理数据。
采用上述公式,本质上相当于执行了5次初值为1的牛顿迭代。
上述公式中,计算p=1-s|x|,不需要各计算节点之间的协同完成;
计算z=(1+p)(1+p^2)(1+p^4)(1+p^8),需要各计算节点之间的协同完成。
步骤26、基于持有的近似值分片,通过与其他计算节点之间的协同,计算对折后比特串表示的数值与近似值的乘积,得到待处理数据的倒数的数据分片。
本步骤中,计算sz。因为z是1/s|x|的近似,sz才是1/|x|的近似,如果x一定是正数,则计算sz后,即得到待处理数据的倒数的数据分片,完成非线性函数为倒数的非线性计算。
如果x可能为负数,则本步骤可以具体执行如下:
基于持有的近似值分片,通过与其他计算节点之间的协同,计算对折后比特串表示的数值与近似值的乘积,得到待处理数据的绝对值的倒数的数据分片,即得到1/|x|的数据分片;
基于持有的待处理数据的绝对值的倒数的数据分片,按照位分解数据分片的符号位,通过与其他计算节点之间的协同,采用不经意选择算法,获得待处理数据的倒数的数据分片,符号位表示负数时,得到待处理数据的绝对值的负数的倒数的数据分片,符号位表示正数时,得到待处理数据的绝对值的倒数的数据分片。
即使用之前提取的符号位再做一次不经意选择,若符号位为1,取-sz,否则保持sz不变,作为结果输出,得到1/x的近似,计算完成,不经意选择算法的执行,仍然是各计算节点之间协同完成的隐私计算。
针对非线性函数为对数(ln(x))的非线性计算,本申请实施例提供一种隐私计算中的数据处理方法,应用于参与隐私计算的多个计算节点中的每个计算节点,多个计算节点分别持有待处理数据的多个数据分片之一,如图3所示,该方法,包括:
步骤31-步骤34、具体的,步骤31-步骤34可以与上述图2所示的步骤21-步骤24相同。
另外,针对步骤31,由于是执行对数计算,待处理数据x一定是正数,所以,在步骤31中采用上述步骤21中的方式一进行位分解操作即可。
步骤35、基于持有的乘积数据分片,通过与其他计算节点之间的协同,按照如果乘积小于0.75则对乘积翻倍,否则保持不变的变换规则,对乘积进行变换,得到变换后乘积的数据分片,作为变换后乘积数据分片。
本步骤中,在通过上述步骤31-34,得到位于区间[0.5,1)内的乘积sx后,还可以进一步的将取值范围调整到[0.75,1.5],从而进一步提高后续近似计算的精度,具体可以采用如下方式执行本步骤:
基于持有的MSB比特串分片,通过与其他计算节点之间的协同,将MSB比特串右移一位,得到右移比特串的比特串分片,作为右移比特串分片;
基于持有的位分解数据分片和右移比特串分片,通过与其他计算节点之间的协同,针对位分解数据和右移比特串执行按位与运算,得到与运算比特串的比特串分片,作为与运算比特串分片;
基于持有的与运算比特串分片,通过与其他计算节点之间的协同,针对与运算比特串的全部位执行异或运算,得到异或比特的比特分片,作为异或比特分片;
基于持有的乘积数据分片和异或比特分片,通过与其他计算节点之间的协同,按照异或比特执行不经意选择算法,如果异或比特为0,不经意选择结果为对乘积翻倍得到的结果分片,如果异或比特为1,不经意选择结果为保持乘积不变的结果分片,不经意选择结果作为变换后乘积的数据分片。
也就是说,执行本步骤,需要得知sx是否在[0.5,0.75]内,这个信息可以通过取MSB的前一位来获取,具体方法是将MSB比特串右移一位,然后和x的位分解数据按位执行与运算,若MSB前一位是1,那么所得到的与运算比特串会仅包含一个1(位置在MSB的前一位),否则是全0串。将这个与运算比特串每位全部异或起来,结果即是想要得到的判断信息异或比特,异或比特可以用g表示;
按照g执行不经意选择算法,若为0,表示乘积sx小于0.75,将sx乘以2,若为1,则保持不变,这样即可以将乘积sx的数值范围变换到[0.75,1.5],即得到的变换后乘积的数值范围为[0.75,1.5]。
步骤36、基于持有的变换后乘积数据分片,通过与其他计算节点之间的协同,按照预先拟合的在[0.75,1.5]范围内的用于计算log以2为底变换后乘积的对数的多项式函数,计算log以2为底变换后乘积的对数,得到log以2为底变换后乘积的对数的数据分片,作为第一对数的第一对数数据分片。
本步骤中,具体可以使用雷米兹算法拟合出多项式函数,用于计算log以2为底变换后乘积的对数。
步骤37、基于持有的对折后比特串分片,通过与其他计算节点之间的协同,计算log以2为底对折后比特串表示的数值的对数,得到log以2为底对折后比特串表示的数值的对数的数据分片,作为第二对数的第二对数数据分片。
本步骤中,计算log2(s),由于已知s=2^(-m-1),故log2(s)=-m-1。
本步骤中,具体可以采用如下方式计算:
基于持有的对折后比特串分片,通过与其他计算节点之间的协同,按照对折后比特串分片的每一位,执行不经意选择算法,如果2^t位的比特位1,不经意选择结果为t,否则,不经意选择结果为0,得到针对该位的不经意选择结果的数据分片,作为针对该位的不经意选择结果数据分片,t的取值为从0至2倍的精度;
基于持有的针对各位的不经意选择结果数据分片,通过与其他计算节点之间的协同,计算针对各位的不经意选择结果的和值,得到log以2为底对折后比特串表示的数值的对数的数据分片。
上述方式成立的原因是对折后比特串s中只有一个1,若有多个1算法不成立,例如log2(8+4)不等于log2(8)+log2(4),但log2(0+8)=log2(8)。
步骤38、基于持有的第一对数数据分片和第二对数数据分片,通过与其他计算节点之间的协同,计算ln2乘以第一对数的乘积,减去ln2乘以第二对数的乘积的差值,得到差值的数据分片,差值作为log以常数e为底的待处理数据的对数。
本步骤中,计算ln2log2(sx)-ln2log2(s)。
根据换底公式和对数性质,ln2(log2(sx)-log2(s))=ln(sx)-ln(s)=ln(x),从而完成非线性函数为对数的非线性计算。
针对非线性函数为逆平方根(sqrt(1/x))的非线性计算,本申请实施例提供一种隐私计算中的数据处理方法,应用于参与隐私计算的多个计算节点中的每个计算节点,多个计算节点分别持有待处理数据的多个数据分片之一,如图4所示,该方法,包括:
步骤41-步骤44、具体的,步骤41-步骤44可以与上述图2所示的步骤21-步骤24相同。
另外,针对步骤41,由于是执行逆平方根计算,待处理数据x一定是正数,所以,在步骤41中采用上述步骤21中的方式一进行位分解操作即可。
步骤45、基于持有的乘积数据分片,通过与其他计算节点之间的协同,采用预设的近似算法,计算乘积的逆平方根,得到乘积的逆平方根的数据分片,作为逆平方根数据分片。
本步骤中,具体可以使用牛顿迭代算法计算sqrt(1/sx),也可以使用雷米兹算法拟合多项式函数计算sqrt(1/sx),两者各有优劣,使用牛顿迭代算法精度较高但计算量较大,使用雷米兹算法精度低于牛顿迭代算法,但计算量较小,计算速度快,效率高,在实际应用中,可以基于实际应用的需要从中选择合适的算法。
步骤46、针对MSB比特串分片的每一位2^t,如果该位是偶数,将2^t位的比特移动至2^(t/2)位,如果该位是奇数,将2^t位的比特移动至2^(t/2-1)位,得到MSB比特串的放缩后比特串的放缩后比特串分片。
本步骤中,放缩后比特串s',相当于将MSB比特串表示的数值放缩一半得到的,即s'=2^(p/2)。
步骤47、基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,基于乘积的逆平方根与放缩后比特串表示的数值的乘积的计算结果,获得待处理数据的逆平方根的数据分片。
本步骤,具体可以采用如下方式计算:
基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,计算乘积sx的逆平方根与放缩后比特串s'表示的数值的乘积,得到第一计算结果的第一计算结果数据分片;
基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,计算乘积sx的逆平方根与放缩后比特串s'表示的数值以及2的逆平方根的乘积,得到第二计算结果的第二计算结果数据分片;
基于持有的对折后比特串分片,通过与其他计算节点之间的协同,将对折后比特串的全部奇数位进行异或计算,得到异或结果的比特位分片,异或结果可以使用g表示,该异或结果能够表示m的奇偶性,m满足s=2^(-m-1);
基于持有的计算结果数据分片,通过与其他计算节点之间的协同,按照比特位分片,执行不经意选择算法,如果异或结果表示m为偶数,不经意选择结果为第一计算结果的第一计算结果数据分片,如果异或结果表示m为奇数,不经意选择结果为第二计算结果的第二计算结果数据分片,不经意选择结果作为待处理数据的逆平方根的数据分片,m为位分解数据的MSB对应的位数,从而实现非线性函数为逆平方根的非线性计算。
本申请实施例中,在上述步骤46中计算放缩后比特串s'的操作,相当于针对MSB比特串s,沿精度线两侧向精度线靠拢,即将MSB比特串做对折,让2^t表示的位置的比特移动到2^(t/2)表示的位置的比特,若t是奇数,则移动到2^(t/2-1),例如,d+5位会移动到d+2位,而d-5位会移动到d-3位。
执行该对折操作,实际上让奇数幂多除了一个2,所以,在步骤47中,可以使用异或结果g将其恢复。
即按照比特位分片,执行不经意选择算法,如果异或结果(为0)表示m为偶数,不经意选择结果为第一计算结果的第一计算结果数据分片,如果异或结果(为1)表示m为奇数,不经意选择结果为第二计算结果的第二计算结果数据分片,其中,第二计算结果相当于第一计算结果补乘系数sqrt(1/2)。
针对非线性函数为指数(e^x)的非线性计算,本申请实施例提供一种隐私计算中的数据处理方法,应用于参与隐私计算的多个计算节点中的每个计算节点,多个计算节点分别持有待处理数据的多个数据分片之一,如图5所示,该方法,包括:
步骤51、基于持有的数据分片,通过与其他计算节点之间的协同,计算待处理数据乘以log以2为底e的对数的乘积,以及该乘积加上待处理数据的精度的和值,作为待处理数据的变换后数据,得到变换后数据的变换后数据分片。
本步骤中,将待处理数据x乘以log2(e),得到乘积x',这样即满足关系式2^(x')=e^x,再将该乘积x'加上精度d,即可以将区间[-d,0)内的负数调整为非负数。
步骤52、基于持有的变换后数据分片,通过与其他计算节点之间的协同,对变换后数据进行位分解操作,得到变换后数据的位分解数据的位分解数据分片。
本步骤中,对变换后数据x'+d进行位分解操作,具体可以采用与上述步骤21中方式一类似的流程执行。
步骤53、基于持有的位分解数据分片,通过与其他计算节点之间的协同,计算2的b次幂,得到2^b的数据分片,作为整数部分次幂数据分片,b为变换后数据的整数部分。
本步骤中,具体可以采用如下流程计算2^b:
基于持有的位分解数据分片,通过与其他计算节点之间的协同,从精度d位开始向高位截取log2(k-d)向上取整位,得到变换后数据的整数部分的数据分片,作为整数部分数据分片;
基于持有的整数部分数据分片,通过与其他计算节点之间的协同,针对整数部分数据分片的每一位,按位执行不经意选择算法,如果2^t位的比特为1,不经意选择结果为2^(2^t),否则,不经意选择结果为1,得到针对该位的不经意选择结果的数据分片,作为针对该位的不经意选择结果数据分片,t的取值为从0至log2(k-d)向上取整减1;
基于持有的针对各位的不经意选择结果数据分片,通过与其他计算节点之间的协同,计算针对各位的不经意选择结果的乘积,得到2^b的数据分片,作为整数部分次幂数据分片。
本步骤中,假设k=64,针对位分解数据分片,从精度d位开始向高位截取log2(k-d)向上取整位,相当于截取d位到d+5位,攻击得到六位,假设得到的整数部分为001011,这个比特串代表x'+d的整数部分为8+2+1=11,按照本步骤中的上述计算过程,相当于计算:
1×1× 2^(2^3)×1×2^(2^1)×2^(2^0)=2^8×2^2×2^1 = 2^(8+2+1)=2^11。
步骤54、基于持有的位分解数据分片,通过与其他计算节点之间的协同,计算2的c次幂,得到2^c的数据分片,作为小数部分次幂数据分片,c为变换后数据的小数部分。
本步骤中,具体可以采用如下流程计算2^c:
基于持有的位分解数据分片,通过与其他计算节点之间的协同,获得变换后数据的小数部分c的数据分片,作为小数部分数据分片;
基于持有的小数部分数据分片,通过与其他计算节点之间的协同,按照预先拟合的在[0,1]范围内的用于计算2的c次幂的多项式函数,计算2的c次幂,得到2^c的数据分片,作为小数部分次幂数据分片。
本步骤中,具体可以使用雷米兹算法在[0,1]范围内,拟合出用于计算2的c次幂的多项式函数,为了能够最小化相对误差,可以使用4次多项式进行逼近。
步骤55、基于持有的整数部分次幂数据分片和小数部分次幂数据分片,通过与其他计算节点之间的协同,计算2^b与2^c的乘积,得到2的变换后数据次幂的数据分片,作为变换后数据次幂数据分片。
本步骤中,计算2^b与2^c的乘积,相当于将这两个部分拼接,由于x'+d=b+c,所以,2^b×2^c=2^(b+c)=2^(x'+d),即2的变换后数据x'+d次幂。
步骤56、基于持有的变换后数据次幂数据分片,通过与其他计算节点之间的协同,将变换后数据次幂右移精度位,得到的计算结果作为常数e的待处理数据次幂,得到常数e的待处理数据次幂的数据分片。
将2^(x'+d)右移d位,得到的计算结果为2^x'的近似,也就是e^x的近似值,即完成非线性函数为指数的非线性计算。
进一步的,由于可能存在x'小于-d的情况,其对应输出已经超出了定点数表示的范围,所以,还可以包括如下步骤57,对计算结果进行修正。
步骤57、按照持有的位分解数据分片的符号位,通过与其他计算节点之间的协同,采用不经意选择算法,获得e的待处理数据次幂的修正后计算结果的数据分片,符号位表示负数时,得到的修正后计算结果的数据分片为0的数据分片,符号位表示正数时,得到的修正后计算结果的数据分片为计算结果的数据分片。
本步骤中,按照提取的x'+d的符号位,执行不经意选择算法,如果为1,符号位表示负数,则得到的修正后计算结果为0,如果符号位表示整数,计算结果保持不变。
由于是隐私计算,在执行不经意选择算法后,各计算节点得到的均是修正后计算结果的分片,所以,无法获知相比步骤56中得到的计算结果,本步骤57中得到的修正后计算结果是否已经发生改变,基于修正后计算结果仍然保持步骤56中的计算结果不变,但各计算节点得到的修正后计算结果的分片,相比步骤56中的计算结果的分片,也会发生改变,从而实现隐私计算的目的。
基于同一发明构思,根据本申请上述实施例提供的隐私计算中的数据处理方法,相应地,本申请另一实施例还提供了一种隐私计算中的数据处理装置,应用于参与隐私计算的多个计算节点中的每个计算节点,所述多个计算节点分别持有待处理数据的多个数据分片之一,其结构示意图如图6所示,具体包括:
数据变换模块61,用于基于持有的数据分片,通过与其他计算节点之间的协同,按照预设变换方式,对所述待处理数据进行变换,得到所述待处理数据的变换后数据的变换后数据分片,所述变换后数据位于执行预设近似计算需要满足的数值范围内,所述预设近似计算与预设非线性函数相对应;
近似计算模块62,用于基于持有的变换后数据分片,通过与其他计算节点之间的协同,针对所述变换后数据执行所述预设近似计算,得到近似计算结果的近似计算结果分片;
结果还原模块63,用于基于持有的近似计算结果分片,通过与其他计算节点之间的协同,按照与所述预设变换方式对应的预设还原方式,对所述近似计算结果进行还原计算,得到还原结果的还原结果分片,作为采用所述预设非线性函数对所述待处理数据进行非线性计算的非线性计算结果的数据分片。
进一步的,数据变换模块61,具体用于基于持有的数据分片,通过与其他计算节点之间的协同,按照基于位分解操作的预设变换方式,对所述待处理数据进行变换,得到所述待处理数据的变换后数据的变换后数据分片。
进一步的,数据变换模块61,具体用于基于持有的数据分片,通过与其他计算节点之间的协同,对所述待处理数据进行位分解操作,得到所述待处理数据的位分解数据的位分解数据分片;
基于持有的位分解数据分片,通过与其他计算节点之间的协同,获取所述位分解数据的最高有效位MSB比特串的MSB比特串分片;
将所述MSB比特串分片沿着所述待处理数据的精度对折,得到对折后比特串的对折后比特串分片;
基于持有的对折后比特串分片,通过与其他计算节点之间的协同,计算所述对折后比特串表示的数值与所述待处理数据的乘积,得到所述乘积的乘积数据分片。
进一步的,近似计算模块62,具体用于采用牛顿迭代法,计算所述乘积数据分片的倒数的近似值,得到所述近似值的近似值分片;
结果还原模块63,具体用于基于持有的近似值分片,通过与其他计算节点之间的协同,计算所述对折后比特串表示的数值与所述近似值的乘积,得到所述待处理数据的倒数的数据分片。
进一步的,近似计算模块62,具体用于采用如下公式计算所述乘积数据分片的倒数的近似值,得到所述近似值的近似值分片:
令p=1-s|x|,计算z=(1+p)(1+p^2)(1+p^4)(1+p^8);
其中,z表示所述乘积数据分片的倒数的近似值,s为所述对折后比特串表示的数值,x为所述待处理数据。
进一步的,结果还原模块63,具体用于基于持有的近似值分片,通过与其他计算节点之间的协同,计算所述对折后比特串表示的数值与所述近似值的乘积,得到所述待处理数据的绝对值的倒数的数据分片;
基于持有的所述待处理数据的绝对值的倒数的数据分片,按照所述位分解数据分片的符号位,通过与其他计算节点之间的协同,采用不经意选择算法,获得所述待处理数据的倒数的数据分片,所述符号位表示负数时,得到所述待处理数据的绝对值的负数的倒数的数据分片,所述符号位表示正数时,得到所述待处理数据的绝对值的倒数的数据分片。
进一步的,数据变换模块61,还用于基于持有的乘积数据分片,通过与其他计算节点之间的协同,按照如果所述乘积小于0.75则对所述乘积翻倍,否则保持不变的变换规则,对所述乘积进行变换,得到变换后乘积的数据分片,作为变换后乘积数据分片;
近似计算模块62,具体用于基于持有的变换后乘积数据分片,通过与其他计算节点之间的协同,按照预先拟合的在[0.75,1.5]范围内的用于计算log以2为底所述变换后乘积的对数的多项式函数,计算log以2为底所述变换后乘积的对数,得到log以2为底所述变换后乘积的对数的数据分片,作为第一对数的第一对数数据分片;
结果还原模块63,具体用于基于持有的对折后比特串分片,通过与其他计算节点之间的协同,计算log以2为底所述对折后比特串表示的数值的对数,得到log以2为底所述对折后比特串表示的数值的对数的数据分片,作为第二对数的第二对数数据分片;
基于持有的第一对数数据分片和第二对数数据分片,通过与其他计算节点之间的协同,计算ln2乘以所述第一对数的乘积,减去ln2乘以所述第二对数的乘积的差值,得到所述差值的数据分片,所述差值作为log以常数e为底的所述待处理数据的对数。
进一步的,数据变换模块61,具体用于基于持有的MSB比特串分片,通过与其他计算节点之间的协同,将所述MSB比特串右移一位,得到右移比特串的比特串分片,作为右移比特串分片;
基于持有的位分解数据分片和右移比特串分片,通过与其他计算节点之间的协同,针对所述位分解数据和所述右移比特串执行按位与运算,得到与运算比特串的比特串分片,作为与运算比特串分片;
基于持有的与运算比特串分片,通过与其他计算节点之间的协同,针对所述与运算比特串的全部位执行异或运算,得到异或比特的比特分片,作为异或比特分片;
基于持有的乘积数据分片和异或比特分片,通过与其他计算节点之间的协同,按照所述异或比特执行不经意选择算法,如果所述异或比特为0,不经意选择结果为对所述乘积翻倍得到的结果分片,如果所述异或比特为1,不经意选择结果为保持所述乘积不变的结果分片,所述不经意选择结果作为变换后乘积的数据分片。
进一步的,结果还原模块63,具体用于基于持有的对折后比特串分片,通过与其他计算节点之间的协同,按照所述对折后比特串分片的每一位,执行不经意选择算法,如果2^t位的比特位1,不经意选择结果为t,否则,不经意选择结果为0,得到针对该位的不经意选择结果的数据分片,作为针对该位的不经意选择结果数据分片,t的取值为从0至2倍的所述精度;
基于持有的针对各位的不经意选择结果数据分片,通过与其他计算节点之间的协同,计算针对各位的不经意选择结果的和值,得到log以2为底所述对折后比特串表示的数值的对数的数据分片。
进一步的,近似计算模块62,具体用于基于持有的乘积数据分片,通过与其他计算节点之间的协同,采用预设的近似算法,计算所述乘积的逆平方根,得到所述乘积的逆平方根的数据分片,作为逆平方根数据分片;
结果还原模块63,具体用于基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,基于所述乘积的逆平方根与放缩后比特串表示的数值的乘积的计算结果,获得所述待处理数据的逆平方根的数据分片,所述放缩后比特串分片为所述放缩后比特串的比特串分片,所述放缩后比特串为将所述MSB比特串表示的数值放缩一半得到的。
进一步的,结果还原模块63,还用于针对所述MSB比特串分片的每一位2^t,如果该位是偶数,将2^t位的比特移动至2^(t/2)位,如果该位是奇数,将2^t位的比特移动至2^(t/2-1)位,得到所述MSB比特串的放缩后比特串的放缩后比特串分片。
进一步的,结果还原模块63,具体用于基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,计算所述乘积的逆平方根与放缩后比特串表示的数值的乘积,得到第一计算结果的第一计算结果数据分片;
基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,计算所述乘积的逆平方根与放缩后比特串表示的数值以及2的逆平方根的乘积,得到第二计算结果的第二计算结果数据分片;
基于持有的对折后比特串分片,通过与其他计算节点之间的协同,将所述对折后比特串的全部奇数位进行异或计算,得到异或结果的比特位分片;
基于持有的计算结果数据分片,通过与其他计算节点之间的协同,按照所述比特位分片,执行不经意选择算法,如果所述异或结果表示m为偶数,不经意选择结果为所述第一计算结果的第一计算结果数据分片,如果所述异或结果表示m为奇数,不经意选择结果为所述第二计算结果的第二计算结果数据分片,所述不经意选择结果作为所述待处理数据的逆平方根的数据分片,所述m为所述位分解数据的MSB对应的位数。
进一步的,数据变换模块61,具体用于基于持有的数据分片,通过与其他计算节点之间的协同,对所述待处理数据进行位分解操作,得到位分解比特串的位分解比特串分片;按照所述位分解比特串分片的符号位,通过与其他计算节点之间的协同,采用不经意选择算法,获得所述位分解比特串分片的补码表示或原码表示,结果作为所述待处理数据的位分解数据的位分解数据分片,所述符号位表示负数时,得到所述补码表示,所述符号位表示正数时,得到所述原码表示;或者
基于持有的数据分片,通过与其他计算节点之间的协同,对所述待处理数据进行位分解操作,得到位分解比特串的位分解比特串分片;将所述位分解比特串分片的符号位,分别与所述位分解比特串分片的其他每一位做异或计算,并使用得到的计算结果替换该位,得到所述待处理数据的位分解数据的位分解数据分片;或者
基于持有的数据分片,通过与其他计算节点之间的协同,对所述待处理数据进行位分解操作,得到位分解比特串的位分解比特串分片,作为所述待处理数据的位分解数据的位分解数据分片。
进一步的,数据变换模块61,具体用于基于持有的位分解数据分片,通过与其他计算节点之间的协同,从所述位分解数据的除符号位外的最高位开始,向低位执行前缀或运算,得到所述位分解数据的前缀或比特串的前缀或比特串分片;
将所述前缀或比特串分片的每一位与低一位执行异或运算,得到所述位分解数据的MSB比特串的MSB比特串分片。
进一步的,数据变换模块61,具体用于基于持有的数据分片,通过与其他计算节点之间的协同,计算所述待处理数据乘以log以2为底e的对数的乘积,以及所述乘积加上所述待处理数据的精度的和值,作为所述待处理数据的变换后数据,得到所述变换后数据的变换后数据分片;
基于持有的变换后数据分片,通过与其他计算节点之间的协同,对所述变换后数据进行位分解操作,得到所述变换后数据的位分解数据的位分解数据分片;
基于持有的位分解数据分片,通过与其他计算节点之间的协同,计算2的b次幂,得到2^b的数据分片,作为整数部分次幂数据分片,所述b为所述变换后数据的整数部分;
近似计算模块62,具体用于基于持有的位分解数据分片,通过与其他计算节点之间的协同,计算2的c次幂,得到2^c的数据分片,作为小数部分次幂数据分片,所述c为所述变换后数据的小数部分;
结果还原模块63,具体用于基于持有的整数部分次幂数据分片和小数部分次幂数据分片,通过与其他计算节点之间的协同,计算2^b与2^c的乘积,得到2的所述变换后数据次幂的数据分片,作为变换后数据次幂数据分片;
基于持有的变换后数据次幂数据分片,通过与其他计算节点之间的协同,将所述变换后数据次幂右移所述精度位,得到的计算结果作为常数e的所述待处理数据次幂,得到常数e的所述待处理数据次幂的数据分片。
进一步的,结果还原模块63,还用于按照持有的位分解数据分片的符号位,通过与其他计算节点之间的协同,采用不经意选择算法,获得e的所述待处理数据次幂的修正后计算结果的数据分片,所述符号位表示负数时,得到的所述修正后计算结果的数据分片为0的数据分片,所述符号位表示正数时,得到的所述修正后计算结果的数据分片为所述计算结果的数据分片。
数据变换模块61,具体用于基于持有的位分解数据分片,通过与其他计算节点之间的协同,从所述精度d位开始向高位截取log2(k-d)向上取整位,得到所述变换后数据的整数部分的数据分片,作为整数部分数据分片;
基于持有的整数部分数据分片,通过与其他计算节点之间的协同,针对所述整数部分数据分片的每一位,按位执行不经意选择算法,如果2^t位的比特为1,不经意选择结果为2^(2^t),否则,不经意选择结果为1,得到针对该位的不经意选择结果的数据分片,作为针对该位的不经意选择结果数据分片,t的取值为从0至log2(k-d)向上取整减1;
基于持有的针对各位的不经意选择结果数据分片,通过与其他计算节点之间的协同,计算针对各位的不经意选择结果的乘积,得到2^b的数据分片,作为整数部分次幂数据分片。
进一步的,近似计算模块62,具体用于基于持有的位分解数据分片,通过与其他计算节点之间的协同,获得所述变换后数据的小数部分的数据分片,作为小数部分数据分片;
基于持有的小数部分数据分片,通过与其他计算节点之间的协同,按照预先拟合的在[0,1]范围内的用于计算2的c次幂的多项式函数,计算2的c次幂,得到2^c的数据分片,作为小数部分次幂数据分片。
上述各模块的功能可对应于图1-图5所示流程中的相应处理步骤,在此不再赘述。
本申请的实施例所提供的隐私计算中的数据处理装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要隐私计算中的数据处理装置具有上述功能,都应该在本申请的保护范围之内。
本申请实施例还提供一种电子设备,如图7所示,包括处理器71和机器可读存储介质72,所述机器可读存储介质72存储有能够被所述处理器71执行的机器可执行指令,所述处理器71被所述机器可执行指令促使:实现上述任一隐私计算中的数据处理方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一隐私计算中的数据处理方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一隐私计算中的数据处理方法。
上述电子设备中的机器可读存储介质可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质,计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (20)

1.一种隐私计算中的数据处理方法,其特征在于,应用于参与隐私计算的多个计算节点中的每个计算节点,所述多个计算节点分别持有待处理数据的多个数据分片之一,所述方法,包括:
基于持有的数据分片,通过与其他计算节点之间的协同,按照预设变换方式,对所述待处理数据进行变换,得到所述待处理数据的变换后数据的变换后数据分片,所述变换后数据位于执行预设近似计算需要满足的数值范围内,所述预设近似计算与预设非线性函数相对应;
基于持有的变换后数据分片,通过与其他计算节点之间的协同,针对所述变换后数据执行所述预设近似计算,得到近似计算结果的近似计算结果分片;
基于持有的近似计算结果分片,通过与其他计算节点之间的协同,按照与所述预设变换方式对应的预设还原方式,对所述近似计算结果进行还原计算,得到还原结果的还原结果分片,作为采用所述预设非线性函数对所述待处理数据进行非线性计算的非线性计算结果的数据分片;
所述基于持有的数据分片,通过与其他计算节点之间的协同,按照预设变换方式,对所述待处理数据进行变换,得到所述待处理数据的变换后数据的变换后数据分片,包括:
基于持有的数据分片,通过与其他计算节点之间的协同,对所述待处理数据进行位分解操作,得到所述待处理数据的位分解数据的位分解数据分片;
基于持有的位分解数据分片,通过与其他计算节点之间的协同,获取所述位分解数据的最高有效位MSB比特串的MSB比特串分片;
将所述MSB比特串分片沿着所述待处理数据的精度对折,得到对折后比特串的对折后比特串分片;
基于持有的对折后比特串分片,通过与其他计算节点之间的协同,计算所述对折后比特串表示的数值与所述待处理数据的乘积,得到所述乘积的乘积数据分片,作为所述待处理数据的变换后数据的变换后数据分片。
2.如权利要求1所述的方法,其特征在于,所述基于持有的变换后数据分片,通过与其他计算节点之间的协同,针对所述变换后数据执行所述预设近似计算,包括:
采用牛顿迭代法,计算所述乘积数据分片的倒数的近似值,得到所述近似值的近似值分片;
所述基于持有的近似计算结果分片,通过与其他计算节点之间的协同,按照与所述预设变换方式对应的预设还原方式,对所述近似计算结果进行还原计算,包括:
基于持有的近似值分片,通过与其他计算节点之间的协同,计算所述对折后比特串表示的数值与所述近似值的乘积,得到所述待处理数据的倒数的数据分片。
3.如权利要求2所述的方法,其特征在于,所述采用牛顿迭代法,计算所述乘积数据分片的倒数的近似值,包括:
采用如下公式计算所述乘积数据分片的倒数的近似值,得到所述近似值的近似值分片:
令p=1-s|x|,计算z=(1+p)(1+p^2)(1+p^4)(1+p^8);
其中,z表示所述乘积数据分片的倒数的近似值,s为所述对折后比特串表示的数值,x为所述待处理数据。
4.如权利要求2所述的方法,其特征在于,所述基于持有的近似值分片,通过与其他计算节点之间的协同,计算所述对折后比特串表示的数值与所述近似值的乘积,得到所述待处理数据的倒数的数据分片,包括:
基于持有的近似值分片,通过与其他计算节点之间的协同,计算所述对折后比特串表示的数值与所述近似值的乘积,得到所述待处理数据的绝对值的倒数的数据分片;
基于持有的所述待处理数据的绝对值的倒数的数据分片,按照所述位分解数据分片的符号位,通过与其他计算节点之间的协同,采用不经意选择算法,获得所述待处理数据的倒数的数据分片,所述符号位表示负数时,得到所述待处理数据的绝对值的负数的倒数的数据分片,所述符号位表示正数时,得到所述待处理数据的绝对值的倒数的数据分片。
5.如权利要求1所述的方法,其特征在于,还包括:
基于持有的乘积数据分片,通过与其他计算节点之间的协同,按照如果所述乘积小于0.75则对所述乘积翻倍,否则保持不变的变换规则,对所述乘积进行变换,得到变换后乘积的数据分片,作为变换后乘积数据分片;
所述基于持有的变换后数据分片,通过与其他计算节点之间的协同,针对所述变换后数据执行所述预设近似计算,包括:
基于持有的变换后乘积数据分片,通过与其他计算节点之间的协同,按照预先拟合的在[0.75,1.5]范围内的用于计算log以2为底所述变换后乘积的对数的多项式函数,计算log以2为底所述变换后乘积的对数,得到log以2为底所述变换后乘积的对数的数据分片,作为第一对数的第一对数数据分片;
所述基于持有的近似计算结果分片,通过与其他计算节点之间的协同,按照与所述预设变换方式对应的预设还原方式,对所述近似计算结果进行还原计算,包括:
基于持有的对折后比特串分片,通过与其他计算节点之间的协同,计算log以2为底所述对折后比特串表示的数值的对数,得到log以2为底所述对折后比特串表示的数值的对数的数据分片,作为第二对数的第二对数数据分片;
基于持有的第一对数数据分片和第二对数数据分片,通过与其他计算节点之间的协同,计算ln2乘以所述第一对数的乘积,减去ln2乘以所述第二对数的乘积的差值,得到所述差值的数据分片,所述差值作为log以常数e为底的所述待处理数据的对数。
6.如权利要求5所述的方法,其特征在于,所述基于持有的乘积数据分片,通过与其他计算节点之间的协同,按照如果所述乘积小于0.75则对所述乘积翻倍,否则保持不变的变换规则,对所述乘积进行变换,包括:
基于持有的MSB比特串分片,通过与其他计算节点之间的协同,将所述MSB比特串右移一位,得到右移比特串的比特串分片,作为右移比特串分片;
基于持有的位分解数据分片和右移比特串分片,通过与其他计算节点之间的协同,针对所述位分解数据和所述右移比特串执行按位与运算,得到与运算比特串的比特串分片,作为与运算比特串分片;
基于持有的与运算比特串分片,通过与其他计算节点之间的协同,针对所述与运算比特串的全部位执行异或运算,得到异或比特的比特分片,作为异或比特分片;
基于持有的乘积数据分片和异或比特分片,通过与其他计算节点之间的协同,按照所述异或比特执行不经意选择算法,如果所述异或比特为0,不经意选择结果为对所述乘积翻倍得到的结果分片,如果所述异或比特为1,不经意选择结果为保持所述乘积不变的结果分片,所述不经意选择结果作为变换后乘积的数据分片。
7.权利要求5所述的方法,其特征在于,所述基于持有的对折后比特串分片,通过与其他计算节点之间的协同,计算log以2为底所述对折后比特串表示的数值的对数,得到log以2为底所述对折后比特串表示的数值的对数的数据分片,包括:
基于持有的对折后比特串分片,通过与其他计算节点之间的协同,按照所述对折后比特串分片的每一位,执行不经意选择算法,如果2^t位的比特位1,不经意选择结果为t,否则,不经意选择结果为0,得到针对该位的不经意选择结果的数据分片,作为针对该位的不经意选择结果数据分片,t的取值为从0至2倍的所述精度;
基于持有的针对各位的不经意选择结果数据分片,通过与其他计算节点之间的协同,计算针对各位的不经意选择结果的和值,得到log以2为底所述对折后比特串表示的数值的对数的数据分片。
8.如权利要求1所述的方法,其特征在于,所述基于持有的变换后数据分片,通过与其他计算节点之间的协同,针对所述变换后数据执行所述预设近似计算,包括:
基于持有的乘积数据分片,通过与其他计算节点之间的协同,采用预设的近似算法,计算所述乘积的逆平方根,得到所述乘积的逆平方根的数据分片,作为逆平方根数据分片;
所述基于持有的近似计算结果分片,通过与其他计算节点之间的协同,按照与所述预设变换方式对应的预设还原方式,对所述近似计算结果进行还原计算,包括:
基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,基于所述乘积的逆平方根与放缩后比特串表示的数值的乘积的计算结果,获得所述待处理数据的逆平方根的数据分片,所述放缩后比特串分片为所述放缩后比特串的比特串分片,所述放缩后比特串为将所述MSB比特串表示的数值放缩一半得到的。
9.如权利要求8所述的方法,其特征在于,在所述基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,基于所述乘积的逆平方根与放缩后比特串表示的数值的乘积的计算结果,获得所述待处理数据的逆平方根的数据分片之前,还包括:
针对所述MSB比特串分片的每一位2^t,如果该位是偶数,将2^t位的比特移动至2^(t/2)位,如果该位是奇数,将2^t位的比特移动至2^(t/2-1)位,得到所述MSB比特串的放缩后比特串的放缩后比特串分片。
10.如权利要求9所述的方法,其特征在于,所述基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,基于所述乘积的逆平方根与放缩后比特串表示的数值的乘积的计算结果,获得所述待处理数据的逆平方根的数据分片,包括:
基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,计算所述乘积的逆平方根与放缩后比特串表示的数值的乘积,得到第一计算结果的第一计算结果数据分片;
基于持有的逆平方根数据分片和放缩后比特串分片,通过与其他计算节点之间的协同,计算所述乘积的逆平方根与放缩后比特串表示的数值以及2的逆平方根的乘积,得到第二计算结果的第二计算结果数据分片;
基于持有的对折后比特串分片,通过与其他计算节点之间的协同,将所述对折后比特串的全部奇数位进行异或计算,得到异或结果的比特位分片;
基于持有的计算结果数据分片,通过与其他计算节点之间的协同,按照所述比特位分片,执行不经意选择算法,如果所述异或结果表示m为偶数,不经意选择结果为所述第一计算结果的第一计算结果数据分片,如果所述异或结果表示m为奇数,不经意选择结果为所述第二计算结果的第二计算结果数据分片,所述不经意选择结果作为所述待处理数据的逆平方根的数据分片,所述m为所述位分解数据的MSB对应的位数。
11.如权利要求1所述的方法,其特征在于,所述基于持有的数据分片,通过与其他计算节点之间的协同,对所述待处理数据进行位分解操作,得到所述待处理数据的位分解数据的位分解数据分片,包括:
基于持有的数据分片,通过与其他计算节点之间的协同,对所述待处理数据进行位分解操作,得到位分解比特串的位分解比特串分片;按照所述位分解比特串分片的符号位,通过与其他计算节点之间的协同,采用不经意选择算法,获得所述位分解比特串分片的补码表示或原码表示,结果作为所述待处理数据的位分解数据的位分解数据分片,所述符号位表示负数时,得到所述补码表示,所述符号位表示正数时,得到所述原码表示;或者
基于持有的数据分片,通过与其他计算节点之间的协同,对所述待处理数据进行位分解操作,得到位分解比特串的位分解比特串分片;将所述位分解比特串分片的符号位,分别与所述位分解比特串分片的其他每一位做异或计算,并使用得到的计算结果替换该位,得到所述待处理数据的位分解数据的位分解数据分片;或者
基于持有的数据分片,通过与其他计算节点之间的协同,对所述待处理数据进行位分解操作,得到位分解比特串的位分解比特串分片,作为所述待处理数据的位分解数据的位分解数据分片。
12.如权利要求1所述的方法,其特征在于,所述基于持有的位分解数据分片,通过与其他计算节点之间的协同,获取所述位分解数据的最高有效位MSB比特串的MSB比特串分片,包括:
基于持有的位分解数据分片,通过与其他计算节点之间的协同,从所述位分解数据的除符号位外的最高位开始,向低位执行前缀或运算,得到所述位分解数据的前缀或比特串的前缀或比特串分片;
将所述前缀或比特串分片的每一位与低一位执行异或运算,得到所述位分解数据的MSB比特串的MSB比特串分片。
13.一种隐私计算中的数据处理方法,其特征在于,应用于参与隐私计算的多个计算节点中的每个计算节点,所述多个计算节点分别持有待处理数据的多个数据分片之一,所述方法,包括:
基于持有的数据分片,通过与其他计算节点之间的协同,计算所述待处理数据乘以log以2为底e的对数的乘积,以及所述乘积加上所述待处理数据的精度的和值,作为所述待处理数据的变换后数据,得到所述变换后数据的变换后数据分片;
基于持有的变换后数据分片,通过与其他计算节点之间的协同,对所述变换后数据进行位分解操作,得到所述变换后数据的位分解数据的位分解数据分片;
基于持有的位分解数据分片,通过与其他计算节点之间的协同,计算2的b次幂,得到2^b的数据分片,作为整数部分次幂数据分片,所述b为所述变换后数据的整数部分;
基于持有的位分解数据分片,通过与其他计算节点之间的协同,计算2的c次幂,得到2^c的数据分片,作为小数部分次幂数据分片,所述c为所述变换后数据的小数部分;
基于持有的整数部分次幂数据分片和小数部分次幂数据分片,通过与其他计算节点之间的协同,计算2^b与2^c的乘积,得到2的所述变换后数据次幂的数据分片,作为变换后数据次幂数据分片;
基于持有的变换后数据次幂数据分片,通过与其他计算节点之间的协同,将所述变换后数据次幂右移所述精度位,得到的计算结果作为常数e的所述待处理数据次幂,得到常数e的所述待处理数据次幂的数据分片。
14.如权利要求13所述的方法,其特征在于,还包括:
按照持有的位分解数据分片的符号位,通过与其他计算节点之间的协同,采用不经意选择算法,获得e的所述待处理数据次幂的修正后计算结果的数据分片,所述符号位表示负数时,得到的所述修正后计算结果的数据分片为0的数据分片,所述符号位表示正数时,得到的所述修正后计算结果的数据分片为所述计算结果的数据分片。
15.如权利要求13所述的方法,其特征在于,所述基于持有的位分解数据分片,通过与其他计算节点之间的协同,计算2的b次幂,得到2^b的数据分片,作为整数部分次幂数据分片,包括:
基于持有的位分解数据分片,通过与其他计算节点之间的协同,从所述精度d位开始向高位截取log2(k-d)向上取整位,得到所述变换后数据的整数部分的数据分片,作为整数部分数据分片;
基于持有的整数部分数据分片,通过与其他计算节点之间的协同,针对所述整数部分数据分片的每一位,按位执行不经意选择算法,如果2^t位的比特为1,不经意选择结果为2^(2^t),否则,不经意选择结果为1,得到针对该位的不经意选择结果的数据分片,作为针对该位的不经意选择结果数据分片,t的取值为从0至log2(k-d)向上取整减1;
基于持有的针对各位的不经意选择结果数据分片,通过与其他计算节点之间的协同,计算针对各位的不经意选择结果的乘积,得到2^b的数据分片,作为整数部分次幂数据分片。
16.如权利要求13所述的方法,其特征在于,所述基于持有的位分解数据分片,通过与其他计算节点之间的协同,计算2的c次幂,得到2^c的数据分片,作为小数部分次幂数据分片,包括:
基于持有的位分解数据分片,通过与其他计算节点之间的协同,获得所述变换后数据的小数部分的数据分片,作为小数部分数据分片;
基于持有的小数部分数据分片,通过与其他计算节点之间的协同,按照预先拟合的在[0,1]范围内的用于计算2的c次幂的多项式函数,计算2的c次幂,得到2^c的数据分片,作为小数部分次幂数据分片。
17.一种隐私计算中的数据处理装置,其特征在于,应用于参与隐私计算的多个计算节点中的每个计算节点,所述多个计算节点分别持有待处理数据的多个数据分片之一,所述装置,包括:
数据变换模块,用于基于持有的数据分片,通过与其他计算节点之间的协同,按照预设变换方式,对所述待处理数据进行变换,得到所述待处理数据的变换后数据的变换后数据分片,所述变换后数据位于执行预设近似计算需要满足的数值范围内,所述预设近似计算与预设非线性函数相对应;
近似计算模块,用于基于持有的变换后数据分片,通过与其他计算节点之间的协同,针对所述变换后数据执行所述预设近似计算,得到近似计算结果的近似计算结果分片;
结果还原模块,用于基于持有的近似计算结果分片,通过与其他计算节点之间的协同,按照与所述预设变换方式对应的预设还原方式,对所述近似计算结果进行还原计算,得到还原结果的还原结果分片,作为采用所述预设非线性函数对所述待处理数据进行非线性计算的非线性计算结果的数据分片;
所述数据变换模块,具体用于基于持有的数据分片,通过与其他计算节点之间的协同,对所述待处理数据进行位分解操作,得到所述待处理数据的位分解数据的位分解数据分片;基于持有的位分解数据分片,通过与其他计算节点之间的协同,获取所述位分解数据的最高有效位MSB比特串的MSB比特串分片;将所述MSB比特串分片沿着所述待处理数据的精度对折,得到对折后比特串的对折后比特串分片;基于持有的对折后比特串分片,通过与其他计算节点之间的协同,计算所述对折后比特串表示的数值与所述待处理数据的乘积,得到所述乘积的乘积数据分片,作为所述待处理数据的变换后数据的变换后数据分片。
18.一种隐私计算中的数据处理装置,其特征在于,应用于参与隐私计算的多个计算节点中的每个计算节点,所述多个计算节点分别持有待处理数据的多个数据分片之一,所述装置,包括:
数据变换模块,用于基于持有的数据分片,通过与其他计算节点之间的协同,计算所述待处理数据乘以log以2为底e的对数的乘积,以及所述乘积加上所述待处理数据的精度的和值,作为所述待处理数据的变换后数据,得到所述变换后数据的变换后数据分片;基于持有的变换后数据分片,通过与其他计算节点之间的协同,对所述变换后数据进行位分解操作,得到所述变换后数据的位分解数据的位分解数据分片;基于持有的位分解数据分片,通过与其他计算节点之间的协同,计算2的b次幂,得到2^b的数据分片,作为整数部分次幂数据分片,所述b为所述变换后数据的整数部分;
近似计算模块,用于基于持有的位分解数据分片,通过与其他计算节点之间的协同,计算2的c次幂,得到2^c的数据分片,作为小数部分次幂数据分片,所述c为所述变换后数据的小数部分;
结果还原模块,用于基于持有的整数部分次幂数据分片和小数部分次幂数据分片,通过与其他计算节点之间的协同,计算2^b与2^c的乘积,得到2的所述变换后数据次幂的数据分片,作为变换后数据次幂数据分片;基于持有的变换后数据次幂数据分片,通过与其他计算节点之间的协同,将所述变换后数据次幂右移所述精度位,得到的计算结果作为常数e的所述待处理数据次幂,得到常数e的所述待处理数据次幂的数据分片。
19.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-12任一所述的方法,或者,实现权利要求13-16任一所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-12任一所述的方法,或者,实现权利要求13-16任一所述的方法。
CN202310357067.XA 2023-04-04 2023-04-04 一种隐私计算中的数据处理方法、装置及电子设备 Active CN116070282B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310357067.XA CN116070282B (zh) 2023-04-04 2023-04-04 一种隐私计算中的数据处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310357067.XA CN116070282B (zh) 2023-04-04 2023-04-04 一种隐私计算中的数据处理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN116070282A CN116070282A (zh) 2023-05-05
CN116070282B true CN116070282B (zh) 2023-06-16

Family

ID=86177180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310357067.XA Active CN116070282B (zh) 2023-04-04 2023-04-04 一种隐私计算中的数据处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN116070282B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101649124B1 (ko) * 2015-01-27 2016-08-18 전남대학교산학협력단 배전계통의 최적송출전압 계산 방법 및 최적송출전압 계산 프로그램
CN111984227B (zh) * 2020-08-26 2023-10-13 南京大学 一种针对复数平方根的近似计算装置及方法
CN112000990B (zh) * 2020-10-27 2021-02-05 支付宝(杭州)信息技术有限公司 隐私保护的数据处理方法、装置、设备及机器学习系统
US20240104166A1 (en) * 2021-02-05 2024-03-28 Konica Minolta, Inc. Softmax function approximation calculation device, approximation calculation method, and approximation calculation program
CN113535122B (zh) * 2021-06-24 2022-03-18 复旦大学 基于秘密分享协议的安全高效数学对数计算的优化方法

Also Published As

Publication number Publication date
CN116070282A (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
JP5957120B1 (ja) 秘密分散方法、秘密分散システム、分散装置、およびプログラム
JP3744896B2 (ja) 線形変換を実行する際の効率を強化する方法
EP2000902A2 (en) Mixed radix conversion with a priori defined statistical artifacts
van Der Hoeven et al. Sparse polynomial interpolation in practice
JP2017533458A5 (zh)
Astola et al. An algebraic approach to reducing the number of variables of incompletely defined discrete functions
CN107230190B (zh) 一种图像双边滤波方法和装置
US6763366B2 (en) Method for calculating arithmetic inverse over finite fields for use in cryptography
CN116070282B (zh) 一种隐私计算中的数据处理方法、装置及电子设备
CN109379191B (zh) 一种基于椭圆曲线基点的点乘运算电路和方法
Xu et al. A general-purpose number theoretic transform algorithm for compact RLWE cryptoprocessors
CN116127523B (zh) 一种隐私计算中的数据处理方法、装置及电子设备
CN107534450B (zh) 矩阵应用装置、矩阵应用方法、以及存储介质
RU2400813C2 (ru) Нейронная сеть основного деления модулярных чисел
KR100902847B1 (ko) 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체
Malaschonok et al. Symbolic-numerical solution of systems of linear ordinary differential equations with required accuracy
Ishmukhametov et al. A parallel computation of the GCD of natural numbers
CN114706557B (zh) 一种asic芯片及蒙哥马利模乘的实现方法和装置
Ikesaka et al. Improvement of Final Exponentiation for a Pairing on FK12 Curve and its Implementation
CN115659380B (zh) 一种密文数据拟合计算方法、装置及电子设备
Effinger et al. Twin irreducible polynomials over finite fields
Seibert Integer Factorization using the Quadratic Sieve
JP6308845B2 (ja) 演算装置、演算方法、及びプログラム
Li et al. Efficient algorithms and implementation for error-free computation using p-adic
Boussakta et al. Rader–Brenner algorithm for computing new Mersenne number transform

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