CN115483934A - 用于多方安全计算的数据转换方法和装置 - Google Patents
用于多方安全计算的数据转换方法和装置 Download PDFInfo
- Publication number
- CN115483934A CN115483934A CN202211059967.8A CN202211059967A CN115483934A CN 115483934 A CN115483934 A CN 115483934A CN 202211059967 A CN202211059967 A CN 202211059967A CN 115483934 A CN115483934 A CN 115483934A
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- code
- vector
- initial
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供了一种用于多方安全计算的数据转换方法和装置。所述方法包括:获取待转换的初始加密数据的初始编码类型;确定所述初始编码类型对应的逻辑电路,所述逻辑电路用于将所述初始编码类型的初始加密数据转换为目标编码类型的目标加密数据;使用所述逻辑电路,对所述初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据。本申请提供了一种应用于多方安全计算的数据转换方法。
Description
技术领域
本申请涉及数据转换领域,特别是涉及一种用于多方安全计算的数据转换方法和装置。
背景技术
多方安全技术MPC为多个参与方在不泄露各自输入信息和中间计算结果的情况下完成联合计算的技术。参与多方安全计算的数据往往为浮点编码或者固定点编码的数据,即多方安全计算中只使用一种编码类型的数据。由于,浮点编码具有范围广、精度高的优点,但是其对应的运算电路复杂,而固定点编码具有其对应运算电路简单的优点,但应用范围小、精度低,因此,为了优化多方安全计算中的数据处理的效率,可以采用不同编码类型的数据混合运算的形式。为使得不同编码类型的数据能够进行运算,需要将其转换成相同编码类型的数据。
然而,现有技术中的浮点编码和固定点编码的相互转换方法依赖于明文数据,而多方安全计算中的数据均处于加密的状态,这便使得现有浮点编码和固定点编码的相互转换方法并不适用于多方安全计算。因此,亟需一种用于多方安全计算的数据转换方法和装置。
发明内容
有鉴于此,本申请提供一种用于多方安全计算的数据转换方法和装置,提供了一种应用于多方安全计算的数据转换方法。
为达到上述目的,本申请主要提供如下技术方案:
第一方面,本申请提供了一种用于多方安全计算的数据转换方法,所述方法包括:
获取待转换的初始加密数据的初始编码类型;
确定所述初始编码类型对应的逻辑电路,所述逻辑电路用于将所述初始编码类型的初始加密数据转换为目标编码类型的目标加密数据;
使用所述逻辑电路,对所述初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据。
第二方面,本申请提供了一种用于多方安全计算的数据转换装置,所述装置包括:
获取单元,用于获取待转换的初始加密数据的初始编码类型;
确定单元,用于确定所述获取单元获取到的初始编码类型对应的逻辑电路,所述逻辑电路用于将所述初始编码类型的初始加密数据转换为目标编码类型的目标加密数据;
转换单元,用于使用所述确定单元确定出的逻辑电路,对所述初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据。
第三方面,本申请提供了一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的用于多方安全计算的数据转换方法。
第四方面,本申请提供了一种存储介质,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行上述的用于多方安全计算的数据转换方法。
借由上述技术方案,本申请提供了一种用于多方安全计算的数据转换方法和装置,获取待转换的初始加密数据的初始编码类型;确定所述初始编码类型对应的逻辑电路,所述逻辑电路用于将所述初始编码类型的初始加密数据转换为目标编码类型的目标加密数据。使用所述逻辑电路,对所述初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据。可见,本申请提供一种应用于多方安全计算的数据转换方法。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开的一种用于多方安全计算的数据转换方法的流程示意图;
图2为本申请公开的一种第一逻辑电路的结构示意图;
图3为本申请公开的一种第一逻辑电路使用方法的流程示意图;
图4为本申请公开的一种第二逻辑电路的结构示意图;
图5为本申请公开的一种第二逻辑电路使用方法的流程示意图;
图6为本申请公开的一种用于多方安全计算的数据转换装置的结构示意图;
图7为本申请公开的又一种用于多方安全计算的数据转换装置的结构示意图;
图8为本申请公开的一种设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
为了使本领域技术人员准确的了解本申请,以下对本申请所使用的技术术语以及之后所使用的参数进行相关解释:
1)浮点编码
IEEE754浮点系统标准中浮点编码的数据a表示为:a=(-1)s*2e-m*1.f。其中,s表示符号数据,符号数据设置在数据a的最高比特位,当s==1时,表示数据a为正数,当s==0时,表示数据a为负数。
e表示指数码,为无符号整型。当数据a的编码类型为单精度浮点编码时,则指数码占符号数据之后的8个比特位,固定的偏移值m为127,指数码的实际值等于e-127。当数据a的编码类型为双精度浮点编码时,则指数码占11个比特位,偏移值m为1023,指数码的实际值等于e-1023。
f表示尾数码。当数据a的编码类型为单精度浮点编码时,尾数码占指数码之后的24个比特位,默认前面省略第一个有效位,因此数据的实际有效位为1.f。当数据a的编码类型为双精度浮点编码时,尾数码占53个比特位。
需要说明的是,当数据a的编码类型为单精度浮点编码时,需要将该数据存储在32比特的内存块中。当数据a的编码类型为双精度浮点编码时,需要将该数据存储在64比特的内存块中。
另外,当数据a为0时,指数和尾数都等于0,也就是e==0&&f==0。为避免重复表述,以下设置指数码e的长度为α,尾数码f的长度为β,偏移值为m。
2)固定点编码
设有符号固定点编码的数据b需占用l个比特位,小数位的长度为k。基于l、k以及预先设置的编码公式b=[c*2k],对原始数据c进行编码,得到固定点编码的数据b。其中,k为小数部分的位数。如果b为正数,则最高位等于0,否则最高位等于1。
本申请实施例提供了一种用于多方安全计算的数据转换方法,可以应用于多方安全计算,其执行主体为任一安装有初始编码类型对应的逻辑电路的终端。其具体执行步骤如图1所示,包括:
步骤101,获取待转换的初始加密数据的初始编码类型。
其中,初始加密数据为待转换的加密数据,该初始加密数据的初始编码类型可以为浮点编码,也可以为固定点编码。
步骤102,确定初始编码类型对应的逻辑电路。
其中,逻辑电路用于将初始编码类型的初始加密数据转换为目标编码类型的目标加密数据。当初始编码类型为浮点编码时,该逻辑电路用于将浮点编码的数据转换为固定点编码的数据。当初始编码类型为固定点编码时,该逻辑电路用于将固定点编码的数据转换为浮点编码的数据。
在本步骤的具体实施方式中,根据初始编码类型,选择初始编码类型对应的逻辑电路,或者根据初始编码类型,确定其对应的目标编码类型,根据初始编码类型和目标编码类型,来选择所使用的逻辑电路。
步骤103,使用逻辑电路,对初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据。
其中,目标编码类型可以为固定点编码,也可以为浮点编码。当初始编码类型为浮点编码时,目标编码类型为固定点编码。当初始编码类型为固定点编码时,目标编码类型为浮点编码。
在本申请实施例中,获取待转换的初始加密数据的初始编码类型;确定初始编码类型对应的逻辑电路,逻辑电路用于将初始编码类型的初始加密数据转换为目标编码类型的目标加密数据;使用逻辑电路,对初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据。可见,本申请提供了一种应用于多方安全计算的数据转换方法。
进一步,当图1所示实施例中的初始编码类型为固定点编码,目标编码类型为浮点编码时,在实施图1所示实施例之前,还需要构建固定点编码对应的第一逻辑电路,进而将其安装在参与多方安全计算的终端上。具体的,第一逻辑电路如图2所示,具体包括指数码运算单元、尾数码运算单元和组合单元,指数码运算单元和尾数码运算单元、组合单元均相连,尾数码单元和组合单元相连;指数码运算单元用于基于初始加密数据,确定指数码;尾数码运算单元用于基于初始加密数据,得到尾数码;组合单元用于根据指数码以及尾数码,得到目标加密数据。
进一步的,本申请实施例提供了一种第一逻辑电路使用方法,如图3所示,具体步骤包括:
步骤301,使用指数码运算单元,根据初始加密数据确定第一向量;确定第一向量中第一个1出现的位置;根据位置、浮点编码的固定偏移值以及固定点编码的小数位数,计算指数码。
在本步骤的具体实施方式中,由于上述已经设有符号固定点编码的数据需占用l个比特位,因此,将初始加密数据b设置为{b[l-1],...b[0]},其中,b[i]表示初始加密数据中第i+1个比特位对应的数据,i小于等于l-1,且大于等于0。由于符号数据为初始数据中的首位数据,因此使用b[l-1]表示符号数据,使用{b[l-2],...b[0]}表示除符号数据之外的数据。之后,便可以根据符号数据和除符号数据之外的数据确定第一向量。确定第一向量中第一个1出现的位置。根据位置、浮点编码的固定偏移值以及固定点编码的小数位数,计算指数码。
首先,根据符号数据和除符号数据之外的数据确定第一向量的具体步骤包括:使用指数码运算单元,确定初始加密数据中的符号数据和除符号数据之外的数据,判断符号数据是否为0;当符号数据为0时,将该数据确定为所述第一向量;当符号数据不为0,即该符号数据为1时,则将数据的补码,确定为第一向量。
具体的,当b[l-1]=0时,将{b[l-2],...b[0]}确定为第一向量。当b[l-1]=1时,对{b[l-2],...b[0]}中的每个数据取反后组成的整数加1,得到第一向量。取反的运算为与比特1的“与运算”(AND运算)。
其次,本申请中,确定第一向量中第一个1出现的位置方法是:使用{b1[l-2],...b1[0]}表示第一向量b1。通过对第一向量b1中的每个数据进行pre-or运算,得到第二向量pre-or。根据第二向量pre-or计算出第三向量P,进而由第三向量P来确定第一向量b1中第一个1出现的位置。具体步骤包括:对第一向量b1中的每个数据进行pre-or运算,得到第二向量pre-or,其中,使用{pre-or[l-2],...pre-or[0]}表示第二向量pre-or,pre-or[i]为计算从b1[l-2]开始,直到b1[i]之间的所有数据的或值,其中,i小于等于l-2且大于等于0。具体的,pre-or[i]=b1[l-2]ORb1[l-3]...b1[i]。之后,在得到第二向量pre-or之后,计算pre-or[i]和pre-or[i+1]的异或值,得到第三向量P中第i比特位的数据P[i],进而得到第三向量P。其中,第一向量b1中第一个1的位置在第三向量P对应的数据为1,其他位置均为0。
需要说明的是,在计算P[l-2]时,由于第二向量pre-or中没有pre-or[l-1],可以将pre-or[l-1]设置为0,即P[l-2]=pre-or[l-2]OXR pre-or[l-1]=pre-or[l-2]OXR 0。
最后,在根据位置、浮点编码的固定偏移值以及固定点编码的小数位数计算指数码之前,需要预先设置一个第二数据序列v={v[l-2],...v[0]},v[i]=i,i∈[0,l-2],该第二数据序列包括l-1个长度为α的元素,即v[i]为长度为α的元素,α为浮点编码的指数码的长度。之后,根据第三向量P中第一个出现1的位置n,在该第二数据序列中确定出位置n对应的变量v[n]。根据该变量v[n]、浮点编码的固定偏移值m以及固定点编码的小数位数k,计算指数码e。
具体过程为,计算第三向量P和该第二数据序列v的内积,得到的变量v[n]。之后根据e=v[n]+m-k,计算指数码e。其中,m为浮点编码的固定偏移值,k为固定点编码的小数位数。
步骤302,使用尾数码运算单元,根据第一向量中第一个1出现的位置,以及预设的第一数据序列,得到尾数码。
其中,本申请可以根据步骤301所述的方法根据初始加密数据计算第一向量中第一个1出现的位置,也可以直接获取步骤301所述第一向量中第一个1出现的位置。
在本步骤的具体实施方式中,使用尾数码运算单元,根据第一向量b1中每个可能的第一个1的位置,构造长度为β的尾数码f。具体过程为:当需要构造出第一数据序列中第i个可能尾数码q[i],则从第一向量b1中的第i-1比特位对应的数据开始,向后取β个比特位对应的数据,不足时以0填充低位,进而构造出第一数据序列中的q[i]。这样,便可以根据第一向量b1构造出第一数据序列q={q[l-2],...q[0]}。
例如,假设l=30,β=9,第一向量b1={b1[28],...b1[0]},这样基于上述方法构造出的q[28]={b1[27],b1[26]...b1[19]},q[0]=0…00,填充9个0。
在确定第一数据序列q之后,可以直接获取步骤301中的第三向量P,并计算第三向量P和第一数据序列q的内积,得到尾数码f。具体计算公式为:f=p[l-2]*q[l-2]+...+p[0]*q[0]。
步骤303,使用组合单元,根据指数码和尾数码,得到目标数据。
如果初始数据为0,则直接将指数码和尾数码赋值为0。
在本步骤的具体实施中,将符号数据、指数码和尾数码依次组合,得到目标加密数据。
进一步,当图1所示实施例中的初始编码类型为浮点编码,目标编码类型为固定点编码时,在实施图1所示实施例之前,还需要构建所述浮点编码对应的第二逻辑电路,具体如图4所示,进而将其安装在参与多方安全计算的终端上。构建浮点编码对应的第二逻辑电路,其中,第一逻辑电路包括构造单元、移位单元以及计算单元,其中,所述构造单元与所述移位单元相连,所述移位单元与所述计算单元相连,所述构造单元用于基于所述初始加密数据构造与固定点编码的数据长度相同的向量,所述移位单元,用于根据所述向量、浮点编码的偏移量、尾数码的长度和固定点编码的小数位长度,确定移位向量;所述计算单元用于根据所述移位向量和所述初始加密数据中的符号数据,确定所述目标加密数据。
进一步的,本申请实施例提供了一种使用第二逻辑电路的方法,如图5所示,具体步骤包括:
步骤501,使用构造单元,基于初始加密数据构造与固定点编码的数据长度相同的向量。
在本步骤的具体实施方式中,在初始加密数据f1的最高位添1,得到数据f2=1f1。之后,将数据f2前填充l-β个0,以使得到与固定点编码的数据长度相同的向量g=0...0f1=0...01f2,其中,l为固定点编码的长度,β为浮点编码尾数码的长度。
步骤502,使用移位单元,根据向量、浮点编码的偏移量、尾数码的长度和固定点编码的小数位长度,确定移位向量。
在本步骤的具体实施方式中,使用移位单元,判断所述浮点编码的偏移量是否小于指数码。当浮点编码的偏移量小于指数码,计算偏移量和指数码的第一差值,以及浮点编码尾数码的长度和固定点编码的小数位长度之间的第二差值,以及第一差值和第二差值相差的第三差值。判断第一差值是否大于第二差值;如果是,则根据第三差值和预设的左桶移位算法,对构造单元构造出的向量进行移位,得到移位向量;如果否,则根据第三差值和预设的右桶移位算法,对构造单元构造出的向量进行移位,得到移位向量。
当浮点编码的指数码的偏移量大于等于指数码时,计算偏移量和指数码的第一差值,并计算第一差值、浮点编码中的尾数码的长度以及固定点编码的小数位长度之和,基于该和与预设的右桶移位算法,对构造单元所构造的向量移位,得到移位向量。
上述计算过程的表示式为h=gt(e,m)*gt(e-m,β-k)*BarrelLeftShift(g,e-m-β+k)+gt(e,m)*gt(β-k,e-m)*BarrelRightShift(g,β-k-e+m)+gt(e,m)*BarrelRightShift(g,m-e+β+k)。
其中,gt(a0,a1)为比较运算,当a0>a1时,gt(a0,a1)=1,否则gt(a0,a1)=0。e表示浮点编码的指数码,m表示浮点编码的指数码的偏移量,β表示浮点编码尾数码的长度,k表示固定点编码的小数位长度,g表示步骤501构造的向量。BarrelLeftShift(A,a3)表示对向量A左移a3位,BarrelRightShift(A,a3)表示对向量A右移a3位,桶式移位BarrelLeftShift和BarrelRightShift是现有技术中不依赖于数据的左移位和右移位算法,溢出的部分补0。
步骤503,使用计算单元,根据移位向量和初始加密数据中的符号数据,确定目标加密数据。
在本步骤的具体实施方式中,当初始加密数据中的符号数据为1时,计算移位向量的补码,并按照预设顺序排列补码和符号数据,得到目标加密数据。当初始加密数据中的符号数据为0时,按照预设顺序排列移位向量和符号数据,得到目标加密数据。
需要说明的是,本申请所涉及到固定点编码和浮点编码均为有符号的编码方式。
进一步的,作为对上述图1-5所示方法实施例的实现,本申请实施例提供了一种用于多方安全计算的数据转换装置,该装置可以对多方安全计算中的加密数据进行数据转换。该装置的实施例与前述方法实施例对应,为便于阅读,本实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。具体如图6所示,该装置包括:
获取单元601,用于获取待转换的初始加密数据的初始编码类型;
确定单元602,用于确定所述获取单元601获取到的初始编码类型对应的逻辑电路,所述逻辑电路用于将所述初始编码类型的初始加密数据转换为目标编码类型的目标加密数据;
转换单元603,用于使用所述确定单元602确定出的逻辑电路,对所述初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据。
进一步的,如图7所示,所述初始编码类型为固定点编码,所述目标编码类型为浮点编码,所述装置还包括:
第一构建单元604,用于构建所述固定点编码对应的第一逻辑电路,其中,所述第一逻辑电路包括指数码运算单元、尾数码运算单元和组合单元,所述指数码运算单元和所述尾数码运算单元、所述组合单元均相连,所述尾数码单元和所述组合单元相连;
所述指数码运算单元用于基于所述初始加密数据,确定指数码;
所述尾数码运算单元用于基于所述初始加密数据,得到尾数码;
所述组合单元用于根据所述指数码以及所述尾数码,得到目标加密数据。
进一步的,如图7所示,转换单元603,还用于:
使用所述指数码运算单元,根据所述初始加密数据确定第一向量;确定所述第一向量中第一个1出现的位置;根据所述位置、浮点编码的固定偏移值以及固定点编码的小数位数,计算所述指数码;
使用所述尾数码运算单元,根据所述第一向量中第一个1出现的位置,以及预设的第一数据序列,得到所述尾数码;
使用所述组合单元,根据所述指数码和所述尾数码,得到所述目标加密数据。
进一步的,如图7所示,转换单元603,还用于:
使用所述指数码运算单元,确定所述初始加密数据中的符号数据和除所述符号数据之外的数据,判断所述符号数据是否为0;当所述符号数据为0时,将所述数据确定为所述第一向量;当所述符号数据不为0时,则将所述数据的补码,确定为所述第一向量。
进一步的,如图7所示,所述初始编码类型为浮点编码,所述目标编码类型为固定点编码,所述装置还包括:
第二构建单元605,用于构建所述浮点编码对应的第二逻辑电路,其中,所述第二逻辑电路包括构造单元、移位单元以及计算单元,其中,所述构造单元与所述移位单元相连,所述移位单元与所述计算单元相连,所述构造单元用于基于所述初始加密数据构造与固定点编码的数据长度相同的向量,所述移位单元,用于根据所述向量、浮点编码的偏移量、尾数码的长度和固定点编码的小数位长度,确定移位向量;所述计算单元用于根据所述移位向量和所述初始加密数据中的符号数据,确定所述目标加密数据。
进一步的,如图7所示,转换单元603,还用于:
使用所述构造单元,基于所述初始加密数据构造与固定点编码的数据长度相同的向量;
使用所述移位单元,根据所述向量、浮点编码的偏移量、尾数码的长度和所述固定点编码的小数位长度,确定移位向量;
使用所述计算单元,根据所述移位向量和所述初始加密数据中的符号数据,确定目标加密数据。
进一步的,如图7所示,转换单元603,还用于:
使用所述移位单元,判断所述浮点编码的偏移量是否小于指数码,当所述浮点编码的偏移量小于所述指数码,计算所述偏移量和所述指数码的第一差值,以及浮点编码尾数码的长度和固定点编码的小数位长度之间的第二差值,以及所述第一差值和所述第二差值相差的第三差值;判断所述第一差值是否大于所述第二差值;如果是,则根据所述第三差值和预设的左桶移位算法,对所述构造单元构造出的向量进行移位,得到所述移位向量;如果否,则根据所述第三差值和预设的右桶移位算法,对所述构造单元构造出的向量进行移位,得到所述移位向量;当所述浮点编码的偏移量大于等于所述指数码时,计算所述偏移量和指数码的第一差值,并计算所述第一差值、浮点编码中的尾数码的长度以及固定点编码的小数位长度之和,基于所述和与预设的右桶移位算法,对所述构造单元所构造的向量移位,得到所述移位向量。
进一步的,本申请实施例还提供一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述图1-5中所述的用于多方安全计算的数据转换方法。
进一步的,本申请实施例还提供一种存储介质,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行上述图1-5中所述的用于多方安全计算的数据转换方法。
图8是本申请实施例提供的一种设备80的框图。该设备80包括至少一个处理器801、以及与处理器801连接的至少一个存储器802、总线803;其中,处理器801、存储器802通过总线803完成相互间的通信。处理器801用于调用存储器802中的程序指令,以执行上述的数据共享方法。本文中的设备可以是服务器(例如:本地服务器或者云端服务器)、智能手机、平板电脑、PDA、便携计算机,也可以是台式计算机等固定终端等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种用于多方安全计算的数据转换方法,其特征在于,所述方法包括:
获取待转换的初始加密数据的初始编码类型;
确定所述初始编码类型对应的逻辑电路,所述逻辑电路用于将所述初始编码类型的初始加密数据转换为目标编码类型的目标加密数据;
使用所述逻辑电路,对所述初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据。
2.根据权利要求1所述的方法,其特征在于,所述初始编码类型为固定点编码,所述目标编码类型为浮点编码,所述方法还包括:
构建所述固定点编码对应的第一逻辑电路,其中,所述第一逻辑电路包括指数码运算单元、尾数码运算单元和组合单元,所述指数码运算单元和所述尾数码运算单元、所述组合单元均相连,所述尾数码单元和所述组合单元相连;
所述指数码运算单元用于基于所述初始加密数据,确定指数码;
所述尾数码运算单元用于基于所述初始加密数据,得到尾数码;
所述组合单元用于根据所述指数码以及所述尾数码,得到目标加密数据。
3.根据权利要求2所述的方法,其特征在于,所述使用所述逻辑电路,对所述初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据,包括:
使用所述指数码运算单元,根据所述初始加密数据确定第一向量;确定所述第一向量中第一个1出现的位置;根据所述位置、浮点编码的固定偏移值以及固定点编码的小数位数,计算所述指数码;
使用所述尾数码运算单元,根据所述第一向量中第一个1出现的位置,以及预设的第一数据序列,得到所述尾数码;
使用所述组合单元,根据所述指数码和所述尾数码,得到所述目标加密数据。
4.根据权利要求3所述的方法,其特征在于,所述使用所述指数码运算单元,根据所述初始加密数据确定第一向量,包括:
使用所述指数码运算单元,确定所述初始加密数据中的符号数据和除所述符号数据之外的数据,判断所述符号数据是否为0;当所述符号数据为0时,将所述数据确定为所述第一向量;当所述符号数据不为0时,则将所述数据的补码,确定为所述第一向量。
5.根据权利要求1所述的方法,其特征在于,所述初始编码类型为浮点编码,所述目标编码类型为固定点编码,所述方法还包括:
构建所述浮点编码对应的第二逻辑电路,其中,所述第二逻辑电路包括构造单元、移位单元以及计算单元,其中,所述构造单元与所述移位单元相连,所述移位单元与所述计算单元相连,所述构造单元用于基于所述初始加密数据构造与固定点编码的数据长度相同的向量,所述移位单元,用于根据所述向量、浮点编码的偏移量、尾数码的长度和固定点编码的小数位长度,确定移位向量;所述计算单元用于根据所述移位向量和所述初始加密数据中的符号数据,确定所述目标加密数据。
6.根据权利要求5所述的方法,其特征在于,所述使用所述逻辑电路,对所述初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据,包括:
使用所述构造单元,基于所述初始加密数据构造与固定点编码的数据长度相同的向量;
使用所述移位单元,根据所述向量、浮点编码的偏移量、尾数码的长度和所述固定点编码的小数位长度,确定移位向量;
使用所述计算单元,根据所述移位向量和所述初始加密数据中的符号数据,确定目标加密数据。
7.根据权利要求6所述的方法,其特征在于,所述使用所述移位单元,根据所述向量、浮点编码的偏移量、尾数码的长度和所述固定点编码的小数位长度,确定移位向量,包括:
使用所述移位单元,判断所述浮点编码的偏移量是否小于指数码,当所述浮点编码的偏移量小于所述指数码,计算所述偏移量和所述指数码的第一差值,以及浮点编码尾数码的长度和固定点编码的小数位长度之间的第二差值,以及所述第一差值和所述第二差值相差的第三差值;判断所述第一差值是否大于所述第二差值;如果是,则根据所述第三差值和预设的左桶移位算法,对所述构造单元构造出的向量进行移位,得到所述移位向量;如果否,则根据所述第三差值和预设的右桶移位算法,对所述构造单元构造出的向量进行移位,得到所述移位向量;当所述浮点编码的偏移量大于等于所述指数码时,计算所述偏移量和指数码的第一差值,并计算所述第一差值、浮点编码中的尾数码的长度以及固定点编码的小数位长度之和,基于所述和与预设的右桶移位算法,对所述构造单元所构造的向量移位,得到所述移位向量。
8.一种用于多方安全计算的数据转换装置,其特征在于,所述装置包括:
获取单元,用于获取待转换的初始加密数据的初始编码类型;
确定单元,用于确定所述获取单元获取到的初始编码类型对应的逻辑电路,所述逻辑电路用于将所述初始编码类型的初始加密数据转换为目标编码类型的目标加密数据;
转换单元,用于使用所述确定单元确定出的逻辑电路,对所述初始加密数据进行转换,以获得编码类型为目标编码类型的目标加密数据。
9.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行权利要求1-7中任意一项所述的用于多方安全计算的数据转换方法。
10.一种存储介质,其特征在于,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行权利要求1-7中任意一项所述的用于多方安全计算的数据转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211059967.8A CN115483934A (zh) | 2022-08-31 | 2022-08-31 | 用于多方安全计算的数据转换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211059967.8A CN115483934A (zh) | 2022-08-31 | 2022-08-31 | 用于多方安全计算的数据转换方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115483934A true CN115483934A (zh) | 2022-12-16 |
Family
ID=84422139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211059967.8A Pending CN115483934A (zh) | 2022-08-31 | 2022-08-31 | 用于多方安全计算的数据转换方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115483934A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116484407A (zh) * | 2023-04-23 | 2023-07-25 | 深圳市天下房仓科技有限公司 | 一种数据安全保护方法、装置、电子设备及存储介质 |
-
2022
- 2022-08-31 CN CN202211059967.8A patent/CN115483934A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116484407A (zh) * | 2023-04-23 | 2023-07-25 | 深圳市天下房仓科技有限公司 | 一种数据安全保护方法、装置、电子设备及存储介质 |
CN116484407B (zh) * | 2023-04-23 | 2024-03-22 | 深圳市天下房仓科技有限公司 | 一种数据安全保护方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199707B (zh) | 一种同态加密中的数据处理方法、装置以及设备 | |
US4727508A (en) | Circuit for adding and/or subtracting numbers in logarithmic representation | |
TWI525538B (zh) | 超級乘加(super madd)指令技術 | |
KR100398859B1 (ko) | 데이터 연산 처리 장치 | |
CN116028013B (zh) | 一种fpga除法运算的优化方法、装置、除法器和介质 | |
WO2015144950A1 (es) | Unidades aritméticas y conversores asociados | |
CN115483934A (zh) | 用于多方安全计算的数据转换方法和装置 | |
US4692891A (en) | Coded decimal non-restoring divider | |
CN116436709B (zh) | 一种数据的加解密方法、装置、设备和介质 | |
CN114579079A (zh) | 用于常数乘法的集成电路、操作其的方法和包括其的装置 | |
CN117420982A (zh) | 包括融合乘累加器的芯片、设备及数据运算的控制方法 | |
US4758975A (en) | Data processor capable of processing floating point data with exponent part of fixed or variable length | |
CN114816335B (zh) | 一种忆阻器阵列符号数乘法实现方法、装置及设备 | |
CN116933840A (zh) | 支持可变指数位宽的多精度Posit编解码运算装置及方法 | |
CN113126954A (zh) | 浮点数乘法计算的方法、装置和算术逻辑单元 | |
KR100331846B1 (ko) | 실수 연산기 | |
CN109992242B (zh) | 基于乘法器的运算方法及装置 | |
CN117908833B (zh) | Mcu高位数整型除法器的加速方法及装置 | |
CN117422807B (zh) | 颜色值的确定方法及装置、电子设备、计算机存储介质 | |
WO2023124235A1 (zh) | 多输入浮点数处理方法、装置、处理器及计算机设备 | |
US11907680B2 (en) | Multiplication and accumulation (MAC) operator | |
Mohan et al. | Scaling, base extension, sign detection and comparison in RNS | |
JP5896756B2 (ja) | 演算装置及びプログラム | |
CN100530076C (zh) | 数据饱和管理器及相应方法 | |
US4716538A (en) | Multiply/divide circuit for encoder PCM samples |
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 |