CN115617897A - 一种数据类型转换方法和多方安全计算系统 - Google Patents
一种数据类型转换方法和多方安全计算系统 Download PDFInfo
- Publication number
- CN115617897A CN115617897A CN202211373245.XA CN202211373245A CN115617897A CN 115617897 A CN115617897 A CN 115617897A CN 202211373245 A CN202211373245 A CN 202211373245A CN 115617897 A CN115617897 A CN 115617897A
- Authority
- CN
- China
- Prior art keywords
- party
- participant
- data
- fragment
- fragments
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种数据类型转换方法和多方安全计算系统。该方法包括:第一参与方和第二参与方分别对各自持有的待转换数据的分片进行填充,得到各自的填充分片;通过第一协同计算,分别得到第一密文比特x的分片;第一参与方和第二参与方分别计算得到第一中间数据的分片;第一参与方和第二参与方通过第一协同计算,分别得到第二密文比特y的分片;第一参与方和第二参与方根据各自持有的x的分片、y的分片以及M进行第二协同计算,分别得到第二中间数据的分片;第一参与方和第二参与方分别计算各自的填充分片与各自的第二中间数据的分片的和,得到各自持有的转换后数据的分片。本发明实施例可以提升运行效率。
Description
技术领域
本发明涉及多方安全计算领域,尤其涉及一种数据类型转换方法和多方安全计算系统。
背景技术
多方安全计算系统是一种保护数据隐私安全的计算系统。在涉及到多数据源的数据融合计算过程中,多个参与方可以在不泄漏自身数据的前提下,使用多方安全计算技术进行协作计算,得到计算结果,既实现了数据共享,又保证了数据的隐私安全。
多方安全计算系统可以支持多种数据类型,因此,在多方安全计算任务中,经常需要在不同数据类型之间进行转换。在基于秘密分享的多方安全计算系统中,通常采用的数据类型转换方法是:先将源类型的分片转换成布尔类型的分片,再对布尔类型的分片进行操作使其长度与目标类型相同,最后将布尔类型的分片转换成目标类型的分片。
将布尔类型的分片转换成目标类型的分片,如转换成整数或定点数等类型的分片,本质上是将二进制数转换成十进制数,需要用二进制数的每一位乘以对应2的幂次并累加,这需要对每一位执行一次不经意传输,总共需要执行不经意传输的次数等同于分片的长度。例如,若目标类型为int64,则将布尔类型的分片转换成目标类型的分片需要执行64次不经意传输。大量的不经意传输操作将导致大量的数据通信,降低运行效率,且目标类型的长度越大,运行效率越低。
发明内容
本发明实施例提供一种数据类型转换方法和多方安全计算系统,可以在保护数据隐私安全的前提下进行数据类型转换,并且可以降低数据通信量,提升运行效率。
为了解决上述问题,本发明实施例公开了一种数据类型转换方法,应用于多方安全计算系统,用于将第一数据类型的待转换数据转换为第二数据类型,所述第一数据类型的数据长度为第一长度M,所述第二数据类型的数据长度为第二长度N,所述多方安全计算系统包括第一参与方和第二参与方,所述第一参与方和所述第二参与方持有所述待转换数据的分片,所述方法包括:
所述第一参与方和所述第二参与方分别对各自持有的待转换数据的分片进行填充,得到各自的填充分片;
所述第一参与方和所述第二参与方通过第一协同计算,分别得到第一密文比特x的分片,x为所述待转换数据的符号位;
所述第一参与方和所述第二参与方分别计算得到第一中间数据的分片,所述第一中间数据为所述第一参与方和所述第二参与方持有的填充分片与第一密文常数C的和;其中,C根据M和N确定;
所述第一参与方和所述第二参与方通过第一协同计算,分别得到第二密文比特y的分片,y为所述第一中间数据的符号位;
所述第一参与方和所述第二参与方根据各自持有的x的分片、y的分片以及M进行第二协同计算,分别得到第二中间数据的分片;
所述第一参与方和所述第二参与方分别计算各自的填充分片与各自的第二中间数据的分片的和,得到各自持有的转换后数据的分片,所述转换后数据为第二数据类型。
另一方面,本发明实施例公开了一种多方安全计算系统,用于将第一数据类型的待转换数据转换为第二数据类型,所述第一数据类型的数据长度为第一长度M,所述第二数据类型的数据长度为第二长度N,所述多方安全计算系统包括第一参与方和第二参与方,所述第一参与方和所述第二参与方持有所述待转换数据的分片,所述多方安全计算系统用于执行如前述一个或多个所述的数据类型转换方法。
再一方面,本发明实施例公开了一种用于数据类型转换的装置,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如前述一个或多个所述的数据类型转换方法的指令。
又一方面,本发明实施例公开了一种可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如前述一个或多个所述的数据类型转换方法。
本发明实施例包括以下优点:
相较于传统的数据类型转换方法,本发明实施例不需要将待转换数据的分片与布尔类型的分片相互转换,而只需要提取其中两个密文比特,可以极大减少不经意传输的次数,如方案一和方案二均只需要调用两次不经意传输协议,从而显著降低了数据通信量,提升了运行效率。此外,相较于传统的数据类型转换方法,本发明实施例调用不经意传输协议的次数与数据类型的长度无关,从而可以高效地作用于更加复杂的数据类型,为今后数据类型的拓展奠定基础。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种数据类型转换方法实施例的步骤流程图;
图2是本发明的多方安全计算系统实施例的结构框图;
图3是本发明的一种用于数据类型转换的装置800的框图;
图4是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
参照图1,示出了本发明的一种数据类型转换方法实施例的步骤流程图,所述方法可应用于多方安全计算系统,所述方法可用于将第一数据类型的待转换数据转换为第二数据类型,所述第一数据类型的数据长度为第一长度M,所述第二数据类型的数据长度为第二长度N,所述多方安全计算系统包括第一参与方和第二参与方,所述第一参与方和所述第二参与方持有所述待转换数据的分片,所述方法可以包括如下步骤:
步骤101、所述第一参与方和所述第二参与方分别对各自持有的待转换数据的分片进行填充,得到各自的填充分片;
步骤102、所述第一参与方和所述第二参与方通过第一协同计算,分别得到第一密文比特x的分片,x为所述待转换数据的符号位;
步骤103、所述第一参与方和所述第二参与方分别计算得到第一中间数据的分片,所述第一中间数据为所述第一参与方和所述第二参与方持有的填充分片与第一密文常数C的和;其中,C根据M和N确定;
步骤104、所述第一参与方和所述第二参与方通过第一协同计算,分别得到第二密文比特y的分片,y为所述第一中间数据的符号位;
步骤105、所述第一参与方和所述第二参与方根据各自持有的x的分片、y的分片以及M进行第二协同计算,分别得到第二中间数据的分片;
步骤106、所述第一参与方和所述第二参与方分别计算各自的填充分片与各自的第二中间数据的分片的和,得到各自持有的转换后数据的分片,所述转换后数据为第二数据类型。
本发明实施例提供的数据类型转换方法,可应用于多方安全计算中需要将第一数据类型的待转换数据转换为第二数据类型的场景。所述待转换数据可以为密文数据。
需要说明的是,本发明实施例对所述待转换数据的来源不做限制。在本发明的一种可选实施例中,所述待转换数据可以为第一参与方或者第二参与方所拥有并秘密分享给两个参与方,或者,所述待转换数据可以为所述第一参与方和所述第二参与方进行多方安全计算产生的中间结果。
本发明实施例对所述多方安全计算的类型不做限制。例如,所述多方安全计算可以包括基于秘密分享的联邦学习或者隐私集合求交等。在上述多方安全计算场景中,存在数据类型转换的需求,如需要多次在整数类型和定点数类型之间相互转换。
本发明实施例对所述第一数据类型和所述第二数据类型的具体类型不做限制。例如,所述第一数据类型可以为int32类型,第一长度M为32bit,所述第二数据类型可以为int64类型,第二长度N为64bit;又如,所述第一数据类型可以为int16类型,第一长度M为16bit,所述第二数据类型可以为定点数类型,第二长度N为128bit;等等。
在本发明的一种可选实施例中,所述第一数据类型和所述第二数据类型为有符号的数据类型,且所述第一长度小于所述第二长度。
为便于描述,在本发明实施例中,将待转换数据记为X,X的数据类型为第一数据类型,第一数据类型的数据长度为M,需要将X由第一数据类型转换为第二数据类型,第二数据类型的数据长度为N。所述第一数据类型和所述第二数据类型为有符号的数据类型,且M小于N。
在本发明实施例中,所述多方安全计算系统可以为基于秘密分享(Secret Share)协议的多方安全计算系统。秘密分享协议,是密码学中由多个参与方进行秘密分发、保存、计算、恢复的信息保护协议。各个参与方可以将一份数据分成多份,每份称为一个分享(或分片)并分发给其他参与方,之后通过计算和通信,可以完成对这些数据正确的函数计算并且保障参与方数据的隐私。
进一步地,本发明实施例的多方安全计算系统基于加法秘密分享协议。所述第一参与方和所述第二参与方持有所述待转换数据X的分片,如所述第一参与方持有待转换数据X的分片X1,所述第二参与方持有待转换数据X的分片X2,则X=X1+X2。
首先,所述第一参与方和所述第二参与方分别对各自持有的待转换数据的分片进行填充,得到各自的填充分片。填充的目的在于将分片X1和分片X2填充为第二长度。
在本发明的一种可选实施例中,所述第一参与方和所述第二参与方分别对各自持有的待转换数据的分片进行填充,可以包括:所述第一参与方和所述第二参与方分别对各自持有的待转换数据的分片的最高位填充0,使得填充分片的长度为N。
示例性地,第一参与方持有待转换数据X的分片X1,第一参与方将X1的最高位填充(N-M)个连续的0,得到其持有的填充分片,假设记为X1'。第二参与方持有待转换数据X的分片X2,第二参与方将X2的最高位填充(N-M)个连续的0,得到其持有的填充分片,假设记为X2'。
所述第一参与方和所述第二参与方通过第一协同计算,分别得到第一密文比特x的分片,x为所述待转换数据的符号位。
需要说明的是,步骤101和步骤102的先后顺序本发明不做限制。步骤102中所述的第一协同计算用于提取待转换数据的符号位(也即最高位)x,并且使得第一参与方和第二参与方分别得到x的分片。
本发明实施例对所述第一协同计算的方式不做限制。所述第一协同计算可以为所述第一参与方和所述第二参与方调用已有的用于提取符号位的多方安全计算。
在多方秘密分享协议中,每个参与方可以拥有一个计算引擎,可以视为黑盒。每个参与方将拥有的分片输入到各自的计算引擎中,多个参与方的计算引擎进行多方安全计算,多个参与方的计算引擎在进行多方安全计算的过程中会进行通信和计算,最后每个参与方的计算引擎将计算结果的分片输出至对应的参与方。
假设Ext是一个多方安全计算协议,用于提取数据的符号位。Ext由参与的计算方(第一参与方和第二参与方)共同执行,Ext的输出由第一参与方和第二参与方的输出共同组成。其中,第一参与方的输出为符号位x的一个分片,如记为x1;第二参与方的输出为符号位x的另一个分片,如记为x2。第一参与方和第二参与方可以调用Ext提取待转换数据X的符号位,得到符号位x以分片的形式分别存储于两个参与方。
示例性地,第一参与方将其持有的待转换数据X的分片X1输入其计算引擎,第二参与方将其持有的待转换数据X的分片X2输入其计算引擎,第一参与方和第二参与方调用Ext,第一参与方的计算引擎与第二参与方的计算引擎进行通信和计算,得到输出结果。第一参与方的计算引擎向第一参与方输出X的符号位x的一个分片,第二参与方的计算引擎向第二参与方输出X的符号位x的另一个分片。
待转换数据X的最高位表示其符号,若最高位为0,则X≥0;若最高位为1,则X<0。本发明实施例提取最高位记为第一密文比特x,因此若x=0,则X≥0;若x=1,则X<0。
然后,所述第一参与方和所述第二参与方分别计算得到第一中间数据的分片,所述第一中间数据为所述第一参与方和所述第二参与方持有的填充分片与第一密文常数C的和;其中,C根据M和N确定。
在本发明实施例中,假设将所述第一中间数据记为Y,则Y=X1'+X2'+C。其中,X1'和X2'的数据长度为N,假设记X'为第二数据类型,且X'=X1'+X2',则X1'和X2'可以看作是X'的两个分片。假设将X'称为填充数据。
本发明实施例的多方安全计算系统基于加法秘密分享协议,参与计算的数据均以分片形式被第一参与方和第二参与方所持有。第一参与方和第二参与方分别持有第一密文常数C的分片,假设将第一参与方持有的第一密文常数C的分片记为C1,将第二参与方持有的第一密文常数C的分片记为C2。
第一参与方可以计算Y1=X1'+C1,第二参与方可以计算Y2=X2'+C2。记第一中间数据Y为第二数据类型,且Y=Y1+Y2,则Y1和Y2可以看作是Y的两个分片。也即,第一参与方和第二参与方分别得到第一中间数据Y的分片。Y=Y1+Y2= X1'+C1+X2'+C2= X'+C。
其中,第一密文常数C可以根据M和N确定。在本发明的一种可选实施例中,所述第一密文常数C的数据长度为N,所述第一密文常数可以为:C=2N-1-2M。在二进制表示下,C=01…10…0,其中连续的1的个数为N-M-1,连续的0的个数为M。将第一密文常数C表示为分片C1和C2分发给第一参与方和第二参与方。
接下来,所述第一参与方和所述第二参与方通过第一协同计算,分别得到第二密文比特y的分片,y为所述第一中间数据的符号位。步骤104与步骤102相类似,此处不再进行赘述。
在本发明实施例中,第一密文常数用于提取第二密文比特y。由于待转换数据X的两个分片(X1和X2)求和可能在最高位有进位,但是X的长度限制没法记录这一位(即溢出了)。这种情况下,如果分别在两个分片(X1和X2)最高位填充0后再求和,溢出的这一位则会被保留。本发明实施例通过提取第二密文比特y可以记录X1和X2求和是否有进位。例如,若y=1代表X1+X2在最高位有进位;y=0代表X1+X2在最高位无进位。
本发明实施例用第二密文比特y表示X1+X2在最高位是否会产生进位,也就是在X1和X2最高位填充0之后再相加(即X1'+X2')是否会多出一个1。y是提取第一中间数据Y的符号位(即Y的最高位)得到的,上述“最高位产生进位”是指X1'+X2'时,由最高位相加产生的进位,例如,二进制下10+11=101;或者,上述“最高位产生进位”是指X1'+X2'时,由低位产生了进位累加到最高位,从而在最高位产生了进位,例如二进制下11+01=100。X1'+X2'等同于X1+X2外加保留了最高位是否产生进位的信息,即X'保留了X1+X2是否产生溢出的信息。X'从低到高的第M+1位就是记录X1+X2是否产生溢出,也就是第一密文比特y。Y=X'+C就是把X'从低到高的第M+1位转移到了最高位。由此,步骤104提取第一中间数据Y的符号位(最高位)即可得到X1+X2最高位是否产生进位的信息。
接下来,所述第一参与方和所述第二参与方根据各自持有的x的分片、y的分片以及M进行第二协同计算,分别得到第二中间数据的分片。最后,所述第一参与方和所述第二参与方分别计算各自的填充分片与各自的第二中间数据的分片的和,即可得到各自持有的转换后数据的分片,所述转换后数据为第二数据类型。
在本发明实施例中,将所述第二中间数据记为r,所述第二中间数据r的本质是所述填充数据X'与所述待转换数据X之间的差值,而所述填充数据X'的两个分片是第一参与方和第二参与方各自持有的填充分片,且所述填充数据X'和所述待转换数据X为第二数据类型,因此,第一参与方和第二参与方通过各自持有的第二中间数据的分片和填充分片可以计算得到转换后数据的分片。
在本发明的一种可选实施例中,所述第二中间数据的数据长度为N,所述第二中间数据可以为:r=-(x+y)×2M。
假设步骤105执行完成后,第一参与方持有第二中间数据r的分片为r1,第二参与方持有第二中间数据r的分片为r2,则r=r1+r2。第一参与方持有的填充分片为X1',第二参与方持有的填充分片为X2'。第一参与方可以计算Z1=X1'+r1,第二参与方可以计算Z2=X2'+r2。记Z=Z1+Z2,则Z即为对待转换数据X进行数据类型转换得到的转换后数据,Z1和Z2为Z的两个分片。Z的数据类型为第二数据类型,Z的数据长度为N。
本发明实施例提供的数据类型转换方法,可以将第一数据类型的待转换数据转换为第二数据类型,转换过程中不会泄露待转换数据的明文,可以保护数据的隐私安全。此外,本发明实施例的数据类型转换方法不需要将第一数据类型的分片与布尔类型的分片相互转换,只需要以密文形式提取第一密文比特和第二密文比特。可以避免将二进制数转换成十进制数的操作,进而可以避免用二进制数的每一位乘以对应2的幂次并累加,对每一位执行一次不经意传输的操作,可以极大减少不经意传输的次数,从而可以减少不经意传输操作所需的数据通信量。
进一步地,对于步骤105,本发明实施例可以提供如下两种可选实施方案。
方案一:在本发明的一种可选实施例中,所述第一参与方和所述第二参与方分别持有第二密文常数D的分片,所述第二密文常数D的数据长度为N,所述第二密文常数为:D=-2M;步骤105所述第一参与方和所述第二参与方根据各自持有的x的分片、y的分片以及M进行第二协同计算,分别得到第二中间数据的分片,可以包括:
步骤S11、所述第一参与方和所述第二参与方以(D,x)为输入执行不经意传输协议,分别得到第一返回值p的分片;其中,若x=1,则p=D;若x=0,则p=0;
步骤S12、所述第一参与方和所述第二参与方以(D,y)为输入执行不经意传输协议,分别得到第二返回值q的分片;其中,若y=1,则q=D;若y=0,则q=0;
步骤S13、所述第一参与方和所述第二参与方根据各自持有的p的分片和q的分片执行密文加法运算,分别得到第二中间数据的分片,所述第二中间数据为p和q的和。
在本发明实施例中,将第二密文常数记为D,D的数据长度为N,D =-2M。在二进制表示下,D=1…10…0,其中连续的1的个数为N-M,连续的0的个数为M。将第二密文常数D表示为分片D1和D2分发给第一参与方和第二参与方。
第一参与方和第二参与方以(D,x)为输入执行不经意传输协议,分别得到第一返回值p的分片。例如,第一参与方得到第一返回值p的分片p1,第二参与方得到第一返回值p的分片p2,则p=p1+p2。
在本发明实施例中,不经意传输协议指基于秘密分享的不经意传输协议,在该不
经意传输协议中,一个密文数据列表D={d1,…,dm}与该列表的某些密文索引值I={i1,…in}
以分片的形式分别存储于各个计算参与方,其中m和n为正整数,且对每个1≤j≤n,ij为不
大于m的正整数。该不经意传输协议以(D,I)为输入,输出用I检索D得到的列表,
并以分片的形式分别存储于各个计算参与方。对任何计算参与方的组合,若其不满足还原
秘密的条件,则无法通过此协议得知任何关于的信息以及关于(D,I)的信息。
第一参与方和第二参与方以(D,x)为输入执行上述不经意传输协议,分别得到第一返回值p的分片,使得若x=1,则p=D;若x=0,则p=0。在执行该不经意传输协议时,第一参与方输入的是第二密文常数D的分片D1和第一密文比特x的分片x1;第二参与方输入的是第二密文常数D的分片D2和第一密文比特x的分片x2;第一参与方得到的是第一返回值p的分片p1,第二参与方得到的是第一返回值p的分片p2。
第一参与方和第二参与方以(D,y)为输入执行上述不经意传输协议,分别得到第二返回值q的分片,使得若y=1,则q=D;若y=0,则q=0。在执行该不经意传输协议时,第一参与方输入的是第二密文常数D的分片D1和第二密文比特y的分片y1;第二参与方输入的是第二密文常数D的分片D2和第二密文比特y的分片y2;第一参与方得到的是第二返回值q的分片q1,第二参与方得到的是第二返回值q的分片q2。
第一参与方和第二参与方根据各自持有的第一返回值p的分片和第二返回值q的分片执行密文加法运算r=p+q,分别得到第二中间数据r的分片。
步骤S13中,第一参与方和第二参与方执行的是基于秘密分享协议的密文加法运算。第一参与方输入p的分片p1和q的分片q1,第二参与方输入p的分片p2和q的分片q2,第一参与方和第二参与方调用秘密分享协议的密文加法运算算子,双方的计算引擎通过通信和计算,得到输出结果r=p+q。第一参与方得到的输出结果是r的分片r1,第二参与方得到的输出结果是r的分片r2。在计算过程中,第一参与方和第二参与方不会恢复得到p和q的明文,也不会恢复得到r的明文。
通过上述步骤S11至S13,第一参与方和第二参与方可以分别得到第二中间数据r的分片,如第一参与方得到第二中间数据r的分片r1,第一参与方得到第二中间数据r的分片r2,则r=r1+r2;其中,r=p+q=-(x+y)×2M。
示例一
假设第一数据类型的待转换数据X=100,第一数据类型为int8类型,第一长度M=8。假设X的分片为X1=-86和X2=-70,第一参与方持有分片X1,第二参与方持有分片X2。现需要将X转换为第二数据类型,假设第二数据类型为int16类型,第二长度N=16。X的二进制表示为01100100,X1的二进制表示为10101010,X2的二进制表示为10111010。
第一参与方和第二参与方通过第一协同计算,分别得到第一密文比特x的分片,x为待转换数据X的符号位,则x=0。假设第一参与方得到第一密文比特x的分片x1,第二参与方得到第一密文比特x的分片x2。
在二进制表示下,第一参与方对分片X1的最高位填充8个连续的0,得到int16的填充分片X1'。第二参与方对分片X2的最高位填充8个连续的0,得到int16的填充分片X2'。填充分片X1'的二进制表示为0000000010101010,填充分片X2'的二进制表示为0000000010101010。故X1'=170,X2'=186。记X'=X1'+X2'=356,则X1'和X2'可以看作X'的分片。X'的二进制表示为0000000101100100。
记第一密文常数C=2N-1-2M=215-28=32512,且C为int16类型。在二进制表示下,C=0111111100000000。将C表示为分片C1和C2分发给第一参与方和第二参与方。假设第一参与方得到分片C1,第二参与方得到分片C2。第一参与方计算Y1=X1'+C1,第二参与方计算Y2=X2'+C2。记第一中间数据Y为int16类型,且Y=Y1+Y2=X'+C,则Y1和Y2可以看作Y的分片,Y的二进制表示为1000000001100100,故在int16类型表示下,Y=-32668。
第一参与方和第二参与方通过第一协同计算,分别得到第二密文比特y的分片,y为所述第一中间数据Y的符号位,则y=-1。假设第一参与方得到第二密文比特y的分片y1,第二参与方得到第二密文比特y的分片y2。
记第二密文常数D=-2M=-256,且D为int16类型。在二进制表示下,D=1111111100000000。
第一参与方和第二参与方以(D,x)=(-256,0)为输入执行不经意传输协议,分别得到第一返回值p的分片。由于x=0,因此,第一返回值p=0。假设第一参与方得到第一返回值p的分片p1,第二参与方得到第一返回值p的分片p2。
第一参与方和第二参与方以(D,y)=(-256,1)为输入执行不经意传输协议,分别得到第二返回值q的分片。由于y=1,因此,第二返回值q=D=-256。假设第一参与方得到第二返回值q的分片q1,第二参与方得到第二返回值q的分片q2。
第一参与方和第二参与方根据各自持有的p的分片和q的分片执行密文加法运算r=p+q,得到第二中间数据r=-256的两个分片r1和r2。假设第一参与方得到r的分片r1,第二参与方得到r的分片r2。
第一参与方计算Z1=X1'+r1,第二参与方计算Z2=X2'+r2。记Z=Z1+Z2=(X1'+r1)+(X2'+r2)=X'+r=356-256=100。则Z即为将第一数据类型(int8)的待转换数据X(X=100)转换为第二数据类型(int16)的转换后数据。
方案二:在本发明的一种可选实施例中,所述第一参与方和所述第二参与方分别持有第三密文常数E的分片以及第四密文常数F的分片,所述第三密文常数E和所述第四密文常数F的数据长度为N,所述第三密文常数为:E=-2M+1;所述第四密文常数为:F=2M;步骤105所述第一参与方和所述第二参与方根据各自持有的x的分片、y的分片以及M进行第二协同计算,分别得到第二中间数据的分片,可以包括:
步骤S21、所述第一参与方和所述第二参与方根据各自持有的x的分片和y的分片执行密文或运算,分别得到第一结果a的分片;
步骤S22、所述第一参与方和所述第二参与方根据各自持有的x的分片和y的分片执行密文异或运算,分别得到第二结果b的分片;
步骤S23、所述第一参与方和所述第二参与方以(E,a)为输入执行不经意传输协议,分别得到第三返回值s的分片;其中,若a=1,则s=E;若a=0,则s=0;
步骤S24、所述第一参与方和所述第二参与方以(F,b)为输入执行不经意传输协议,分别得到第四返回值t的分片;其中,若b=1,则t=F;若b=0,则t=0;
步骤S25、所述第一参与方和所述第二参与方根据各自持有的s的分片和t的分片执行密文加法运算,分别得到第二中间数据的分片,所述第二中间数据为s和t的和。
其中,密文或运算可以为第一参与方和第二参与方根据各自持有的第一密文比特的分片和第二密文比特的分片执行多方安全计算协议计算得到。例如,第一参与方和第二参与方可以调用基于秘密分享的密文比特位运算计算a=x or y,以及计算b=x xor y。其中,or表示或运算,xor表示异或运算。假设第一参与方得到第一结果a的分片a1,第二参与方得到第一结果a的分片a2;以及假设第一参与方得到第二结果b的分片b1,第二参与方得到第二结果b的分片b2。
记第三密文常数E=-2M+1,且E为第二数据类型。在二进制表示下,E=1…10…0,其中连续的1的个数为N-M-1,连续的0的个数为M+1。
第一参与方和第二参与方以(E,a)为输入执行不经意传输协议,分别得到第三返回值s的分片,使得若a=1,则s=E;若a=0,则s=0。假设第一参与方得到第三返回值s的分片s1,第二参与方得到第三返回值s的分片s2。
记第四密文常数F=2M,且F为第二数据类型。在二进制表示下,F=0…010…0,其中,高位部分连续的0的个数为N-M-1,低位部分连续的0的个数为M。
第一参与方和第二参与方以(F,b)为输入执行不经意传输协议,分别得到第四返回值t的分片,使得若b=1,则t=F;若b=0,则t=0。假设第一参与方得到第四返回值t的分片t1,第二参与方得到第四返回值t的分片t2。
第一参与方和第二参与方根据各自持有的第三返回值s的分片和第四返回值t的分片执行密文加法运算r=s+t,分别得到第二中间数据r的分片。
步骤S23中,第一参与方和第二参与方执行的是基于秘密分享协议的密文加法运算。在计算过程中,第一参与方和第二参与方不会恢复得到s和t的明文,也不会恢复得到r的明文。
通过上述步骤S21至S23,第一参与方和第二参与方可以分别得到第二中间数据r的分片,如第一参与方得到第二中间数据r的分片r1,第二参与方得到第二中间数据r的分片r2,则r=r1+r2;其中,r=s+t=-(x+y)×2M。
示例二
假设第一数据类型的待转换数据X=100,第一数据类型为int8类型,第一长度M=8。假设X的分片为X1=-86,X2=-70,第一参与方持有分片X1,第二参与方持有分片X2。现需要将X转换为第二数据类型,假设第二数据类型为int16类型,第二长度N=16。X的二进制表示为01100100,X1的二进制表示为10101010,X2的二进制表示为10111010。
第一参与方和第二参与方通过第一协同计算,分别得到第一密文比特x的分片,x为待转换数据X的符号位,则x=0。假设第一参与方得到第一密文比特x的分片x1,第二参与方得到第一密文比特x的分片x2。
在二进制表示下,第一参与方对分片X1的最高位填充8个连续的0,得到int16的填充分片X1'。第二参与方对分片X2的最高位填充8个连续的0,得到int16的填充分片X2'。填充分片X1'的二进制表示为0000000010101010,填充分片X2'的二进制表示为0000000010101010。故X1'=170,X2'=186。记X'=X1'+X2'=356,则X1'和X2'可以看作X'的分片。X'的二进制表示为0000000101100100。
记第一密文常数C=2N-1-2M=215-28=32512,且C为int16类型。在二进制表示下,C=0111111100000000。将C表示为分片C1和C2分发给第一参与方和第二参与方。假设第一参与方得到分片C1,第二参与方得到分片C2。第一参与方计算Y1=X1'+C1,第二参与方计算Y2=X2'+C2。记第一中间数据Y为int16类型,且Y=Y1+Y2= X'+ C,则Y1和Y2可以看作Y的分片,Y的二进制表示为1000000001100100,故在int16类型表示下,Y=-32668。
第一参与方和第二参与方通过第一协同计算,分别得到第二密文比特y的分片,y为所述第一中间数据Y的符号位,则y=-1。假设第一参与方得到第二密文比特y的分片y1,第二参与方得到第二密文比特y的分片y2。
第一参与方和第二参与方根据各自持有的x的分片和y的分片执行密文或运算a=xor y,分别得到第一结果a的分片。该示例中,a=1。假设第一参与方得到第一结果a的分片a1,第二参与方得到第一结果a的分片a2。
第一参与方和第二参与方根据各自持有的x的分片和y的分片执行密文异或运算b= x xor y,分别得到第二结果b的分片。该示例中,b=1。假设第一参与方得到第二结果b的分片b1,第二参与方得到第二结果b的分片b2。
记第三密文常数E=-2M+1=-28+1=-512,且E为int16类型。在二进制表示下,E=1111111000000000。
第一参与方和第二参与方以(E,a)=(-512,1)为输入执行不经意传输协议,分别得到第三返回值s的分片,使得若a=1,则s=E;若a=0,则s=0。由于a=1,因此,第三返回值s=E=-512。假设第一参与方得到第三返回值s的分片s1,第二参与方得到第三返回值s的分片s2。
记第四密文常数F=2M=256,且F为int16类型。在二进制表示下,F=0000000100000000。
第一参与方和所述第二参与方以(F,b)=(256,1)为输入执行不经意传输协议,分别得到第四返回值t的分片,使得若b=1,则t=F;若b=0,则t=0。由于b=1,因此,第四返回值t=F=256。假设第一参与方得到第四返回值t的分片t1,第二参与方得到第四返回值t的分片t2。
第一参与方和第二参与方根据各自持有的第三返回值s的分片和第四返回值t的分片执行密文加法运算r=s+t=-512+256=-256,第一参与方和第二参与方分别得到第二中间数据r的分片。假设第一参与方得到第二中间数据r的分片r1,第二参与方得到第二中间数据r的分片r2。
第一参与方计算Z1=X1'+r1,第二参与方计算Z2=X2'+r2。记Z=Z1+Z2=(X1'+r1)+(X2'+r2)=X'+r=356-256=100。则Z即为将第一数据类型(int8)的待转换数据X(X=100)转换为第二数据类型(int16)的转换后数据。
本发明实施例中,第一参与方和第二参与方分别对各自持有的待转换数据X的分片进行填充,得到填充分片X1'和X2'。第一参与方和第二参与方通过提取第一密文比特x和第二密文比特y,利用x和y计算第二中间数据的分片r1和r2,如第二中间数据可以为(x+y)×2M,进而可以计算得到转换后数据的分片X1'+r1和X2'+r2。
可选地,所述第二中间数据r可以为r=(x+y)×2M,则转换后数据的分片为X1'-r1和X2'-r2。
在方案一中,计算第二中间数据需要使用第二密文常数D,以及调用两次不经意传输协议。在方案二中,计算第二中间数据需要使用第三密文常数E和第四密文常数F,以及调用两次比特位计算和两次不经意传输协议。
相较于传统的数据类型转换方法,本发明实施例不需要将待转换数据的分片与布尔类型的分片相互转换,而只需要提取其中两个密文比特,可以极大减少不经意传输的次数,如方案一和方案二均只需要调用两次不经意传输协议,从而显著降低了数据通信量,提升了运行效率。此外,相较于传统的数据类型转换方法,本发明实施例调用不经意传输协议的次数与数据类型的长度无关,从而可以高效地作用于更加复杂的数据类型,为今后数据类型的拓展奠定基础。
证明过程(以方案一为例):
假设待转换数据为密文数据X,数据类型为第一数据类型,第一数据类型的数据长度为M,X的分片为X1和X2,希望将X转换为第二数据类型,第二数据类型的数据长度为N。
X为有符号数,在计算机存储中,X的最高位表示其符号,若最高位为0,则X≥0;若最高位为1,则X<0。对于分片X1和X2有类似结论。
本发明提取X的符号位(第一密文比特位)x,故当X≥0时,x=0;当X<0时,x=1。
X、X1和X2均为长度为M的第一数据类型,数据范围为[-2M-1,2M-1-1]。
可以验证:
若发生溢出,则。由于Y为长度为N的有符号数,其数
据范围为,故在计算机实际存储中Y为负数。因此,步骤104中提取Y的
符号位,其结果为y=1。若不发生溢出,则,且由于,,以及N>M,可得Y≥0,因此,步骤104中提取Y的符号位,其结果为y=0。
综上,可以证明步骤104中的y=1当且仅当发生溢出时,即:
由(1)和(2)可得:
因此,可以得到步骤106中的X=Z1+Z2=Z。
方案二的证明过程相类似,此处不再进行赘述。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图2,示出了本发明的一种多方安全计算系统实施例的结构框图,所述多方安全计算系统用于将第一数据类型的待转换数据转换为第二数据类型,所述第一数据类型的数据长度为第一长度M,所述第二数据类型的数据长度为第二长度N,所述多方安全计算系统包括第一参与方201和第二参与方202,所述第一参与方和所述第二参与方持有所述待转换数据的分片,其中:
所述第一参与方和所述第二参与方,用于分别对各自持有的待转换数据的分片进行填充,得到各自的填充分片;
所述第一参与方和所述第二参与方,还用于通过第一协同计算,分别得到第一密文比特x的分片,x为所述待转换数据的符号位;
所述第一参与方和所述第二参与方,还用于分别计算得到第一中间数据的分片,所述第一中间数据为所述第一参与方和所述第二参与方持有的填充分片与第一密文常数C的和;其中,C根据M和N确定;
所述第一参与方和所述第二参与方,还用于通过第一协同计算,分别得到第二密文比特y的分片,y为所述第一中间数据的符号位;
所述第一参与方和所述第二参与方,还用于根据各自持有的x的分片、y的分片以及M进行第二协同计算,分别得到第二中间数据的分片;
所述第一参与方和所述第二参与方,还用于分别计算各自的填充分片与各自的第二中间数据的分片的和,得到各自持有的转换后数据的分片,所述转换后数据为第二数据类型。
需要说明的是,本发明实施例对所述第一参与方和所述第二参与方的类型不做限制。示例性地,所述第一参与方和所述第二参与方可以为数据持有方,或者,所述第一参与方和所述第二参与方可以为计算节点,或者,所述第一参与方和所述第二参与方可以为多方安全计算的两个参与方,等等。
可选地,所述第一密文常数C的数据长度为N,所述第一密文常数为:C=2N-1-2M。
可选地,所述第一参与方和所述第二参与方,具体用于分别对各自持有的待转换数据的分片的最高位填充0,使得填充分片的长度为N。
可选地,所述第二中间数据的数据长度为N,所述第二中间数据为:-(x+y)×2M。
可选地,所述第一参与方和所述第二参与方分别持有第二密文常数D的分片,所述第二密文常数D的数据长度为N,所述第二密文常数为:D =-2M;
所述第一参与方和所述第二参与方,具体用于以(D,x)为输入执行不经意传输协议,分别得到第一返回值p的分片;其中,若x=1,则p=D;若x=0,则p=0;
所述第一参与方和所述第二参与方,具体还用于以(D,y)为输入执行不经意传输协议,分别得到第二返回值q的分片;其中,若y=1,则q=D;若y=0,则q=0;
所述第一参与方和所述第二参与方,具体还用于根据各自持有的p的分片和q的分片执行密文加法运算,分别得到第二中间数据的分片,所述第二中间数据为p和q的和。
可选地,所述第一参与方和所述第二参与方分别持有第三密文常数E的分片以及第四密文常数F的分片,所述第三密文常数E和所述第四密文常数F的数据长度为N,所述第三密文常数为:E=-2M+1;所述第四密文常数为:F=2M;
所述第一参与方和所述第二参与方,具体用于根据各自持有的x的分片和y的分片执行密文或运算,分别得到第一结果a的分片;
所述第一参与方和所述第二参与方,具体还用于根据各自持有的x的分片和y的分片执行密文异或运算,分别得到第二结果b的分片;
所述第一参与方和所述第二参与方,具体还用于以(E,a)为输入执行不经意传输协议,分别得到第三返回值s的分片;其中,若a=1,则s=E;若a=0,则s=0;
所述第一参与方和所述第二参与方,具体还用于以(F,b)为输入执行不经意传输协议,分别得到第四返回值t的分片;其中,若b=1,则t=F;若b=0,则t=0;
所述第一参与方和所述第二参与方,具体还用于根据各自持有的s的分片和t的分片执行密文加法运算,分别得到第二中间数据的分片,所述第二中间数据为s和t的和。
可选地,所述第一数据类型和所述第二数据类型为有符号的数据类型,且所述第一长度小于所述第二长度。
本发明实施例提供的多方安全计算系统,可以在保护数据隐私安全的前提下进行数据类型转换,并且本发明实施例不需要将待转换数据的分片与布尔类型的分片相互转换,而只需要提取其中两个密文比特,可以极大减少不经意传输的次数,如方案一和方案二均只需要调用两次不经意传输协议,从而显著降低了数据通信量,提升了运行效率。此外,本发明实施例调用不经意传输协议的次数与数据类型的长度无关,从而可以高效地作用于更加复杂的数据类型,为今后数据类型的拓展奠定基础。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于数据类型转换的装置,包括有存储器,以及一个以上的程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行上述任一实施例中所述的数据类型转换方法的指令。
图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所示的数据类型转换方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行前文图1所对应实施例中数据类型转换方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图1所对应实施例中数据类型转换方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种数据类型转换方法和多方安全计算系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据类型转换方法,其特征在于,应用于多方安全计算系统,用于将第一数据类型的待转换数据转换为第二数据类型,所述第一数据类型的数据长度为第一长度M,所述第二数据类型的数据长度为第二长度N,所述多方安全计算系统包括第一参与方和第二参与方,所述第一参与方和所述第二参与方持有所述待转换数据的分片,所述方法包括:
所述第一参与方和所述第二参与方分别对各自持有的待转换数据的分片进行填充,得到各自的填充分片;
所述第一参与方和所述第二参与方通过第一协同计算,分别得到第一密文比特x的分片,x为所述待转换数据的符号位;
所述第一参与方和所述第二参与方分别计算得到第一中间数据的分片,所述第一中间数据为所述第一参与方和所述第二参与方持有的填充分片与第一密文常数C的和;其中,C根据M和N确定;
所述第一参与方和所述第二参与方通过第一协同计算,分别得到第二密文比特y的分片,y为所述第一中间数据的符号位;
所述第一参与方和所述第二参与方根据各自持有的x的分片、y的分片以及M进行第二协同计算,分别得到第二中间数据的分片;
所述第一参与方和所述第二参与方分别计算各自的填充分片与各自的第二中间数据的分片的和,得到各自持有的转换后数据的分片,所述转换后数据为第二数据类型。
2.根据权利要求1所述的方法,其特征在于,所述第一密文常数C的数据长度为N,所述第一密文常数为:C=2N-1-2M。
3.根据权利要求1所述的方法,其特征在于,所述第一参与方和所述第二参与方分别对各自持有的待转换数据的分片进行填充,包括:
所述第一参与方和所述第二参与方分别对各自持有的待转换数据的分片的最高位填充0,使得填充分片的长度为N。
4.根据权利要求1所述的方法,其特征在于,所述第二中间数据的数据长度为N,所述第二中间数据为:-(x+y)×2M。
5.根据权利要求1所述的方法,其特征在于,所述第一参与方和所述第二参与方分别持有第二密文常数D的分片,所述第二密文常数D的数据长度为N,所述第二密文常数为:D =-2M;
所述第一参与方和所述第二参与方根据各自持有的x的分片、y的分片以及M进行第二协同计算,分别得到第二中间数据的分片,包括:
所述第一参与方和所述第二参与方以(D,x)为输入执行不经意传输协议,分别得到第一返回值p的分片;其中,若x=1,则p=D;若x=0,则p=0;
所述第一参与方和所述第二参与方以(D,y)为输入执行不经意传输协议,分别得到第二返回值q的分片;其中,若y=1,则q=D;若y=0,则q=0;
所述第一参与方和所述第二参与方根据各自持有的p的分片和q的分片执行密文加法运算,分别得到第二中间数据的分片,所述第二中间数据为p和q的和。
6.根据权利要求1所述的方法,其特征在于,所述第一参与方和所述第二参与方分别持有第三密文常数E的分片以及第四密文常数F的分片,所述第三密文常数E和所述第四密文常数F的数据长度为N,所述第三密文常数为:E=-2M+1;所述第四密文常数为:F=2M;
所述第一参与方和所述第二参与方根据各自持有的x的分片、y的分片以及M进行第二协同计算,分别得到第二中间数据的分片,包括:
所述第一参与方和所述第二参与方根据各自持有的x的分片和y的分片执行密文或运算,分别得到第一结果a的分片;
所述第一参与方和所述第二参与方根据各自持有的x的分片和y的分片执行密文异或运算,分别得到第二结果b的分片;
所述第一参与方和所述第二参与方以(E,a)为输入执行不经意传输协议,分别得到第三返回值s的分片;其中,若a=1,则s=E;若a=0,则s=0;
所述第一参与方和所述第二参与方以(F,b)为输入执行不经意传输协议,分别得到第四返回值t的分片;其中,若b=1,则t=F;若b=0,则t=0;
所述第一参与方和所述第二参与方根据各自持有的s的分片和t的分片执行密文加法运算,分别得到第二中间数据的分片,所述第二中间数据为s和t的和。
7.根据权利要求1所述的方法,其特征在于,所述第一数据类型和所述第二数据类型为有符号的数据类型,且所述第一长度小于所述第二长度。
8.一种多方安全计算系统,其特征在于,用于将第一数据类型的待转换数据转换为第二数据类型,所述第一数据类型的数据长度为第一长度M,所述第二数据类型的数据长度为第二长度N,所述多方安全计算系统包括第一参与方和第二参与方,所述第一参与方和所述第二参与方持有所述待转换数据的分片,所述第一参与方和所述第二参与方与权利要求1至7中任意一项所述的第一参与方和第二参与方相对应,所述多方安全计算系统用于执行如权利要求1至7中任意一项所述的数据类型转换方法。
9.一种用于数据类型转换的装置,其特征在于,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如权利要求1至7中任意一项所述的数据类型转换方法的指令。
10.一种可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如权利要求1至7中任意一项所述的数据类型转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211373245.XA CN115617897B (zh) | 2022-11-04 | 2022-11-04 | 一种数据类型转换方法和多方安全计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211373245.XA CN115617897B (zh) | 2022-11-04 | 2022-11-04 | 一种数据类型转换方法和多方安全计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115617897A true CN115617897A (zh) | 2023-01-17 |
CN115617897B CN115617897B (zh) | 2023-03-14 |
Family
ID=84876183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211373245.XA Active CN115617897B (zh) | 2022-11-04 | 2022-11-04 | 一种数据类型转换方法和多方安全计算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617897B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116055049A (zh) * | 2023-04-03 | 2023-05-02 | 富算科技(上海)有限公司 | 多方安全计算方法、装置、系统、电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190149333A1 (en) * | 2017-11-15 | 2019-05-16 | International Business Machines Corporation | Methods and systems for supporting fairness in secure computations |
CN111783130A (zh) * | 2020-09-04 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 隐私保护的数据处理方法、装置及服务器 |
CN112395642A (zh) * | 2020-11-20 | 2021-02-23 | 湖南智慧政务区块链科技有限公司 | 一种安全多方隐私计算方法、装置、设备及存储介质 |
WO2021083179A1 (zh) * | 2019-10-30 | 2021-05-06 | 阿里巴巴集团控股有限公司 | 一种安全多方计算方法、设备、系统及存储介质 |
US11093641B1 (en) * | 2018-12-13 | 2021-08-17 | Amazon Technologies, Inc. | Anonymizing sensitive data in logic problems for input to a constraint solver |
CN114611150A (zh) * | 2022-03-24 | 2022-06-10 | 蚂蚁区块链科技(上海)有限公司 | 隐私数值的安全模转换方法及装置 |
CN114884645A (zh) * | 2022-07-11 | 2022-08-09 | 华控清交信息科技(北京)有限公司 | 一种隐私计算方法、装置和可读存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737757B (zh) * | 2020-07-31 | 2020-11-17 | 支付宝(杭州)信息技术有限公司 | 针对隐私数据进行安全运算的方法和装置 |
CN112580071B (zh) * | 2020-12-09 | 2024-05-14 | 深圳前海微众银行股份有限公司 | 一种数据处理方法及装置 |
CN113065162B (zh) * | 2021-04-25 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 和共享形式的隐私数据的处理方法和装置 |
CN113761469B (zh) * | 2021-08-10 | 2024-05-17 | 支付宝(杭州)信息技术有限公司 | 一种保护数据隐私的最高位进位计算方法 |
CN114022093B (zh) * | 2021-09-22 | 2023-03-24 | 医渡云(北京)技术有限公司 | 一种基于多方安全的数据协同计算方法、装置及设备 |
CN114944934B (zh) * | 2022-04-24 | 2023-12-29 | 华控清交信息科技(北京)有限公司 | 一种联邦学习方法和系统、第一隐私计算平台和第二隐私计算平台 |
-
2022
- 2022-11-04 CN CN202211373245.XA patent/CN115617897B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190149333A1 (en) * | 2017-11-15 | 2019-05-16 | International Business Machines Corporation | Methods and systems for supporting fairness in secure computations |
US11093641B1 (en) * | 2018-12-13 | 2021-08-17 | Amazon Technologies, Inc. | Anonymizing sensitive data in logic problems for input to a constraint solver |
WO2021083179A1 (zh) * | 2019-10-30 | 2021-05-06 | 阿里巴巴集团控股有限公司 | 一种安全多方计算方法、设备、系统及存储介质 |
CN111783130A (zh) * | 2020-09-04 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 隐私保护的数据处理方法、装置及服务器 |
CN112395642A (zh) * | 2020-11-20 | 2021-02-23 | 湖南智慧政务区块链科技有限公司 | 一种安全多方隐私计算方法、装置、设备及存储介质 |
CN114611150A (zh) * | 2022-03-24 | 2022-06-10 | 蚂蚁区块链科技(上海)有限公司 | 隐私数值的安全模转换方法及装置 |
CN114884645A (zh) * | 2022-07-11 | 2022-08-09 | 华控清交信息科技(北京)有限公司 | 一种隐私计算方法、装置和可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116055049A (zh) * | 2023-04-03 | 2023-05-02 | 富算科技(上海)有限公司 | 多方安全计算方法、装置、系统、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115617897B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114301594B (zh) | 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置 | |
CN115396101B (zh) | 一种基于秘密分享的不经意打乱方法和系统 | |
CN114884645B (zh) | 一种隐私计算方法、装置和可读存储介质 | |
CN112688779B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112861175A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114969830B (zh) | 一种隐私求交方法、系统和可读存储介质 | |
CN112241250B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112667674B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN115617897B (zh) | 一种数据类型转换方法和多方安全计算系统 | |
CN115396100A (zh) | 一种基于秘密分享的不经意随机打乱方法和系统 | |
CN116305206A (zh) | 一种安全多方计算方法、装置、电子设备及存储介质 | |
CN115085912A (zh) | 一种密文计算方法、装置和用于密文计算的装置 | |
CN115941181B (zh) | 一种乱序秘密分享方法、系统和可读存储介质 | |
CN112464257A (zh) | 一种数据检测方法、装置和用于数据检测的装置 | |
CN114885038B (zh) | 一种加密协议转换方法、结果获取节点和隐私计算节点 | |
CN114915455B (zh) | 一种密文数据传输方法、装置和用于密文数据传输的装置 | |
CN113239389B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114448631B (zh) | 一种多方安全计算方法、系统和用于多方安全计算的装置 | |
CN114996752A (zh) | 一种多方隐私求交方法、装置和用于多方隐私求交的装置 | |
CN112468290B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112861145A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112580064B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113392421B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112685747A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114760367B (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 |